$ date
--- stdout ---
Sun Nov 2 17:56:00 UTC 2025
--- end ---
$ git clone file:///srv/git/mediawiki-extensions-WikiLambda.git repo --depth=1 -b REL1_45
--- stderr ---
Cloning into 'repo'...
--- stdout ---
--- end ---
$ git config user.name libraryupgrader
--- stdout ---
--- end ---
$ git config user.email tools.libraryupgrader@tools.wmflabs.org
--- stdout ---
--- end ---
$ git submodule update --init
--- stderr ---
Submodule 'function-schemata' (https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata.git) registered for path 'function-schemata'
Cloning into '/src/repo/function-schemata'...
--- stdout ---
Submodule path 'function-schemata': checked out '960dd2c4a179a65d534ae941676ba0b4b5bce1b8'
--- end ---
$ grr init
--- stdout ---
Installed commit-msg hook.
--- end ---
$ git show-ref refs/heads/REL1_45
--- stdout ---
93ed1156e1d8f65de330da8cff8f8bc4c4b7be6b refs/heads/REL1_45
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {
"@wdio/cli": {
"name": "@wdio/cli",
"severity": "high",
"isDirect": true,
"via": [
"inquirer",
"webdriverio",
"yarn-install"
],
"effects": [
"@wdio/junit-reporter",
"@wdio/local-runner",
"@wdio/spec-reporter"
],
"range": "<=9.0.0-alpha.426",
"nodes": [
"node_modules/@wdio/cli"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"@wdio/junit-reporter": {
"name": "@wdio/junit-reporter",
"severity": "high",
"isDirect": true,
"via": [
"@wdio/cli"
],
"effects": [],
"range": "6.0.4 - 8.0.0-alpha.631",
"nodes": [
"node_modules/@wdio/junit-reporter"
],
"fixAvailable": {
"name": "@wdio/junit-reporter",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"@wdio/local-runner": {
"name": "@wdio/local-runner",
"severity": "high",
"isDirect": true,
"via": [
"@wdio/cli",
"@wdio/runner"
],
"effects": [],
"range": "6.0.4 - 8.46.0",
"nodes": [
"node_modules/@wdio/local-runner"
],
"fixAvailable": {
"name": "@wdio/local-runner",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"@wdio/runner": {
"name": "@wdio/runner",
"severity": "high",
"isDirect": false,
"via": [
"webdriverio"
],
"effects": [
"@wdio/local-runner"
],
"range": "7.16.5 - 8.46.0",
"nodes": [
"node_modules/@wdio/runner"
],
"fixAvailable": {
"name": "@wdio/local-runner",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"@wdio/spec-reporter": {
"name": "@wdio/spec-reporter",
"severity": "high",
"isDirect": true,
"via": [
"@wdio/cli"
],
"effects": [],
"range": "6.0.4 - 8.0.0-alpha.631",
"nodes": [
"node_modules/@wdio/spec-reporter"
],
"fixAvailable": {
"name": "@wdio/spec-reporter",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"cross-spawn": {
"name": "cross-spawn",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1104663,
"name": "cross-spawn",
"dependency": "cross-spawn",
"title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
"url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "<6.0.6"
}
],
"effects": [
"yarn-install"
],
"range": "<6.0.6",
"nodes": [
"node_modules/yarn-install/node_modules/cross-spawn"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"devtools": {
"name": "devtools",
"severity": "high",
"isDirect": false,
"via": [
"puppeteer-core"
],
"effects": [],
"range": ">=7.16.5",
"nodes": [
"node_modules/devtools"
],
"fixAvailable": true
},
"external-editor": {
"name": "external-editor",
"severity": "low",
"isDirect": false,
"via": [
"tmp"
],
"effects": [
"inquirer"
],
"range": ">=1.1.1",
"nodes": [
"node_modules/external-editor"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"form-data": {
"name": "form-data",
"severity": "critical",
"isDirect": false,
"via": [
{
"source": 1106509,
"name": "form-data",
"dependency": "form-data",
"title": "form-data uses unsafe random function in form-data for choosing boundary",
"url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
"severity": "critical",
"cwe": [
"CWE-330"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<2.5.4"
}
],
"effects": [
"request"
],
"range": "<2.5.4",
"nodes": [
"node_modules/request/node_modules/form-data"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"inquirer": {
"name": "inquirer",
"severity": "low",
"isDirect": false,
"via": [
"external-editor"
],
"effects": [
"@wdio/cli"
],
"range": "3.0.0 - 8.2.6 || 9.0.0 - 9.3.7",
"nodes": [
"node_modules/inquirer"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"mwbot": {
"name": "mwbot",
"severity": "moderate",
"isDirect": false,
"via": [
"request"
],
"effects": [
"wdio-mediawiki"
],
"range": ">=0.1.6",
"nodes": [
"node_modules/mwbot"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"puppeteer-core": {
"name": "puppeteer-core",
"severity": "high",
"isDirect": false,
"via": [
"tar-fs",
"ws"
],
"effects": [
"devtools",
"webdriverio"
],
"range": "10.0.0 - 22.11.1",
"nodes": [
"node_modules/puppeteer-core"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"request": {
"name": "request",
"severity": "critical",
"isDirect": false,
"via": [
{
"source": 1096727,
"name": "request",
"dependency": "request",
"title": "Server-Side Request Forgery in Request",
"url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
"severity": "moderate",
"cwe": [
"CWE-918"
],
"cvss": {
"score": 6.1,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
},
"range": "<=2.88.2"
},
"form-data",
"tough-cookie"
],
"effects": [
"mwbot"
],
"range": "*",
"nodes": [
"node_modules/request"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"tar-fs": {
"name": "tar-fs",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1106930,
"name": "tar-fs",
"dependency": "tar-fs",
"title": "tar-fs can extract outside the specified dir with a specific tarball",
"url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v",
"severity": "high",
"cwe": [
"CWE-22"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": ">=2.0.0 <2.1.3"
},
{
"source": 1108293,
"name": "tar-fs",
"dependency": "tar-fs",
"title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball",
"url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v",
"severity": "high",
"cwe": [
"CWE-22",
"CWE-61"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": ">=2.0.0 <2.1.4"
},
{
"source": 1108411,
"name": "tar-fs",
"dependency": "tar-fs",
"title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File",
"url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx",
"severity": "high",
"cwe": [
"CWE-22"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
},
"range": ">=2.0.0 <2.1.2"
}
],
"effects": [
"puppeteer-core"
],
"range": "2.0.0 - 2.1.3",
"nodes": [
"node_modules/tar-fs"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"tmp": {
"name": "tmp",
"severity": "low",
"isDirect": false,
"via": [
{
"source": 1106849,
"name": "tmp",
"dependency": "tmp",
"title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter",
"url": "https://github.com/advisories/GHSA-52f5-9888-hmc6",
"severity": "low",
"cwe": [
"CWE-59"
],
"cvss": {
"score": 2.5,
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"
},
"range": "<=0.2.3"
}
],
"effects": [
"external-editor"
],
"range": "<=0.2.3",
"nodes": [
"node_modules/tmp"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"tough-cookie": {
"name": "tough-cookie",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1097682,
"name": "tough-cookie",
"dependency": "tough-cookie",
"title": "tough-cookie Prototype Pollution vulnerability",
"url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
"severity": "moderate",
"cwe": [
"CWE-1321"
],
"cvss": {
"score": 6.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
},
"range": "<4.1.3"
}
],
"effects": [
"request"
],
"range": "<4.1.3",
"nodes": [
"node_modules/request/node_modules/tough-cookie"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"validator": {
"name": "validator",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1109241,
"name": "validator",
"dependency": "validator",
"title": "validator.js has a URL validation bypass vulnerability in its isURL function",
"url": "https://github.com/advisories/GHSA-9965-vmph-33xx",
"severity": "moderate",
"cwe": [
"CWE-79"
],
"cvss": {
"score": 6.1,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
},
"range": "<13.15.20"
}
],
"effects": [],
"range": "<13.15.20",
"nodes": [
"node_modules/validator"
],
"fixAvailable": true
},
"wdio-mediawiki": {
"name": "wdio-mediawiki",
"severity": "moderate",
"isDirect": true,
"via": [
"mwbot"
],
"effects": [],
"range": "<=5.1.0",
"nodes": [
"node_modules/wdio-mediawiki"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"webdriverio": {
"name": "webdriverio",
"severity": "high",
"isDirect": false,
"via": [
"devtools",
"puppeteer-core"
],
"effects": [
"@wdio/cli",
"@wdio/runner"
],
"range": "7.16.5 - 8.46.0",
"nodes": [
"node_modules/webdriverio"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"ws": {
"name": "ws",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1098392,
"name": "ws",
"dependency": "ws",
"title": "ws affected by a DoS when handling a request with many HTTP headers",
"url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q",
"severity": "high",
"cwe": [
"CWE-476"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": ">=8.0.0 <8.17.1"
}
],
"effects": [
"puppeteer-core"
],
"range": "8.0.0 - 8.17.0",
"nodes": [
"node_modules/puppeteer-core/node_modules/ws"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"yarn-install": {
"name": "yarn-install",
"severity": "high",
"isDirect": false,
"via": [
"cross-spawn"
],
"effects": [
"@wdio/cli"
],
"range": "*",
"nodes": [
"node_modules/yarn-install"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 3,
"moderate": 4,
"high": 12,
"critical": 2,
"total": 21
},
"dependencies": {
"prod": 1,
"dev": 1277,
"optional": 4,
"peer": 1,
"peerOptional": 0,
"total": 1277
}
}
}
--- end ---
$ /usr/bin/composer install
--- stderr ---
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 41 installs, 0 updates, 0 removals
- Locking composer/pcre (3.3.2)
- Locking composer/semver (3.4.4)
- Locking composer/spdx-licenses (1.5.9)
- Locking composer/xdebug-handler (3.0.5)
- Locking dealerdirect/phpcodesniffer-composer-installer (v1.1.2)
- Locking diff/diff (3.4.0)
- Locking doctrine/deprecations (1.1.5)
- Locking felixfbecker/advanced-json-rpc (v3.2.1)
- Locking mediawiki/mediawiki-codesniffer (v48.0.0)
- Locking mediawiki/mediawiki-phan-config (0.17.0)
- Locking mediawiki/minus-x (1.1.3)
- Locking mediawiki/phan-taint-check-plugin (7.0.0)
- Locking microsoft/tolerant-php-parser (v0.1.2)
- Locking netresearch/jsonmapper (v4.5.0)
- Locking phan/phan (5.5.1)
- Locking php-parallel-lint/php-console-color (v1.0.1)
- Locking php-parallel-lint/php-console-highlighter (v1.0.0)
- Locking php-parallel-lint/php-parallel-lint (v1.4.0)
- Locking phpcsstandards/phpcsextra (1.4.0)
- Locking phpcsstandards/phpcsutils (1.1.1)
- Locking phpdocumentor/reflection-common (2.2.0)
- Locking phpdocumentor/reflection-docblock (5.6.3)
- Locking phpdocumentor/type-resolver (1.10.0)
- Locking phpstan/phpdoc-parser (2.3.0)
- Locking psr/container (2.0.2)
- Locking psr/log (3.0.2)
- Locking sabre/event (5.1.7)
- Locking squizlabs/php_codesniffer (3.13.2)
- Locking symfony/console (v7.3.5)
- Locking symfony/deprecation-contracts (v3.6.0)
- Locking symfony/polyfill-ctype (v1.33.0)
- Locking symfony/polyfill-intl-grapheme (v1.33.0)
- Locking symfony/polyfill-intl-normalizer (v1.33.0)
- Locking symfony/polyfill-mbstring (v1.33.0)
- Locking symfony/polyfill-php80 (v1.33.0)
- Locking symfony/service-contracts (v3.6.0)
- Locking symfony/string (v7.3.4)
- Locking tysonandre/var_representation_polyfill (0.1.3)
- Locking webmozart/assert (1.12.1)
- Locking wikimedia/remex-html (5.1.0)
- Locking wikimedia/utfnormal (4.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 41 installs, 0 updates, 0 removals
0 [>---------------------------] 0 [->--------------------------]
- Installing squizlabs/php_codesniffer (3.13.2): Extracting archive
- Installing dealerdirect/phpcodesniffer-composer-installer (v1.1.2): Extracting archive
- Installing composer/pcre (3.3.2): Extracting archive
- Installing diff/diff (3.4.0): Extracting archive
- Installing phpcsstandards/phpcsutils (1.1.1): Extracting archive
- Installing phpcsstandards/phpcsextra (1.4.0): Extracting archive
- Installing symfony/polyfill-mbstring (v1.33.0): Extracting archive
- Installing composer/spdx-licenses (1.5.9): Extracting archive
- Installing composer/semver (3.4.4): Extracting archive
- Installing mediawiki/mediawiki-codesniffer (v48.0.0): Extracting archive
- Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
- Installing symfony/polyfill-php80 (v1.33.0): Extracting archive
- Installing symfony/polyfill-intl-normalizer (v1.33.0): Extracting archive
- Installing symfony/polyfill-intl-grapheme (v1.33.0): Extracting archive
- Installing symfony/polyfill-ctype (v1.33.0): Extracting archive
- Installing symfony/string (v7.3.4): Extracting archive
- Installing symfony/deprecation-contracts (v3.6.0): Extracting archive
- Installing psr/container (2.0.2): Extracting archive
- Installing symfony/service-contracts (v3.6.0): Extracting archive
- Installing symfony/console (v7.3.5): Extracting archive
- Installing sabre/event (5.1.7): Extracting archive
- Installing netresearch/jsonmapper (v4.5.0): Extracting archive
- Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive
- Installing webmozart/assert (1.12.1): Extracting archive
- Installing phpstan/phpdoc-parser (2.3.0): Extracting archive
- Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
- Installing doctrine/deprecations (1.1.5): Extracting archive
- Installing phpdocumentor/type-resolver (1.10.0): Extracting archive
- Installing phpdocumentor/reflection-docblock (5.6.3): Extracting archive
- Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
- Installing psr/log (3.0.2): Extracting archive
- Installing composer/xdebug-handler (3.0.5): Extracting archive
- Installing phan/phan (5.5.1): Extracting archive
- Installing mediawiki/phan-taint-check-plugin (7.0.0): Extracting archive
- Installing mediawiki/mediawiki-phan-config (0.17.0): Extracting archive
- Installing mediawiki/minus-x (1.1.3): Extracting archive
- Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
- Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
- Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
- Installing wikimedia/utfnormal (4.0.0): Extracting archive
- Installing wikimedia/remex-html (5.1.0): Extracting archive
0/39 [>---------------------------] 0%
28/39 [====================>-------] 71%
38/39 [===========================>] 97%
39/39 [============================] 100%
1 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
17 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {
"@wdio/cli": {
"name": "@wdio/cli",
"severity": "high",
"isDirect": true,
"via": [
"inquirer",
"webdriverio",
"yarn-install"
],
"effects": [
"@wdio/junit-reporter",
"@wdio/local-runner",
"@wdio/spec-reporter"
],
"range": "<=9.0.0-alpha.426",
"nodes": [
"node_modules/@wdio/cli"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"@wdio/junit-reporter": {
"name": "@wdio/junit-reporter",
"severity": "high",
"isDirect": true,
"via": [
"@wdio/cli"
],
"effects": [],
"range": "6.0.4 - 8.0.0-alpha.631",
"nodes": [
"node_modules/@wdio/junit-reporter"
],
"fixAvailable": {
"name": "@wdio/junit-reporter",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"@wdio/local-runner": {
"name": "@wdio/local-runner",
"severity": "high",
"isDirect": true,
"via": [
"@wdio/cli",
"@wdio/runner"
],
"effects": [],
"range": "6.0.4 - 8.46.0",
"nodes": [
"node_modules/@wdio/local-runner"
],
"fixAvailable": {
"name": "@wdio/local-runner",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"@wdio/runner": {
"name": "@wdio/runner",
"severity": "high",
"isDirect": false,
"via": [
"webdriverio"
],
"effects": [
"@wdio/local-runner"
],
"range": "7.16.5 - 8.46.0",
"nodes": [
"node_modules/@wdio/runner"
],
"fixAvailable": {
"name": "@wdio/local-runner",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"@wdio/spec-reporter": {
"name": "@wdio/spec-reporter",
"severity": "high",
"isDirect": true,
"via": [
"@wdio/cli"
],
"effects": [],
"range": "6.0.4 - 8.0.0-alpha.631",
"nodes": [
"node_modules/@wdio/spec-reporter"
],
"fixAvailable": {
"name": "@wdio/spec-reporter",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"cross-spawn": {
"name": "cross-spawn",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1104663,
"name": "cross-spawn",
"dependency": "cross-spawn",
"title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
"url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "<6.0.6"
}
],
"effects": [
"yarn-install"
],
"range": "<6.0.6",
"nodes": [
"node_modules/yarn-install/node_modules/cross-spawn"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"devtools": {
"name": "devtools",
"severity": "high",
"isDirect": false,
"via": [
"puppeteer-core"
],
"effects": [],
"range": ">=7.16.5",
"nodes": [
"node_modules/devtools"
],
"fixAvailable": true
},
"external-editor": {
"name": "external-editor",
"severity": "low",
"isDirect": false,
"via": [
"tmp"
],
"effects": [
"inquirer"
],
"range": ">=1.1.1",
"nodes": [
"node_modules/external-editor"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"form-data": {
"name": "form-data",
"severity": "critical",
"isDirect": false,
"via": [
{
"source": 1106509,
"name": "form-data",
"dependency": "form-data",
"title": "form-data uses unsafe random function in form-data for choosing boundary",
"url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
"severity": "critical",
"cwe": [
"CWE-330"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<2.5.4"
}
],
"effects": [
"request"
],
"range": "<2.5.4",
"nodes": [
"node_modules/request/node_modules/form-data"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"inquirer": {
"name": "inquirer",
"severity": "low",
"isDirect": false,
"via": [
"external-editor"
],
"effects": [
"@wdio/cli"
],
"range": "3.0.0 - 8.2.6 || 9.0.0 - 9.3.7",
"nodes": [
"node_modules/inquirer"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"mwbot": {
"name": "mwbot",
"severity": "moderate",
"isDirect": false,
"via": [
"request"
],
"effects": [
"wdio-mediawiki"
],
"range": ">=0.1.6",
"nodes": [
"node_modules/mwbot"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"puppeteer-core": {
"name": "puppeteer-core",
"severity": "high",
"isDirect": false,
"via": [
"tar-fs",
"ws"
],
"effects": [
"devtools",
"webdriverio"
],
"range": "10.0.0 - 22.11.1",
"nodes": [
"node_modules/puppeteer-core"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"request": {
"name": "request",
"severity": "critical",
"isDirect": false,
"via": [
{
"source": 1096727,
"name": "request",
"dependency": "request",
"title": "Server-Side Request Forgery in Request",
"url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
"severity": "moderate",
"cwe": [
"CWE-918"
],
"cvss": {
"score": 6.1,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
},
"range": "<=2.88.2"
},
"form-data",
"tough-cookie"
],
"effects": [
"mwbot"
],
"range": "*",
"nodes": [
"node_modules/request"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"tar-fs": {
"name": "tar-fs",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1106930,
"name": "tar-fs",
"dependency": "tar-fs",
"title": "tar-fs can extract outside the specified dir with a specific tarball",
"url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v",
"severity": "high",
"cwe": [
"CWE-22"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": ">=2.0.0 <2.1.3"
},
{
"source": 1108293,
"name": "tar-fs",
"dependency": "tar-fs",
"title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball",
"url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v",
"severity": "high",
"cwe": [
"CWE-22",
"CWE-61"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": ">=2.0.0 <2.1.4"
},
{
"source": 1108411,
"name": "tar-fs",
"dependency": "tar-fs",
"title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File",
"url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx",
"severity": "high",
"cwe": [
"CWE-22"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
},
"range": ">=2.0.0 <2.1.2"
}
],
"effects": [
"puppeteer-core"
],
"range": "2.0.0 - 2.1.3",
"nodes": [
"node_modules/tar-fs"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"tmp": {
"name": "tmp",
"severity": "low",
"isDirect": false,
"via": [
{
"source": 1106849,
"name": "tmp",
"dependency": "tmp",
"title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter",
"url": "https://github.com/advisories/GHSA-52f5-9888-hmc6",
"severity": "low",
"cwe": [
"CWE-59"
],
"cvss": {
"score": 2.5,
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"
},
"range": "<=0.2.3"
}
],
"effects": [
"external-editor"
],
"range": "<=0.2.3",
"nodes": [
"node_modules/tmp"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"tough-cookie": {
"name": "tough-cookie",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1097682,
"name": "tough-cookie",
"dependency": "tough-cookie",
"title": "tough-cookie Prototype Pollution vulnerability",
"url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
"severity": "moderate",
"cwe": [
"CWE-1321"
],
"cvss": {
"score": 6.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
},
"range": "<4.1.3"
}
],
"effects": [
"request"
],
"range": "<4.1.3",
"nodes": [
"node_modules/request/node_modules/tough-cookie"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"validator": {
"name": "validator",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1109241,
"name": "validator",
"dependency": "validator",
"title": "validator.js has a URL validation bypass vulnerability in its isURL function",
"url": "https://github.com/advisories/GHSA-9965-vmph-33xx",
"severity": "moderate",
"cwe": [
"CWE-79"
],
"cvss": {
"score": 6.1,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
},
"range": "<13.15.20"
}
],
"effects": [],
"range": "<13.15.20",
"nodes": [
"node_modules/validator"
],
"fixAvailable": true
},
"wdio-mediawiki": {
"name": "wdio-mediawiki",
"severity": "moderate",
"isDirect": true,
"via": [
"mwbot"
],
"effects": [],
"range": "<=5.1.0",
"nodes": [
"node_modules/wdio-mediawiki"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"webdriverio": {
"name": "webdriverio",
"severity": "high",
"isDirect": false,
"via": [
"devtools",
"puppeteer-core"
],
"effects": [
"@wdio/cli",
"@wdio/runner"
],
"range": "7.16.5 - 8.46.0",
"nodes": [
"node_modules/webdriverio"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"ws": {
"name": "ws",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1098392,
"name": "ws",
"dependency": "ws",
"title": "ws affected by a DoS when handling a request with many HTTP headers",
"url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q",
"severity": "high",
"cwe": [
"CWE-476"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": ">=8.0.0 <8.17.1"
}
],
"effects": [
"puppeteer-core"
],
"range": "8.0.0 - 8.17.0",
"nodes": [
"node_modules/puppeteer-core/node_modules/ws"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"yarn-install": {
"name": "yarn-install",
"severity": "high",
"isDirect": false,
"via": [
"cross-spawn"
],
"effects": [
"@wdio/cli"
],
"range": "*",
"nodes": [
"node_modules/yarn-install"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 3,
"moderate": 4,
"high": 12,
"critical": 2,
"total": 21
},
"dependencies": {
"prod": 1,
"dev": 1277,
"optional": 4,
"peer": 1,
"peerOptional": 0,
"total": 1277
}
}
}
--- end ---
Attempting to npm audit fix
$ /usr/bin/npm audit fix --dry-run --only=dev --json
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex@2.3.2',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.3.2',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
{
"added": 1277,
"removed": 0,
"changed": 0,
"audited": 1278,
"funding": 205,
"audit": {
"auditReportVersion": 2,
"vulnerabilities": {
"@wdio/cli": {
"name": "@wdio/cli",
"severity": "high",
"isDirect": true,
"via": [
"inquirer",
"webdriverio",
"yarn-install"
],
"effects": [
"@wdio/junit-reporter",
"@wdio/local-runner",
"@wdio/spec-reporter"
],
"range": "<=9.0.0-alpha.426",
"nodes": [
"node_modules/@wdio/cli"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"@wdio/junit-reporter": {
"name": "@wdio/junit-reporter",
"severity": "high",
"isDirect": true,
"via": [
"@wdio/cli"
],
"effects": [],
"range": "6.0.4 - 8.0.0-alpha.631",
"nodes": [
"node_modules/@wdio/junit-reporter"
],
"fixAvailable": {
"name": "@wdio/junit-reporter",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"@wdio/local-runner": {
"name": "@wdio/local-runner",
"severity": "high",
"isDirect": true,
"via": [
"@wdio/cli",
"@wdio/runner"
],
"effects": [],
"range": "6.0.4 - 8.46.0",
"nodes": [
"node_modules/@wdio/local-runner"
],
"fixAvailable": {
"name": "@wdio/local-runner",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"@wdio/runner": {
"name": "@wdio/runner",
"severity": "high",
"isDirect": false,
"via": [
"webdriverio"
],
"effects": [
"@wdio/local-runner"
],
"range": "7.16.5 - 8.46.0",
"nodes": [
"node_modules/@wdio/runner"
],
"fixAvailable": {
"name": "@wdio/local-runner",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"@wdio/spec-reporter": {
"name": "@wdio/spec-reporter",
"severity": "high",
"isDirect": true,
"via": [
"@wdio/cli"
],
"effects": [],
"range": "6.0.4 - 8.0.0-alpha.631",
"nodes": [
"node_modules/@wdio/spec-reporter"
],
"fixAvailable": {
"name": "@wdio/spec-reporter",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"cross-spawn": {
"name": "cross-spawn",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1104663,
"name": "cross-spawn",
"dependency": "cross-spawn",
"title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
"url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "<6.0.6"
}
],
"effects": [
"yarn-install"
],
"range": "<6.0.6",
"nodes": [
"node_modules/yarn-install/node_modules/cross-spawn"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"devtools": {
"name": "devtools",
"severity": "high",
"isDirect": false,
"via": [
"puppeteer-core"
],
"effects": [],
"range": ">=7.16.5",
"nodes": [
"node_modules/devtools"
],
"fixAvailable": true
},
"external-editor": {
"name": "external-editor",
"severity": "low",
"isDirect": false,
"via": [
"tmp"
],
"effects": [
"inquirer"
],
"range": ">=1.1.1",
"nodes": [
"node_modules/external-editor"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"form-data": {
"name": "form-data",
"severity": "critical",
"isDirect": false,
"via": [
{
"source": 1106509,
"name": "form-data",
"dependency": "form-data",
"title": "form-data uses unsafe random function in form-data for choosing boundary",
"url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
"severity": "critical",
"cwe": [
"CWE-330"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<2.5.4"
}
],
"effects": [
"request"
],
"range": "<2.5.4",
"nodes": [
"node_modules/request/node_modules/form-data"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"inquirer": {
"name": "inquirer",
"severity": "low",
"isDirect": false,
"via": [
"external-editor"
],
"effects": [
"@wdio/cli"
],
"range": "3.0.0 - 8.2.6 || 9.0.0 - 9.3.7",
"nodes": [
"node_modules/inquirer"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"mwbot": {
"name": "mwbot",
"severity": "moderate",
"isDirect": false,
"via": [
"request"
],
"effects": [
"wdio-mediawiki"
],
"range": ">=0.1.6",
"nodes": [
"node_modules/mwbot"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"puppeteer-core": {
"name": "puppeteer-core",
"severity": "high",
"isDirect": false,
"via": [
"tar-fs",
"ws"
],
"effects": [
"devtools",
"webdriverio"
],
"range": "10.0.0 - 22.11.1",
"nodes": [
"node_modules/puppeteer-core"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"request": {
"name": "request",
"severity": "critical",
"isDirect": false,
"via": [
{
"source": 1096727,
"name": "request",
"dependency": "request",
"title": "Server-Side Request Forgery in Request",
"url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
"severity": "moderate",
"cwe": [
"CWE-918"
],
"cvss": {
"score": 6.1,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
},
"range": "<=2.88.2"
},
"form-data",
"tough-cookie"
],
"effects": [
"mwbot"
],
"range": "*",
"nodes": [
"node_modules/request"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"tar-fs": {
"name": "tar-fs",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1106930,
"name": "tar-fs",
"dependency": "tar-fs",
"title": "tar-fs can extract outside the specified dir with a specific tarball",
"url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v",
"severity": "high",
"cwe": [
"CWE-22"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": ">=2.0.0 <2.1.3"
},
{
"source": 1108293,
"name": "tar-fs",
"dependency": "tar-fs",
"title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball",
"url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v",
"severity": "high",
"cwe": [
"CWE-22",
"CWE-61"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": ">=2.0.0 <2.1.4"
},
{
"source": 1108411,
"name": "tar-fs",
"dependency": "tar-fs",
"title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File",
"url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx",
"severity": "high",
"cwe": [
"CWE-22"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
},
"range": ">=2.0.0 <2.1.2"
}
],
"effects": [
"puppeteer-core"
],
"range": "2.0.0 - 2.1.3",
"nodes": [
"node_modules/tar-fs"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"tmp": {
"name": "tmp",
"severity": "low",
"isDirect": false,
"via": [
{
"source": 1106849,
"name": "tmp",
"dependency": "tmp",
"title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter",
"url": "https://github.com/advisories/GHSA-52f5-9888-hmc6",
"severity": "low",
"cwe": [
"CWE-59"
],
"cvss": {
"score": 2.5,
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"
},
"range": "<=0.2.3"
}
],
"effects": [
"external-editor"
],
"range": "<=0.2.3",
"nodes": [
"node_modules/tmp"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"tough-cookie": {
"name": "tough-cookie",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1097682,
"name": "tough-cookie",
"dependency": "tough-cookie",
"title": "tough-cookie Prototype Pollution vulnerability",
"url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
"severity": "moderate",
"cwe": [
"CWE-1321"
],
"cvss": {
"score": 6.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
},
"range": "<4.1.3"
}
],
"effects": [
"request"
],
"range": "<4.1.3",
"nodes": [
"node_modules/request/node_modules/tough-cookie"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"validator": {
"name": "validator",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1109241,
"name": "validator",
"dependency": "validator",
"title": "validator.js has a URL validation bypass vulnerability in its isURL function",
"url": "https://github.com/advisories/GHSA-9965-vmph-33xx",
"severity": "moderate",
"cwe": [
"CWE-79"
],
"cvss": {
"score": 6.1,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
},
"range": "<13.15.20"
}
],
"effects": [],
"range": "<13.15.20",
"nodes": [
""
],
"fixAvailable": true
},
"wdio-mediawiki": {
"name": "wdio-mediawiki",
"severity": "moderate",
"isDirect": true,
"via": [
"mwbot"
],
"effects": [],
"range": "<=5.1.0",
"nodes": [
"node_modules/wdio-mediawiki"
],
"fixAvailable": {
"name": "wdio-mediawiki",
"version": "6.0.0",
"isSemVerMajor": true
}
},
"webdriverio": {
"name": "webdriverio",
"severity": "high",
"isDirect": false,
"via": [
"devtools",
"puppeteer-core"
],
"effects": [
"@wdio/cli",
"@wdio/runner"
],
"range": "7.16.5 - 8.46.0",
"nodes": [
"node_modules/webdriverio"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"ws": {
"name": "ws",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1098392,
"name": "ws",
"dependency": "ws",
"title": "ws affected by a DoS when handling a request with many HTTP headers",
"url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q",
"severity": "high",
"cwe": [
"CWE-476"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": ">=8.0.0 <8.17.1"
}
],
"effects": [
"puppeteer-core"
],
"range": "8.0.0 - 8.17.0",
"nodes": [
"node_modules/puppeteer-core/node_modules/ws"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
},
"yarn-install": {
"name": "yarn-install",
"severity": "high",
"isDirect": false,
"via": [
"cross-spawn"
],
"effects": [
"@wdio/cli"
],
"range": "*",
"nodes": [
"node_modules/yarn-install"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.20.0",
"isSemVerMajor": true
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 3,
"moderate": 4,
"high": 12,
"critical": 2,
"total": 21
},
"dependencies": {
"prod": 1,
"dev": 1277,
"optional": 4,
"peer": 1,
"peerOptional": 0,
"total": 1277
}
}
}
}
--- end ---
{"added": 1277, "removed": 0, "changed": 0, "audited": 1278, "funding": 205, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@wdio/cli": {"name": "@wdio/cli", "severity": "high", "isDirect": true, "via": ["inquirer", "webdriverio", "yarn-install"], "effects": ["@wdio/junit-reporter", "@wdio/local-runner", "@wdio/spec-reporter"], "range": "<=9.0.0-alpha.426", "nodes": ["node_modules/@wdio/cli"], "fixAvailable": {"name": "@wdio/cli", "version": "9.20.0", "isSemVerMajor": true}}, "@wdio/junit-reporter": {"name": "@wdio/junit-reporter", "severity": "high", "isDirect": true, "via": ["@wdio/cli"], "effects": [], "range": "6.0.4 - 8.0.0-alpha.631", "nodes": ["node_modules/@wdio/junit-reporter"], "fixAvailable": {"name": "@wdio/junit-reporter", "version": "9.20.0", "isSemVerMajor": true}}, "@wdio/local-runner": {"name": "@wdio/local-runner", "severity": "high", "isDirect": true, "via": ["@wdio/cli", "@wdio/runner"], "effects": [], "range": "6.0.4 - 8.46.0", "nodes": ["node_modules/@wdio/local-runner"], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.20.0", "isSemVerMajor": true}}, "@wdio/runner": {"name": "@wdio/runner", "severity": "high", "isDirect": false, "via": ["webdriverio"], "effects": ["@wdio/local-runner"], "range": "7.16.5 - 8.46.0", "nodes": ["node_modules/@wdio/runner"], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.20.0", "isSemVerMajor": true}}, "@wdio/spec-reporter": {"name": "@wdio/spec-reporter", "severity": "high", "isDirect": true, "via": ["@wdio/cli"], "effects": [], "range": "6.0.4 - 8.0.0-alpha.631", "nodes": ["node_modules/@wdio/spec-reporter"], "fixAvailable": {"name": "@wdio/spec-reporter", "version": "9.20.0", "isSemVerMajor": true}}, "cross-spawn": {"name": "cross-spawn", "severity": "high", "isDirect": false, "via": [{"source": 1104663, "name": "cross-spawn", "dependency": "cross-spawn", "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn", "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<6.0.6"}], "effects": ["yarn-install"], "range": "<6.0.6", "nodes": ["node_modules/yarn-install/node_modules/cross-spawn"], "fixAvailable": {"name": "@wdio/cli", "version": "9.20.0", "isSemVerMajor": true}}, "devtools": {"name": "devtools", "severity": "high", "isDirect": false, "via": ["puppeteer-core"], "effects": [], "range": ">=7.16.5", "nodes": ["node_modules/devtools"], "fixAvailable": true}, "external-editor": {"name": "external-editor", "severity": "low", "isDirect": false, "via": ["tmp"], "effects": ["inquirer"], "range": ">=1.1.1", "nodes": ["node_modules/external-editor"], "fixAvailable": {"name": "@wdio/cli", "version": "9.20.0", "isSemVerMajor": true}}, "form-data": {"name": "form-data", "severity": "critical", "isDirect": false, "via": [{"source": 1106509, "name": "form-data", "dependency": "form-data", "title": "form-data uses unsafe random function in form-data for choosing boundary", "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4", "severity": "critical", "cwe": ["CWE-330"], "cvss": {"score": 0, "vectorString": null}, "range": "<2.5.4"}], "effects": ["request"], "range": "<2.5.4", "nodes": ["node_modules/request/node_modules/form-data"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.0.0", "isSemVerMajor": true}}, "inquirer": {"name": "inquirer", "severity": "low", "isDirect": false, "via": ["external-editor"], "effects": ["@wdio/cli"], "range": "3.0.0 - 8.2.6 || 9.0.0 - 9.3.7", "nodes": ["node_modules/inquirer"], "fixAvailable": {"name": "@wdio/cli", "version": "9.20.0", "isSemVerMajor": true}}, "mwbot": {"name": "mwbot", "severity": "moderate", "isDirect": false, "via": ["request"], "effects": ["wdio-mediawiki"], "range": ">=0.1.6", "nodes": ["node_modules/mwbot"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.0.0", "isSemVerMajor": true}}, "puppeteer-core": {"name": "puppeteer-core", "severity": "high", "isDirect": false, "via": ["tar-fs", "ws"], "effects": ["devtools", "webdriverio"], "range": "10.0.0 - 22.11.1", "nodes": ["node_modules/puppeteer-core"], "fixAvailable": {"name": "@wdio/cli", "version": "9.20.0", "isSemVerMajor": true}}, "request": {"name": "request", "severity": "critical", "isDirect": false, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "form-data", "tough-cookie"], "effects": ["mwbot"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.0.0", "isSemVerMajor": true}}, "tar-fs": {"name": "tar-fs", "severity": "high", "isDirect": false, "via": [{"source": 1106930, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs can extract outside the specified dir with a specific tarball", "url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 0, "vectorString": null}, "range": ">=2.0.0 <2.1.3"}, {"source": 1108293, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball", "url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v", "severity": "high", "cwe": ["CWE-22", "CWE-61"], "cvss": {"score": 0, "vectorString": null}, "range": ">=2.0.0 <2.1.4"}, {"source": 1108411, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File", "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=2.0.0 <2.1.2"}], "effects": ["puppeteer-core"], "range": "2.0.0 - 2.1.3", "nodes": ["node_modules/tar-fs"], "fixAvailable": {"name": "@wdio/cli", "version": "9.20.0", "isSemVerMajor": true}}, "tmp": {"name": "tmp", "severity": "low", "isDirect": false, "via": [{"source": 1106849, "name": "tmp", "dependency": "tmp", "title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter", "url": "https://github.com/advisories/GHSA-52f5-9888-hmc6", "severity": "low", "cwe": ["CWE-59"], "cvss": {"score": 2.5, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"}, "range": "<=0.2.3"}], "effects": ["external-editor"], "range": "<=0.2.3", "nodes": ["node_modules/tmp"], "fixAvailable": {"name": "@wdio/cli", "version": "9.20.0", "isSemVerMajor": true}}, "tough-cookie": {"name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [{"source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"}, "range": "<4.1.3"}], "effects": ["request"], "range": "<4.1.3", "nodes": ["node_modules/request/node_modules/tough-cookie"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.0.0", "isSemVerMajor": true}}, "validator": {"name": "validator", "severity": "moderate", "isDirect": false, "via": [{"source": 1109241, "name": "validator", "dependency": "validator", "title": "validator.js has a URL validation bypass vulnerability in its isURL function", "url": "https://github.com/advisories/GHSA-9965-vmph-33xx", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<13.15.20"}], "effects": [], "range": "<13.15.20", "nodes": [""], "fixAvailable": true}, "wdio-mediawiki": {"name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": ["mwbot"], "effects": [], "range": "<=5.1.0", "nodes": ["node_modules/wdio-mediawiki"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.0.0", "isSemVerMajor": true}}, "webdriverio": {"name": "webdriverio", "severity": "high", "isDirect": false, "via": ["devtools", "puppeteer-core"], "effects": ["@wdio/cli", "@wdio/runner"], "range": "7.16.5 - 8.46.0", "nodes": ["node_modules/webdriverio"], "fixAvailable": {"name": "@wdio/cli", "version": "9.20.0", "isSemVerMajor": true}}, "ws": {"name": "ws", "severity": "high", "isDirect": false, "via": [{"source": 1098392, "name": "ws", "dependency": "ws", "title": "ws affected by a DoS when handling a request with many HTTP headers", "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q", "severity": "high", "cwe": ["CWE-476"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=8.0.0 <8.17.1"}], "effects": ["puppeteer-core"], "range": "8.0.0 - 8.17.0", "nodes": ["node_modules/puppeteer-core/node_modules/ws"], "fixAvailable": {"name": "@wdio/cli", "version": "9.20.0", "isSemVerMajor": true}}, "yarn-install": {"name": "yarn-install", "severity": "high", "isDirect": false, "via": ["cross-spawn"], "effects": ["@wdio/cli"], "range": "*", "nodes": ["node_modules/yarn-install"], "fixAvailable": {"name": "@wdio/cli", "version": "9.20.0", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 3, "moderate": 4, "high": 12, "critical": 2, "total": 21}, "dependencies": {"prod": 1, "dev": 1277, "optional": 4, "peer": 1, "peerOptional": 0, "total": 1277}}}}
$ /usr/bin/npm audit fix --only=dev
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex@2.3.2',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.3.2',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated @types/easy-table@1.2.3: This is a stub types definition. easy-table provides its own type definitions, so you do not need this installed.
npm WARN deprecated osenv@0.1.5: This package is no longer supported.
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
added 1276 packages, and audited 1277 packages in 17s
205 packages are looking for funding
run `npm fund` for details
# npm audit report
cross-spawn <6.0.6
Severity: high
Regular Expression Denial of Service (ReDoS) in cross-spawn - https://github.com/advisories/GHSA-3xgq-45jj-v275
fix available via `npm audit fix --force`
Will install @wdio/cli@9.20.0, which is a breaking change
node_modules/yarn-install/node_modules/cross-spawn
yarn-install *
Depends on vulnerable versions of cross-spawn
node_modules/yarn-install
@wdio/cli <=9.0.0-alpha.426
Depends on vulnerable versions of inquirer
Depends on vulnerable versions of webdriverio
Depends on vulnerable versions of yarn-install
node_modules/@wdio/cli
@wdio/junit-reporter 6.0.4 - 8.0.0-alpha.631
Depends on vulnerable versions of @wdio/cli
node_modules/@wdio/junit-reporter
@wdio/local-runner 6.0.4 - 8.46.0
Depends on vulnerable versions of @wdio/cli
Depends on vulnerable versions of @wdio/runner
node_modules/@wdio/local-runner
@wdio/spec-reporter 6.0.4 - 8.0.0-alpha.631
Depends on vulnerable versions of @wdio/cli
node_modules/@wdio/spec-reporter
form-data <2.5.4
Severity: critical
form-data uses unsafe random function in form-data for choosing boundary - https://github.com/advisories/GHSA-fjxv-7rqg-78g4
fix available via `npm audit fix --force`
Will install wdio-mediawiki@6.0.0, which is a breaking change
node_modules/request/node_modules/form-data
request *
Depends on vulnerable versions of form-data
Depends on vulnerable versions of tough-cookie
node_modules/request
mwbot >=0.1.6
Depends on vulnerable versions of request
node_modules/mwbot
wdio-mediawiki <=5.1.0
Depends on vulnerable versions of mwbot
node_modules/wdio-mediawiki
tar-fs 2.0.0 - 2.1.3
Severity: high
tar-fs can extract outside the specified dir with a specific tarball - https://github.com/advisories/GHSA-8cj5-5rvv-wf4v
tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball - https://github.com/advisories/GHSA-vj76-c3g6-qr5v
tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File - https://github.com/advisories/GHSA-pq67-2wwv-3xjx
fix available via `npm audit fix --force`
Will install @wdio/cli@9.20.0, which is a breaking change
node_modules/tar-fs
puppeteer-core 10.0.0 - 22.11.1
Depends on vulnerable versions of tar-fs
Depends on vulnerable versions of ws
node_modules/puppeteer-core
devtools >=7.16.5
Depends on vulnerable versions of puppeteer-core
node_modules/devtools
webdriverio 7.16.5 - 8.46.0
Depends on vulnerable versions of devtools
Depends on vulnerable versions of puppeteer-core
node_modules/webdriverio
@wdio/runner 7.16.5 - 8.46.0
Depends on vulnerable versions of webdriverio
node_modules/@wdio/runner
tmp <=0.2.3
tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter - https://github.com/advisories/GHSA-52f5-9888-hmc6
fix available via `npm audit fix --force`
Will install @wdio/cli@9.20.0, which is a breaking change
node_modules/tmp
external-editor >=1.1.1
Depends on vulnerable versions of tmp
node_modules/external-editor
inquirer 3.0.0 - 8.2.6 || 9.0.0 - 9.3.7
Depends on vulnerable versions of external-editor
node_modules/inquirer
tough-cookie <4.1.3
Severity: moderate
tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3
fix available via `npm audit fix --force`
Will install wdio-mediawiki@6.0.0, which is a breaking change
node_modules/request/node_modules/tough-cookie
ws 8.0.0 - 8.17.0
Severity: high
ws affected by a DoS when handling a request with many HTTP headers - https://github.com/advisories/GHSA-3h5v-q93c-6h6q
fix available via `npm audit fix --force`
Will install @wdio/cli@9.20.0, which is a breaking change
node_modules/puppeteer-core/node_modules/ws
20 vulnerabilities (3 low, 3 moderate, 12 high, 2 critical)
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex@2.3.2',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.3.2',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated @types/easy-table@1.2.3: This is a stub types definition. easy-table provides its own type definitions, so you do not need this installed.
npm WARN deprecated osenv@0.1.5: This package is no longer supported.
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
added 1276 packages, and audited 1277 packages in 25s
205 packages are looking for funding
run `npm fund` for details
20 vulnerabilities (3 low, 3 moderate, 12 high, 2 critical)
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/store/stores/submission.test.js
PASS tests/jest/utils/zobjectUtils.test.js
PASS tests/jest/store/stores/zobject.test.js
PASS tests/jest/store/stores/library.test.js
PASS tests/jest/store/stores/factory.test.js
PASS tests/jest/components/widgets/about/About.test.js
PASS tests/jest/components/default/ZObjectKeyValue.test.js (6.136 s)
PASS tests/jest/components/default/ZObjectStringRenderer.test.js
PASS tests/jest/components/visualeditor/FunctionInputPreview.test.js
PASS tests/jest/components/widgets/about/AboutLanguageBlock.test.js
PASS tests/jest/components/default/ZMultilingualStringDialog.test.js
PASS tests/jest/store/stores/router.test.js
PASS tests/jest/components/base/ModeSelector.test.js
PASS tests/jest/store/stores/wikidata/lexemes.test.js
PASS tests/jest/utils/typeUtils.test.js
PASS tests/jest/components/default/ZObjectToString.test.js (11.086 s)
PASS tests/jest/store/stores/zfunction.test.js
PASS tests/jest/components/default/ZMultilingualString.test.js
PASS tests/jest/store/stores/wikidata/entities.test.js
PASS tests/jest/components/widgets/function-evaluator/FunctionMetadataDialog.test.js
PASS tests/jest/store/stores/testResults.test.js
PASS tests/jest/components/widgets/function-evaluator/FunctionEvaluator.test.js
PASS tests/jest/utils/scrollUtils.test.js
PASS tests/jest/components/widgets/function-explorer/FunctionExplorer.test.js
PASS tests/jest/store/stores/ztype.test.js
PASS tests/jest/components/base/ZObjectSelector.test.js
PASS tests/jest/components/default/wikidata/LexemeSense.test.js
PASS tests/jest/components/widgets/publish/PublishDialog.test.js
PASS tests/jest/components/default/ZCode.test.js
PASS tests/jest/components/widgets/about/AboutLanguagesDialog.test.js
PASS tests/jest/components/function/viewer/FunctionViewerDetails.test.js
PASS tests/jest/store/stores/errors.test.js
PASS tests/jest/store/classes/ApiError.test.js
PASS tests/jest/components/default/ZImplementation.test.js
PASS tests/jest/languageselector/LanguageSelector.test.js
PASS tests/jest/components/default/wikidata/EntitySelector.test.js
PASS tests/jest/components/visualeditor/FunctionInputField.test.js
PASS tests/jest/store/stores/wikidata/properties.test.js
PASS tests/jest/store/stores/wikidata/items.test.js
PASS tests/jest/components/widgets/publish/Publish.test.js
PASS tests/jest/mixins/scrollMixin.test.js
PASS tests/jest/integration/CreateNewWikidataEnum.test.js (15.504 s)
PASS tests/jest/components/visualeditor/fields/FunctionInputParser.test.js
PASS tests/jest/components/default/ZTester.test.js
PASS tests/jest/components/visualeditor/fields/FunctionInputWikidata.test.js
PASS tests/jest/components/widgets/function-report/FunctionReport.test.js
PASS tests/jest/integration/DisconnectFunctionImplementation.test.js
PASS tests/jest/utils/schemata.test.js
PASS tests/jest/components/default/wikidata/LexemeForm.test.js
PASS tests/jest/components/base/CodeEditor.test.js
PASS tests/jest/components/default/wikidata/Property.test.js
PASS tests/jest/integration/CreateNewTester.test.js (8.503 s)
PASS tests/jest/store/stores/currentPage.test.js
PASS tests/jest/components/default/wikidata/Lexeme.test.js
PASS tests/jest/components/base/TypeSelector.test.js
PASS tests/jest/components/default/wikidata/Item.test.js
PASS tests/jest/components/visualeditor/fields/FunctionInputEnum.test.js
PASS tests/jest/components/visualeditor/fields/FunctionInputLanguage.test.js
PASS tests/jest/integration/CreateNewCompositionImplementation.test.js (11.27 s)
PASS tests/jest/components/base/Pagination.test.js
PASS tests/jest/integration/CreateNewFunction.test.js
PASS tests/jest/components/default/ZArgumentReference.test.js
PASS tests/jest/integration/EditFunction.test.js
PASS tests/jest/integration/FunctionEditorEdgeCases.test.js
PASS tests/jest/components/function/editor/FunctionEditorInputsItem.test.js
PASS tests/jest/store/stores/visualeditor.test.js
PASS tests/jest/components/function/editor/FunctionEditorName.test.js
PASS tests/jest/components/visualeditor/FunctionInputSetup.test.js
PASS tests/jest/components/default/ZReference.test.js
PASS tests/jest/integration/CreateNewCodeImplementation.test.js (12.538 s)
PASS tests/jest/store/stores/queue.test.js
PASS tests/jest/utils/miscUtils.test.js
PASS tests/jest/components/default/ZTypedList.test.js
PASS tests/jest/mixins/pageTitleMixin.test.js
PASS tests/jest/components/base/ClipboardManager.test.js
PASS tests/jest/components/function/editor/FunctionEditorDescription.test.js
PASS tests/jest/utils/urlUtils.test.js
PASS tests/jest/components/default/ZTypedListItems.test.js
PASS tests/jest/integration/RunFunctionCall.test.js
PASS tests/jest/components/function/editor/FunctionEditorLanguageBlock.test.js
PASS tests/jest/components/default/wikidata/ReferenceSelector.test.js
PASS tests/jest/integration/FunctionEditorGenericTypes.test.js
PASS tests/jest/components/function/editor/FunctionEditorInputs.test.js
PASS tests/jest/components/visualeditor/FunctionSelect.test.js
PASS tests/jest/components/widgets/function-report/FunctionReportItem.test.js
PASS tests/jest/composables/useBreakpoints.test.js
PASS tests/jest/store/stores/listItems.test.js
PASS tests/jest/components/function/editor/FunctionEditorAliases.test.js
PASS tests/jest/components/function/viewer/FunctionViewerDetailsTable.test.js
PASS tests/jest/components/default/wikidata/Enum.test.js
PASS tests/jest/components/App.test.js
PASS tests/jest/store/stores/user.test.js
PASS tests/jest/mixins/errorMixin.test.js
PASS tests/jest/components/default/ZMonolingualString.test.js
PASS tests/jest/utils/errorUtils.test.js
PASS tests/jest/mixins/zobjectMixin.test.js
PASS tests/jest/mixins/eventLogMixin.test.js
PASS tests/jest/store/classes/ErrorData.test.js
PASS tests/jest/integration/ConnectFunctionImplementation.test.js
PASS tests/jest/integration/ConnectFunctionTest.test.js
PASS tests/jest/components/base/ExpandedToggle.test.js
PASS tests/jest/components/widgets/function-evaluator/EvaluationResult.test.js
PASS tests/jest/integration/CancelEditExistingFunction.test.js
PASS tests/jest/integration/DisconnectFunctionTest.test.js
PASS tests/jest/components/function/editor/FunctionEditor.test.js
PASS tests/jest/components/visualeditor/FunctionInputDefaultValueCheckbox.test.js
PASS tests/jest/store/stores/languages.test.js
PASS tests/jest/store/stores/functionCall.test.js
PASS tests/jest/components/visualeditor/fields/FunctionInputString.test.js
PASS tests/jest/components/function/editor/FunctionEditorOutput.test.js
PASS tests/jest/components/visualeditor/FunctionCallSetup.test.js
PASS tests/jest/components/default/ZBoolean.test.js
PASS tests/jest/components/function/editor/FunctionEditorLanguage.test.js
PASS tests/jest/mixins/clipboardMixin.test.js
PASS tests/jest/components/base/LocalizedLabel.test.js
PASS tests/jest/components/visualeditor/ExpandableDescription.test.js
PASS tests/jest/components/default/ZHTMLFragment.test.js
PASS tests/jest/components/base/TypeToString.test.js
PASS tests/jest/integration/CancelEditNewFunction.test.js
PASS tests/jest/components/default/ZString.test.js
PASS tests/jest/components/default/ZTypedListType.test.js
PASS tests/jest/views/FunctionViewer.test.js
PASS tests/jest/store/stores/programmingLanguages.test.js
PASS tests/jest/components/base/SafeMessage.test.js
PASS tests/jest/components/widgets/publish/LeaveEditorDialog.test.js
PASS tests/jest/components/default/ZFunctionCall.test.js
PASS tests/jest/utils/wikidataUtils.test.js
PASS tests/jest/store/index.test.js
Jest: "./resources/ext.wikilambda.app/utils" coverage threshold for statements (88%) not met: 86.43%
Jest: "./resources/ext.wikilambda.app/utils" coverage threshold for lines (88%) not met: 86.43%
Test Suites: 128 passed, 128 total
Tests: 1 skipped, 1988 passed, 1989 total
Snapshots: 0 total
Time: 88.202 s
Ran all test suites.
--- stdout ---
> test
> grunt test && npm run test:unit
Running "eslint:all" (eslint) task
/src/repo/docker-compose.sample.yml
3:1 warning This line has a length of 103. Maximum allowed is 100 max-len
4:1 warning This line has a length of 107. Maximum allowed is 100 max-len
48:1 warning This line has a length of 117. Maximum allowed is 100 max-len
49:1 warning This line has a length of 104. Maximum allowed is 100 max-len
50:1 warning This line has a length of 106. Maximum allowed is 100 max-len
56:1 warning This line has a length of 120. Maximum allowed is 100 max-len
57:1 warning This line has a length of 104. Maximum allowed is 100 max-len
58:1 warning This line has a length of 109. Maximum allowed is 100 max-len
✖ 8 problems (0 errors, 8 warnings)
Running "banana:WikiLambda" (banana) task
>> 3 message directories checked.
Running "stylelint:all" (stylelint) task
>> Linted 310 files without errors
Done.
> test:unit
> jest
----------------------------------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------------------------------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
All files | 96.63 | 90.13 | 96.05 | 96.63 |
ext.wikilambda.app/components | 97.74 | 100 | 100 | 97.74 |
App.vue | 97.74 | 100 | 100 | 97.74 | 93,97,117
ext.wikilambda.app/components/base | 96.05 | 89.78 | 94.79 | 96.05 |
ClipboardManager.vue | 86.66 | 77.77 | 100 | 86.66 | 67-68,70-79
CodeEditor.vue | 96.54 | 92.59 | 100 | 96.54 | 90-92,263-270
CustomDialogHeader.vue | 100 | 100 | 100 | 100 |
ExpandedToggle.vue | 100 | 100 | 100 | 100 |
KeyBlock.vue | 100 | 100 | 100 | 100 |
KeyValueBlock.vue | 100 | 100 | 100 | 100 |
LocalizedLabel.vue | 100 | 100 | 100 | 100 |
ModeSelector.vue | 100 | 95 | 100 | 100 | 91,190,292
Pagination.vue | 100 | 100 | 100 | 100 |
SafeMessage.vue | 100 | 100 | 100 | 100 |
StatusIcon.vue | 100 | 100 | 100 | 100 |
TypeSelector.vue | 94.71 | 78.57 | 85.71 | 94.71 | 163-167,179-181,185-188
TypeToString.vue | 99.34 | 94.11 | 100 | 99.34 | 81
WidgetBase.vue | 100 | 100 | 100 | 100 |
ZObjectSelector.vue | 89.36 | 82.19 | 84.61 | 89.36 | 186-218,352-360,393-394,417,425-430,466-467,496-498,522-526,541-542,564-566,589-590,595-597,614-617,659-660
ext.wikilambda.app/components/function/editor | 99.12 | 90 | 100 | 99.12 |
FunctionEditor.vue | 95.51 | 73.52 | 100 | 95.51 | 126,130-132,230-232,234-239
FunctionEditorAliases.vue | 100 | 100 | 100 | 100 |
FunctionEditorDescription.vue | 98.88 | 94.44 | 100 | 98.88 | 139-140
FunctionEditorField.vue | 100 | 100 | 100 | 100 |
FunctionEditorInputs.vue | 100 | 100 | 100 | 100 |
FunctionEditorInputsItem.vue | 100 | 84.61 | 100 | 100 | 222,231
FunctionEditorLanguage.vue | 100 | 100 | 100 | 100 |
FunctionEditorLanguageBlock.vue | 100 | 87.5 | 100 | 100 | 127
FunctionEditorName.vue | 98.94 | 94.44 | 100 | 98.94 | 147-148
FunctionEditorOutput.vue | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/function/viewer | 98.73 | 96.06 | 97.95 | 98.73 |
FunctionTesterTable.vue | 95 | 85.71 | 87.5 | 95 | 91-92,109,159-164
FunctionViewerDetails.vue | 99.28 | 97.97 | 100 | 99.28 | 225-226,551,570,588
FunctionViewerDetailsTable.vue | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/types | 97.92 | 88.69 | 97.28 | 97.92 |
ZArgumentReference.vue | 97.29 | 72.72 | 100 | 97.29 | 165-169
ZBoolean.vue | 100 | 100 | 100 | 100 |
ZCode.vue | 97.17 | 94.23 | 100 | 97.17 | 338,384-396
ZFunctionCall.vue | 100 | 100 | 100 | 100 |
ZHTMLFragment.vue | 100 | 80 | 100 | 100 | 115
ZImplementation.vue | 100 | 100 | 100 | 100 |
ZMonolingualString.vue | 100 | 92.3 | 100 | 100 | 145
ZMultilingualString.vue | 99 | 89.83 | 100 | 99 | 329-330,399,401-402
ZMultilingualStringDialog.vue | 98.27 | 85.71 | 95 | 98.27 | 177-178,421-422,431-432,435-436,440
ZObjectKeyValue.vue | 95.49 | 86.82 | 100 | 95.49 | 237-243,247-248,277-278,298-299,571-573,596-597,602-605,634-635,662-667,722-723,830-831,833-834,836-837,839-840
ZObjectKeyValueSet.vue | 100 | 60 | 100 | 100 | 70,78
ZObjectStringRenderer.vue | 95.43 | 94.54 | 80.76 | 95.43 | 270,299-300,356-358,369-370,426-431,497,523-524,550-551,558-565
ZObjectToString.vue | 97.91 | 90.21 | 100 | 97.91 | 334-336,352-354,410-412,416-417,422-423
ZReference.vue | 98.18 | 68.18 | 100 | 98.18 | 177,179-181
ZString.vue | 100 | 66.66 | 100 | 100 | 88
ZTester.vue | 99.25 | 95.65 | 100 | 99.25 | 197-198
ZTypedList.vue | 100 | 85.71 | 100 | 100 | 95
ZTypedListItems.vue | 100 | 100 | 100 | 100 |
ZTypedListType.vue | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/types/wikidata | 96.95 | 84.66 | 90.24 | 96.95 |
EntitySelector.vue | 94.5 | 85.71 | 80 | 94.5 | 88-89,153-155,184-190,228-229
Enum.vue | 97.75 | 81.81 | 100 | 97.75 | 191-195
Item.vue | 98.41 | 84.61 | 100 | 98.41 | 140-142
Lexeme.vue | 97.38 | 76.92 | 100 | 97.38 | 140-142,160-161
LexemeForm.vue | 97.43 | 81.81 | 87.5 | 97.43 | 155-159
LexemeSense.vue | 95.64 | 88.57 | 78.94 | 95.64 | 184,225,242-246,274-275,288-290,322-326
Property.vue | 98.94 | 81.81 | 87.5 | 98.94 | 154-155
ReferenceSelector.vue | 97.72 | 86.66 | 100 | 97.72 | 113-115
wikidataIconSvg.js | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/visualeditor | 98.32 | 96.2 | 91.56 | 98.32 |
ExpandableDescription.vue | 98.62 | 100 | 83.33 | 98.62 | 91-92
FunctionCallSetup.vue | 95.52 | 100 | 66.66 | 95.52 | 99,106,112-115
FunctionInputDefaultValueCheckbox.vue | 100 | 100 | 100 | 100 |
FunctionInputField.vue | 100 | 95.83 | 100 | 100 | 182
FunctionInputPreview.vue | 98.4 | 94.91 | 95.45 | 98.4 | 372-373,394,476-480
FunctionInputSetup.vue | 98.89 | 100 | 95 | 98.89 | 116-119
FunctionSelect.vue | 95.97 | 88.88 | 90 | 95.97 | 189-190,200-201,216-218,237-240
FunctionSelectItem.vue | 100 | 100 | 100 | 100 |
wikifunctionsIconSvg.js | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/visualeditor/fields | 95 | 88.07 | 89.06 | 95 |
FunctionInputEnum.vue | 97.17 | 94.11 | 86.66 | 97.17 | 112-113,128,212-213,241-242
FunctionInputLanguage.vue | 96.49 | 83.33 | 90 | 96.49 | 90-91,141-142,151-152,220-221
FunctionInputParser.vue | 90.5 | 89.36 | 86.36 | 90.5 | 224-236,238-239,247-248,286-287,368-377,387-393,405-409
FunctionInputString.vue | 100 | 100 | 100 | 100 |
FunctionInputWikidata.vue | 97.26 | 82.85 | 92.85 | 97.26 | 126-127,172-173,182-183,263-264
ext.wikilambda.app/components/widgets/about | 98.13 | 92.85 | 95 | 98.13 |
About.vue | 98.5 | 96.25 | 92.85 | 98.5 | 238,280-283,318-319,402-403
AboutLanguageBlock.vue | 99.67 | 97.72 | 100 | 99.67 | 499-500
AboutLanguagesDialog.vue | 95.16 | 76.66 | 92.85 | 95.16 | 253-255,267-269,284-285,317-318,320-321,323-324,326-327,333-335
ext.wikilambda.app/components/widgets/function-evaluator | 97.05 | 83.04 | 95.58 | 97.05 |
EvaluationResult.vue | 96.71 | 71.42 | 71.42 | 96.71 | 112,121-122,134-135
FunctionEvaluator.vue | 100 | 91.66 | 100 | 100 | 440,469-471
FunctionMetadataDialog.vue | 95.35 | 80 | 97.36 | 95.35 | 242-243,317-318,324-325,419-420,440,456-457,586-588,602-603,670-671,698,731,783,800,830-832,838-842,856-860,865-869,874-878
FunctionMetadataItem.vue | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/widgets/function-explorer | 100 | 100 | 100 | 100 |
FunctionExplorer.vue | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/widgets/function-report | 94.89 | 85.71 | 90 | 94.89 |
FunctionReport.vue | 96.09 | 91.52 | 90.9 | 96.09 | 229-231,289-291,297-299,327-333
FunctionReportItem.vue | 92.79 | 72 | 87.5 | 92.79 | 129-130,132-133,135-136,149,151,163-164,166-167,182-186
ext.wikilambda.app/components/widgets/publish | 96.77 | 86.07 | 95 | 96.77 |
LeaveEditorDialog.vue | 100 | 100 | 100 | 100 |
Publish.vue | 91.89 | 85 | 88.88 | 91.89 | 106-113,230-239,242,244-248,266-268
PublishDialog.vue | 100 | 85.29 | 100 | 100 | 244,306,359-361
ext.wikilambda.app/composables | 100 | 100 | 100 | 100 |
useBreakpoints.js | 100 | 100 | 100 | 100 |
ext.wikilambda.app/mixins | 98.9 | 90.69 | 100 | 98.9 |
clipboardMixin.js | 100 | 100 | 100 | 100 |
errorMixin.js | 100 | 90 | 100 | 100 | 68
eventLogMixin.js | 97.43 | 93.33 | 100 | 97.43 | 45-46
metadataMixin.js | 100 | 100 | 100 | 100 |
pageTitleMixin.js | 100 | 93.33 | 100 | 100 | 71
scrollMixin.js | 100 | 100 | 100 | 100 |
typeMixin.js | 100 | 100 | 100 | 100 |
zobjectMixin.js | 94.87 | 50 | 100 | 94.87 | 51-52,66-67,80-81
ext.wikilambda.app/store | 100 | 100 | 100 | 100 |
index.js | 100 | 100 | 100 | 100 |
ext.wikilambda.app/store/classes | 97.31 | 87.09 | 100 | 97.31 |
ApiError.js | 95.73 | 81.81 | 100 | 95.73 | 151-153,159-160,200-203
ErrorData.js | 97.7 | 80 | 100 | 97.7 | 70-71
LabelData.js | 100 | 100 | 100 | 100 |
ext.wikilambda.app/store/stores | 98.3 | 95.09 | 97.46 | 98.3 |
errors.js | 100 | 100 | 100 | 100 |
functionCall.js | 97.22 | 87.5 | 100 | 97.22 | 31-32
languages.js | 92.39 | 76.92 | 100 | 92.39 | 26-29,43-45
library.js | 97.28 | 95.77 | 96.42 | 97.28 | 148-149,412-420,524-525,550-551,562-565,569,660-665,693-695,902,1050-1051,1181
listItems.js | 100 | 100 | 100 | 100 |
programmingLanguages.js | 100 | 100 | 100 | 100 |
queue.js | 100 | 100 | 100 | 100 |
router.js | 100 | 97.43 | 100 | 100 | 21
testResults.js | 99.1 | 88.33 | 100 | 99.1 | 276-278
user.js | 100 | 100 | 100 | 100 |
visualeditor.js | 96.35 | 96.42 | 88 | 96.35 | 62,72,95-96,156-157,198-202
zfunction.js | 100 | 96.42 | 100 | 100 | 90
zobject.js | 98.13 | 93.78 | 97.82 | 98.13 | 154-155,167-168,206-214,408-409,650-651,691-692,828-829,1201-1202
ztype.js | 99.39 | 100 | 100 | 99.39 | 277-278
ext.wikilambda.app/store/stores/wikidata | 95.3 | 92.24 | 97.1 | 95.3 |
entities.js | 92.97 | 87.5 | 100 | 92.97 | 47,87,98,143-155,273-278
items.js | 100 | 93.75 | 100 | 100 | 94,115
lexemes.js | 93.62 | 95.95 | 93.75 | 93.62 | 95-115,368,452-454,464-467,478-479
properties.js | 100 | 91.17 | 100 | 100 | 88,91,113
ext.wikilambda.app/store/stores/zobject | 96.49 | 85.18 | 100 | 96.49 |
currentPage.js | 100 | 86.36 | 100 | 100 | 73,119,121
factory.js | 93.96 | 76.27 | 100 | 93.96 | 68-94,99-100,110,116,118,120,124,128,132,134,136,142,147,190-196,385-388
submission.js | 98.73 | 95.14 | 100 | 98.73 | 402-403,534-535,540-541,572-573
ext.wikilambda.app/utils | 86.43 | 88.46 | 98.96 | 86.43 |
apiUtils.js | 98.64 | 80.39 | 100 | 98.64 | 262-264,328-329
errorUtils.js | 90.65 | 80 | 100 | 90.65 | 57-64,90-91
miscUtils.js | 100 | 100 | 100 | 100 |
schemata.js | 91.76 | 85.18 | 88.88 | 91.76 | 98-102,108-109,123,159-164,174-179
scrollUtils.js | 100 | 100 | 100 | 100 |
typeUtils.js | 57.78 | 61.76 | 100 | 57.78 | 22,126-127,150-151,154-156,159-169,173-175,178-179,182,204-212,226-235,238-248,299-321,324-344,347-366,369-382,468-505,508-529,532-539,542-568,571-611,631-639,642,671-698,716-717
urlUtils.js | 97.41 | 88.88 | 100 | 97.41 | 25-27
wikidataUtils.js | 100 | 100 | 100 | 100 |
zobjectUtils.js | 98.49 | 98.13 | 100 | 98.49 | 422-423,623-627,669-673
ext.wikilambda.app/views | 95.86 | 68 | 83.33 | 95.86 |
Default.vue | 97.51 | 68.75 | 81.81 | 97.51 | 161,197,211-214
FunctionEditor.vue | 100 | 100 | 100 | 100 |
FunctionEvaluator.vue | 100 | 100 | 100 | 100 |
FunctionViewer.vue | 90.32 | 57.14 | 80 | 90.32 | 87-94,106-109
ext.wikilambda.languageselector/components | 98.03 | 93.33 | 94.11 | 98.03 |
LanguageSelector.vue | 98.03 | 93.33 | 94.11 | 98.03 | 226-227,265-266,287-288
----------------------------------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--- end ---
$ node_modules/.bin/jest -u
--- stderr ---
PASS tests/jest/integration/CreateNewCompositionImplementation.test.js (10.426 s)
PASS tests/jest/integration/CreateNewCodeImplementation.test.js (11.133 s)
PASS tests/jest/integration/CreateNewWikidataEnum.test.js (13.958 s)
PASS tests/jest/components/default/ZObjectKeyValue.test.js
PASS tests/jest/integration/CreateNewTester.test.js (7.115 s)
PASS tests/jest/components/default/ZObjectToString.test.js (8.546 s)
PASS tests/jest/integration/FunctionEditorEdgeCases.test.js
PASS tests/jest/integration/CancelEditExistingFunction.test.js
PASS tests/jest/components/base/ZObjectSelector.test.js
PASS tests/jest/integration/FunctionEditorGenericTypes.test.js
PASS tests/jest/components/widgets/about/About.test.js
PASS tests/jest/integration/EditFunction.test.js
PASS tests/jest/integration/DisconnectFunctionImplementation.test.js
PASS tests/jest/integration/CreateNewFunction.test.js
PASS tests/jest/components/widgets/function-evaluator/FunctionMetadataDialog.test.js
PASS tests/jest/integration/RunFunctionCall.test.js
PASS tests/jest/integration/CancelEditNewFunction.test.js
PASS tests/jest/components/widgets/function-evaluator/FunctionEvaluator.test.js
PASS tests/jest/integration/ConnectFunctionTest.test.js
PASS tests/jest/components/default/ZMultilingualString.test.js
PASS tests/jest/integration/ConnectFunctionImplementation.test.js
PASS tests/jest/integration/DisconnectFunctionTest.test.js
PASS tests/jest/components/function/viewer/FunctionViewerDetails.test.js
PASS tests/jest/languageselector/LanguageSelector.test.js
PASS tests/jest/components/widgets/function-explorer/FunctionExplorer.test.js
PASS tests/jest/store/stores/zobject.test.js
PASS tests/jest/components/widgets/publish/PublishDialog.test.js
PASS tests/jest/components/visualeditor/FunctionInputSetup.test.js
PASS tests/jest/components/visualeditor/FunctionInputPreview.test.js
PASS tests/jest/components/default/ZObjectStringRenderer.test.js
PASS tests/jest/components/widgets/function-report/FunctionReport.test.js
PASS tests/jest/components/visualeditor/FunctionInputField.test.js
PASS tests/jest/components/visualeditor/FunctionSelect.test.js
PASS tests/jest/components/base/ModeSelector.test.js
PASS tests/jest/components/App.test.js
PASS tests/jest/components/function/editor/FunctionEditorAliases.test.js
PASS tests/jest/components/widgets/about/AboutLanguagesDialog.test.js
PASS tests/jest/components/default/ZCode.test.js
PASS tests/jest/components/visualeditor/fields/FunctionInputWikidata.test.js
PASS tests/jest/components/function/viewer/FunctionViewerDetailsTable.test.js
PASS tests/jest/components/default/wikidata/EntitySelector.test.js
PASS tests/jest/components/base/ExpandedToggle.test.js
PASS tests/jest/components/widgets/function-evaluator/EvaluationResult.test.js
PASS tests/jest/components/default/wikidata/LexemeSense.test.js
PASS tests/jest/components/visualeditor/ExpandableDescription.test.js
PASS tests/jest/components/default/ZTester.test.js
PASS tests/jest/components/default/ZTypedList.test.js
PASS tests/jest/components/base/Pagination.test.js
PASS tests/jest/components/default/ZTypedListItems.test.js
PASS tests/jest/components/default/ZFunctionCall.test.js
PASS tests/jest/components/function/editor/FunctionEditorLanguage.test.js
PASS tests/jest/components/visualeditor/FunctionCallSetup.test.js
PASS tests/jest/utils/urlUtils.test.js
PASS tests/jest/composables/useBreakpoints.test.js
PASS tests/jest/components/default/ZTypedListType.test.js
PASS tests/jest/components/widgets/publish/Publish.test.js
PASS tests/jest/components/function/editor/FunctionEditorOutput.test.js
PASS tests/jest/components/widgets/publish/LeaveEditorDialog.test.js
PASS tests/jest/components/visualeditor/fields/FunctionInputLanguage.test.js
PASS tests/jest/components/widgets/function-report/FunctionReportItem.test.js
PASS tests/jest/store/stores/queue.test.js
PASS tests/jest/components/default/ZString.test.js
PASS tests/jest/components/base/TypeToString.test.js
PASS tests/jest/store/stores/languages.test.js
PASS tests/jest/components/base/LocalizedLabel.test.js
PASS tests/jest/store/stores/functionCall.test.js
PASS tests/jest/store/stores/submission.test.js
PASS tests/jest/components/function/editor/FunctionEditorDescription.test.js
PASS tests/jest/components/function/editor/FunctionEditorInputs.test.js
PASS tests/jest/components/visualeditor/fields/FunctionInputParser.test.js
PASS tests/jest/views/FunctionViewer.test.js
PASS tests/jest/store/stores/programmingLanguages.test.js
PASS tests/jest/components/visualeditor/fields/FunctionInputEnum.test.js
PASS tests/jest/components/base/SafeMessage.test.js
PASS tests/jest/components/default/ZHTMLFragment.test.js
PASS tests/jest/components/function/editor/FunctionEditor.test.js
PASS tests/jest/store/stores/visualeditor.test.js
PASS tests/jest/store/stores/wikidata/entities.test.js
PASS tests/jest/components/function/editor/FunctionEditorName.test.js
PASS tests/jest/utils/wikidataUtils.test.js
PASS tests/jest/components/default/ZArgumentReference.test.js
PASS tests/jest/utils/zobjectUtils.test.js
PASS tests/jest/components/widgets/about/AboutLanguageBlock.test.js
PASS tests/jest/utils/miscUtils.test.js
PASS tests/jest/components/default/ZBoolean.test.js
PASS tests/jest/components/default/wikidata/ReferenceSelector.test.js
PASS tests/jest/components/function/editor/FunctionEditorLanguageBlock.test.js
PASS tests/jest/mixins/zobjectMixin.test.js
PASS tests/jest/components/default/wikidata/Lexeme.test.js
PASS tests/jest/components/visualeditor/fields/FunctionInputString.test.js
PASS tests/jest/store/classes/ErrorData.test.js
PASS tests/jest/components/default/ZMultilingualStringDialog.test.js
PASS tests/jest/components/default/ZImplementation.test.js
PASS tests/jest/mixins/pageTitleMixin.test.js
PASS tests/jest/store/index.test.js
PASS tests/jest/utils/errorUtils.test.js
PASS tests/jest/store/stores/listItems.test.js
PASS tests/jest/components/function/editor/FunctionEditorInputsItem.test.js
PASS tests/jest/components/default/ZReference.test.js
PASS tests/jest/store/stores/user.test.js
PASS tests/jest/mixins/clipboardMixin.test.js
PASS tests/jest/store/stores/library.test.js
PASS tests/jest/components/default/ZMonolingualString.test.js
PASS tests/jest/components/visualeditor/FunctionInputDefaultValueCheckbox.test.js
PASS tests/jest/components/default/wikidata/Enum.test.js
PASS tests/jest/components/base/TypeSelector.test.js
PASS tests/jest/mixins/scrollMixin.test.js
PASS tests/jest/mixins/eventLogMixin.test.js
PASS tests/jest/components/base/ClipboardManager.test.js
PASS tests/jest/store/stores/wikidata/lexemes.test.js
PASS tests/jest/store/stores/errors.test.js
PASS tests/jest/components/default/wikidata/Item.test.js
PASS tests/jest/store/stores/router.test.js
PASS tests/jest/mixins/errorMixin.test.js
PASS tests/jest/store/stores/wikidata/items.test.js
PASS tests/jest/store/stores/wikidata/properties.test.js
PASS tests/jest/components/default/wikidata/Property.test.js
PASS tests/jest/components/base/CodeEditor.test.js
PASS tests/jest/store/stores/zfunction.test.js
PASS tests/jest/store/stores/currentPage.test.js
PASS tests/jest/utils/schemata.test.js
PASS tests/jest/store/stores/ztype.test.js
PASS tests/jest/store/stores/testResults.test.js
PASS tests/jest/store/stores/factory.test.js
PASS tests/jest/utils/scrollUtils.test.js
PASS tests/jest/components/default/wikidata/LexemeForm.test.js
PASS tests/jest/store/classes/ApiError.test.js
PASS tests/jest/utils/typeUtils.test.js
Jest: "./resources/ext.wikilambda.app/" coverage threshold for statements (95%) not met: 94.92%
Jest: "./resources/ext.wikilambda.app/" coverage threshold for branches (85%) not met: 84.06%
Jest: "./resources/ext.wikilambda.app/" coverage threshold for lines (95%) not met: 94.92%
Jest: "./resources/ext.wikilambda.app/utils" coverage threshold for statements (88%) not met: 84.62%
Jest: "./resources/ext.wikilambda.app/utils" coverage threshold for branches (82%) not met: 77.72%
Jest: "./resources/ext.wikilambda.app/utils" coverage threshold for lines (88%) not met: 84.62%
Test Suites: 128 passed, 128 total
Tests: 1 skipped, 1988 passed, 1989 total
Snapshots: 0 total
Time: 86.089 s
Ran all test suites.
--- stdout ---
----------------------------------------------------------|---------|----------|---------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------------------------------------------------------|---------|----------|---------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
All files | 94.95 | 84.14 | 96.05 | 94.95 |
ext.wikilambda.app/components | 97.74 | 100 | 100 | 97.74 |
App.vue | 97.74 | 100 | 100 | 97.74 | 93,97,117
ext.wikilambda.app/components/base | 94.23 | 82.14 | 94.79 | 94.23 |
ClipboardManager.vue | 86.66 | 77.77 | 100 | 86.66 | 67-68,70-79
CodeEditor.vue | 96.54 | 92.59 | 100 | 96.54 | 90-92,263-270
CustomDialogHeader.vue | 100 | 100 | 100 | 100 |
ExpandedToggle.vue | 100 | 100 | 100 | 100 |
KeyBlock.vue | 100 | 100 | 100 | 100 |
KeyValueBlock.vue | 100 | 100 | 100 | 100 |
LocalizedLabel.vue | 100 | 100 | 100 | 100 |
ModeSelector.vue | 91.82 | 82.69 | 100 | 91.82 | 251-263,267-280,414,416-422
Pagination.vue | 100 | 100 | 100 | 100 |
SafeMessage.vue | 100 | 100 | 100 | 100 |
StatusIcon.vue | 100 | 100 | 100 | 100 |
TypeSelector.vue | 92.51 | 50 | 85.71 | 92.51 | 163-167,179-181,185-188,202-206
TypeToString.vue | 96.73 | 71.42 | 100 | 96.73 | 79,81,109,112-113
WidgetBase.vue | 100 | 100 | 100 | 100 |
ZObjectSelector.vue | 88.25 | 77.63 | 84.61 | 88.25 | 186-218,251-252,258-260,333,337,352-360,393-394,417,425-430,466-467,496-498,522-526,541-542,564-566,595-597,614-617,659-660,701-703
ext.wikilambda.app/components/function/editor | 99.48 | 91.54 | 100 | 99.48 |
FunctionEditor.vue | 97.93 | 80.55 | 100 | 97.93 | 126,130-132,259-260
FunctionEditorAliases.vue | 100 | 100 | 100 | 100 |
FunctionEditorDescription.vue | 98.88 | 88.23 | 100 | 98.88 | 139-140
FunctionEditorField.vue | 100 | 100 | 100 | 100 |
FunctionEditorInputs.vue | 100 | 100 | 100 | 100 |
FunctionEditorInputsItem.vue | 100 | 84.61 | 100 | 100 | 222,231
FunctionEditorLanguage.vue | 100 | 100 | 100 | 100 |
FunctionEditorLanguageBlock.vue | 100 | 100 | 100 | 100 |
FunctionEditorName.vue | 98.94 | 94.44 | 100 | 98.94 | 147-148
FunctionEditorOutput.vue | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/function/viewer | 98.73 | 93.54 | 97.95 | 98.73 |
FunctionTesterTable.vue | 95 | 85.71 | 87.5 | 95 | 91-92,109,159-164
FunctionViewerDetails.vue | 99.28 | 94.79 | 100 | 99.28 | 225-226,551,570,588
FunctionViewerDetailsTable.vue | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/types | 95.97 | 79.81 | 97.28 | 95.97 |
ZArgumentReference.vue | 97.29 | 72.72 | 100 | 97.29 | 165-169
ZBoolean.vue | 100 | 100 | 100 | 100 |
ZCode.vue | 94.54 | 78.26 | 100 | 94.54 | 197-200,336,338,384-396,463-470
ZFunctionCall.vue | 100 | 75 | 100 | 100 | 78
ZHTMLFragment.vue | 100 | 80 | 100 | 100 | 115
ZImplementation.vue | 100 | 100 | 100 | 100 |
ZMonolingualString.vue | 100 | 92.3 | 100 | 100 | 145
ZMultilingualString.vue | 99 | 89.83 | 100 | 99 | 329-330,399,401-402
ZMultilingualStringDialog.vue | 98.27 | 85.71 | 95 | 98.27 | 177-178,421-422,431-432,435-436,440
ZObjectKeyValue.vue | 88.17 | 67.54 | 100 | 88.17 | 237-243,247-248,277-278,298-299,302-303,364-369,375-378,384-393,474-475,481,483-484,488-502,506-508,571-573,596-597,602-605,613-615,634-635,643,645-647,652,654-657,679-682,692,694-698,722-723,730-731,825-826,830-831,833-834,836-837,839-840
ZObjectKeyValueSet.vue | 100 | 60 | 100 | 100 | 70,78
ZObjectStringRenderer.vue | 95.43 | 94.54 | 80.76 | 95.43 | 270,299-300,356-358,369-370,426-431,497,523-524,550-551,558-565
ZObjectToString.vue | 92.45 | 69.23 | 100 | 92.45 | 201-202,209-210,213-214,219-220,301-304,315-316,318-319,321-322,334-336,352-354,392,410-412,416-417,422-423,522-531,539,541,543,569-570
ZReference.vue | 98.18 | 68.18 | 100 | 98.18 | 177,179-181
ZString.vue | 100 | 66.66 | 100 | 100 | 88
ZTester.vue | 99.25 | 95.65 | 100 | 99.25 | 197-198
ZTypedList.vue | 100 | 85.71 | 100 | 100 | 95
ZTypedListItems.vue | 100 | 100 | 100 | 100 |
ZTypedListType.vue | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/types/wikidata | 97.4 | 86.84 | 90.24 | 97.4 |
EntitySelector.vue | 94.5 | 85.71 | 80 | 94.5 | 88-89,153-155,184-190,228-229
Enum.vue | 97.75 | 81.81 | 100 | 97.75 | 191-195
Item.vue | 100 | 92.85 | 100 | 100 | 146
Lexeme.vue | 100 | 92.85 | 100 | 100 | 146
LexemeForm.vue | 97.43 | 81.81 | 87.5 | 97.43 | 155-159
LexemeSense.vue | 95.64 | 88.57 | 78.94 | 95.64 | 184,225,242-246,274-275,288-290,322-326
Property.vue | 98.94 | 81.81 | 87.5 | 98.94 | 154-155
ReferenceSelector.vue | 97.72 | 86.66 | 100 | 97.72 | 113-115
wikidataIconSvg.js | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/visualeditor | 98.32 | 96.2 | 91.56 | 98.32 |
ExpandableDescription.vue | 98.62 | 100 | 83.33 | 98.62 | 91-92
FunctionCallSetup.vue | 95.52 | 100 | 66.66 | 95.52 | 99,106,112-115
FunctionInputDefaultValueCheckbox.vue | 100 | 100 | 100 | 100 |
FunctionInputField.vue | 100 | 95.83 | 100 | 100 | 182
FunctionInputPreview.vue | 98.4 | 94.91 | 95.45 | 98.4 | 372-373,394,476-480
FunctionInputSetup.vue | 98.89 | 100 | 95 | 98.89 | 116-119
FunctionSelect.vue | 95.97 | 88.88 | 90 | 95.97 | 189-190,200-201,216-218,237-240
FunctionSelectItem.vue | 100 | 100 | 100 | 100 |
wikifunctionsIconSvg.js | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/visualeditor/fields | 95 | 88.07 | 89.06 | 95 |
FunctionInputEnum.vue | 97.17 | 94.11 | 86.66 | 97.17 | 112-113,128,212-213,241-242
FunctionInputLanguage.vue | 96.49 | 83.33 | 90 | 96.49 | 90-91,141-142,151-152,220-221
FunctionInputParser.vue | 90.5 | 89.36 | 86.36 | 90.5 | 224-236,238-239,247-248,286-287,368-377,387-393,405-409
FunctionInputString.vue | 100 | 100 | 100 | 100 |
FunctionInputWikidata.vue | 97.26 | 82.85 | 92.85 | 97.26 | 126-127,172-173,182-183,263-264
ext.wikilambda.app/components/widgets/about | 93.41 | 79.84 | 95 | 93.41 |
About.vue | 90.06 | 78.68 | 92.85 | 90.06 | 238,280-283,303,312-339,348,402-403,416-417,443-448,455-460,464-472
AboutLanguageBlock.vue | 95.59 | 84.21 | 100 | 95.59 | 332-338,350-351,354-360,372-373,376-382,499-500
AboutLanguagesDialog.vue | 95.16 | 76.66 | 92.85 | 95.16 | 253-255,267-269,284-285,317-318,320-321,323-324,326-327,333-335
ext.wikilambda.app/components/widgets/function-evaluator | 97.35 | 83.62 | 95.58 | 97.35 |
EvaluationResult.vue | 96.71 | 71.42 | 71.42 | 96.71 | 112,121-122,134-135
FunctionEvaluator.vue | 100 | 91.48 | 100 | 100 | 440,469-471
FunctionMetadataDialog.vue | 95.87 | 81.03 | 97.36 | 95.87 | 242-243,317-318,324-325,419-420,440,456-457,586-588,602-603,670-671,698,731,783,800,830-832,856-860,865-869,874-878
FunctionMetadataItem.vue | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/widgets/function-explorer | 100 | 100 | 100 | 100 |
FunctionExplorer.vue | 100 | 100 | 100 | 100 |
ext.wikilambda.app/components/widgets/function-report | 94.89 | 85.71 | 90 | 94.89 |
FunctionReport.vue | 96.09 | 91.52 | 90.9 | 96.09 | 229-231,289-291,297-299,327-333
FunctionReportItem.vue | 92.79 | 72 | 87.5 | 92.79 | 129-130,132-133,135-136,149,151,163-164,166-167,182-186
ext.wikilambda.app/components/widgets/publish | 95.82 | 79.45 | 95 | 95.82 |
LeaveEditorDialog.vue | 100 | 100 | 100 | 100 |
Publish.vue | 89.48 | 74.28 | 88.88 | 89.48 | 106-113,123-124,181-186,230-239,242,244-248,266-268
PublishDialog.vue | 100 | 81.81 | 100 | 100 | 146,244,306,359-361
ext.wikilambda.app/composables | 100 | 100 | 100 | 100 |
useBreakpoints.js | 100 | 100 | 100 | 100 |
ext.wikilambda.app/mixins | 96.44 | 85.54 | 100 | 96.44 |
clipboardMixin.js | 100 | 100 | 100 | 100 |
errorMixin.js | 100 | 90 | 100 | 100 | 68
eventLogMixin.js | 97.43 | 93.33 | 100 | 97.43 | 45-46
metadataMixin.js | 100 | 100 | 100 | 100 |
pageTitleMixin.js | 86.77 | 69.23 | 100 | 86.77 | 77-81,90-95,114-118
scrollMixin.js | 98.54 | 93.33 | 100 | 98.54 | 104-105
typeMixin.js | 100 | 100 | 100 | 100 |
zobjectMixin.js | 94.87 | 50 | 100 | 94.87 | 51-52,66-67,80-81
ext.wikilambda.app/store | 100 | 100 | 100 | 100 |
index.js | 100 | 100 | 100 | 100 |
ext.wikilambda.app/store/classes | 97.31 | 81.35 | 100 | 97.31 |
ApiError.js | 95.73 | 78.12 | 100 | 95.73 | 151-153,159-160,200-203
ErrorData.js | 97.7 | 66.66 | 100 | 97.7 | 70-71
LabelData.js | 100 | 94.44 | 100 | 100 | 45
ext.wikilambda.app/store/stores | 95.3 | 85.84 | 97.46 | 95.3 |
errors.js | 97.97 | 90.9 | 100 | 97.97 | 221-223,232-233
functionCall.js | 97.22 | 87.5 | 100 | 97.22 | 31-32
languages.js | 92.39 | 76.92 | 100 | 92.39 | 26-29,43-45
library.js | 93.42 | 82.25 | 96.42 | 93.42 | 76,100-102,123-124,148-149,153,178-179,188-189,198-199,205-208,247-248,250-251,283,412-420,441-442,476,517-518,524-525,529,550-551,562-565,569,590-591,594-595,660-665,693-695,902,1050-1051,1082-1086,1100-1101,1127-1130,1132-1135,1181
listItems.js | 100 | 100 | 100 | 100 |
programmingLanguages.js | 100 | 100 | 100 | 100 |
queue.js | 100 | 100 | 100 | 100 |
router.js | 87.17 | 76.66 | 100 | 87.17 | 95-96,108-126,144-147
testResults.js | 90.74 | 73.46 | 100 | 90.74 | 43-44,129-142,209-216,224-225,234-235,276-278
user.js | 100 | 90.9 | 100 | 100 | 26
visualeditor.js | 96.35 | 96.42 | 88 | 96.35 | 62,72,95-96,156-157,198-202
zfunction.js | 97.93 | 88 | 100 | 97.93 | 36-37,122-123,142-143,182-183
zobject.js | 95.63 | 85.88 | 97.82 | 95.63 | 71-72,90-91,106-107,113,115,129-130,154-155,167-168,206-214,237-238,242-243,314-315,345-346,408-409,432-433,499-500,503-504,650-651,691-692,828-829,996-1002,1201-1202
ztype.js | 99.39 | 100 | 100 | 99.39 | 277-278
ext.wikilambda.app/store/stores/wikidata | 94.6 | 89.87 | 97.1 | 94.6 |
entities.js | 92.33 | 87.95 | 100 | 92.33 | 47,87,98,143-155,220-221,273-278
items.js | 98.8 | 87.09 | 100 | 98.8 | 59-60
lexemes.js | 92.79 | 91.91 | 93.75 | 92.79 | 61-62,95-115,240-241,368,452-454,464-467,478-479
properties.js | 100 | 91.17 | 100 | 100 | 88,91,113
ext.wikilambda.app/store/stores/zobject | 88.9 | 75.79 | 100 | 88.9 |
currentPage.js | 100 | 86.36 | 100 | 100 | 73,119,121
factory.js | 95.26 | 78.44 | 100 | 95.26 | 74-93,99-100,104,108,110,114,116,120,124,130,134,136,142,190-196
submission.js | 76.77 | 69.13 | 100 | 76.77 | 52-53,63-65,75-76,86-94,110-117,127-138,141-150,161-178,188-195,205-208,287-291,295-308,316-317,321-330,338-339,356-357,402-403,433-434,466-467,480-482,491-502,511-515,534-535,540-541,555-556,572-573,602-603
ext.wikilambda.app/utils | 84.62 | 77.72 | 98.96 | 84.62 |
apiUtils.js | 98.64 | 77.55 | 100 | 98.64 | 262-264,328-329
errorUtils.js | 98.13 | 90 | 100 | 98.13 | 90-91
miscUtils.js | 100 | 100 | 100 | 100 |
schemata.js | 90.94 | 79.72 | 88.88 | 90.94 | 80,98-102,108-109,123,139,159-164,174-179
scrollUtils.js | 97.5 | 93.75 | 100 | 97.5 | 132-135
typeUtils.js | 59.69 | 63.63 | 100 | 59.69 | 126-127,150-151,154-156,159-169,173-175,178-179,182,226-235,238-248,267-282,299-321,324-344,385-418,468-505,508-529,542-568,571-611,614-625,631-639,642,716-717,719-722
urlUtils.js | 97.41 | 94.73 | 100 | 97.41 | 25-27
wikidataUtils.js | 100 | 100 | 100 | 100 |
zobjectUtils.js | 90.48 | 72.18 | 100 | 90.48 | 33-34,98-99,107-108,138-139,154-155,169-170,184-186,220-221,227-239,265-266,408-409,422-423,437-438,457-458,483-484,487-491,503-504,535-536,564-565,583-585,600-601,623-627,644-649,669-673,779-780
ext.wikilambda.app/views | 95.86 | 68 | 83.33 | 95.86 |
Default.vue | 97.51 | 68.75 | 81.81 | 97.51 | 161,197,211-214
FunctionEditor.vue | 100 | 100 | 100 | 100 |
FunctionEvaluator.vue | 100 | 100 | 100 | 100 |
FunctionViewer.vue | 90.32 | 57.14 | 80 | 90.32 | 87-94,106-109
ext.wikilambda.languageselector/components | 98.03 | 93.33 | 94.11 | 98.03 |
LanguageSelector.vue | 98.03 | 93.33 | 94.11 | 98.03 | 226-227,265-266,287-288
----------------------------------------------------------|---------|----------|---------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--- end ---
Traceback (most recent call last):
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 324, in npm_test
self.check_call(["npm", "test"])
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/runner/shell2.py", line 63, in check_call
res.check_returncode()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/subprocess.py", line 508, in check_returncode
raise CalledProcessError(self.returncode, self.args, self.stdout,
self.stderr)
subprocess.CalledProcessError: Command '['/usr/bin/npm', 'test']' returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 2030, in main
libup.run(args.repo, args.output, args.branch)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1972, in run
self.npm_audit_fix(new_npm_audit)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 274, in npm_audit_fix
self.npm_test()
~~~~~~~~~~~~~^^
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 329, in npm_test
self.check_call(["node_modules/.bin/jest", "-u"])
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/runner/shell2.py", line 63, in check_call
res.check_returncode()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/subprocess.py", line 508, in check_returncode
raise CalledProcessError(self.returncode, self.args, self.stdout,
self.stderr)
subprocess.CalledProcessError: Command '['node_modules/.bin/jest', '-u']' returned non-zero exit status 1.