This run took 383 seconds.
$ date --- stdout --- Tue Sep 30 05:54:28 UTC 2025 --- end --- $ git clone file:///srv/git/mediawiki-extensions-WikiLambda.git repo --depth=1 -b master --- 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 'a31b49967117582611ea479e76766234ee6c159c' --- end --- $ grr init --- stdout --- Installed commit-msg hook. --- end --- $ git show-ref refs/heads/master --- stdout --- 79442dfdb1255ac8b3fb612c22793c51473fe6df refs/heads/master --- 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": false }, "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": false }, "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": false }, "tar-fs": { "name": "tar-fs", "severity": "high", "isDirect": false, "via": [ { "source": 1104677, "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" }, { "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" } ], "effects": [ "puppeteer-core" ], "range": "2.0.0 - 2.1.2", "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": false }, "wdio-mediawiki": { "name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": [ "mwbot" ], "effects": [], "range": "*", "nodes": [ "node_modules/wdio-mediawiki" ], "fixAvailable": false }, "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": 3, "high": 12, "critical": 2, "total": 20 }, "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.4) - 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.11.0) - 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.4): 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.11.0): 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% 29/39 [====================>-------] 74% 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 --- Upgrading n:@wikimedia/codex from 2.3.1 -> 2.3.2 $ /usr/bin/npm install --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@2.3.2', npm WARN EBADENGINE required: { npm: '>=10.8.2', node: '>=20.19.1' }, 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: { npm: '>=10.8.2', node: '>=20.19.1' }, 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 16s 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 possible (including breaking changes), run: npm audit fix --force Some issues need review, and may require choosing a different dependency. Run `npm audit` for details. --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- $ /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 26s 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 possible (including breaking changes), run: npm audit fix --force Some issues need review, and may require choosing a different dependency. 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/library.test.js PASS tests/jest/store/stores/zobject.test.js PASS tests/jest/store/stores/factory.test.js PASS tests/jest/components/default/ZObjectKeyValue.test.js PASS tests/jest/components/widgets/about/About.test.js PASS tests/jest/components/visualeditor/FunctionInputPreview.test.js PASS tests/jest/components/default/ZObjectStringRenderer.test.js PASS tests/jest/components/widgets/about/AboutLanguageBlock.test.js PASS tests/jest/store/stores/router.test.js PASS tests/jest/store/stores/wikidata/lexemes.test.js PASS tests/jest/components/base/ModeSelector.test.js PASS tests/jest/components/default/ZMultilingualStringDialog.test.js PASS tests/jest/utils/typeUtils.test.js PASS tests/jest/components/default/ZObjectToString.test.js (10.014 s) PASS tests/jest/store/stores/zfunction.test.js PASS tests/jest/components/default/ZMultilingualString.test.js PASS tests/jest/components/widgets/function-evaluator/FunctionMetadataDialog.test.js PASS tests/jest/store/stores/wikidata/entities.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/default/ZCode.test.js PASS tests/jest/components/widgets/publish/PublishDialog.test.js PASS tests/jest/components/function/viewer/FunctionViewerDetails.test.js PASS tests/jest/components/widgets/about/AboutLanguagesDialog.test.js PASS tests/jest/store/classes/ApiError.test.js PASS tests/jest/store/stores/errors.test.js PASS tests/jest/components/default/ZImplementation.test.js PASS tests/jest/components/default/wikidata/EntitySelector.test.js PASS tests/jest/store/stores/wikidata/properties.test.js PASS tests/jest/store/stores/wikidata/items.test.js PASS tests/jest/languageselector/LanguageSelector.test.js PASS tests/jest/mixins/scrollMixin.test.js PASS tests/jest/components/default/ZTester.test.js PASS tests/jest/components/widgets/publish/Publish.test.js PASS tests/jest/integration/CreateNewWikidataEnum.test.js (14.714 s) PASS tests/jest/components/widgets/function-report/FunctionReport.test.js PASS tests/jest/utils/schemata.test.js PASS tests/jest/integration/DisconnectFunctionImplementation.test.js PASS tests/jest/components/default/wikidata/LexemeForm.test.js PASS tests/jest/components/visualeditor/FunctionInputField.test.js PASS tests/jest/integration/CreateNewTester.test.js (8.095 s) PASS tests/jest/components/base/CodeEditor.test.js PASS tests/jest/components/default/wikidata/Property.test.js PASS tests/jest/components/default/wikidata/Lexeme.test.js PASS tests/jest/store/stores/currentPage.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputParser.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/FunctionInputWikidata.test.js PASS tests/jest/integration/CreateNewCompositionImplementation.test.js (9.952 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/components/function/editor/FunctionEditorInputsItem.test.js PASS tests/jest/integration/FunctionEditorEdgeCases.test.js PASS tests/jest/store/stores/visualeditor.test.js PASS tests/jest/integration/CreateNewCodeImplementation.test.js (11.047 s) PASS tests/jest/components/visualeditor/FunctionInputSetup.test.js PASS tests/jest/components/default/ZReference.test.js PASS tests/jest/components/function/editor/FunctionEditorName.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputEnum.test.js PASS tests/jest/components/default/ZTypedList.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputLanguage.test.js PASS tests/jest/utils/miscUtils.test.js PASS tests/jest/components/function/editor/FunctionEditorDescription.test.js PASS tests/jest/mixins/pageTitleMixin.test.js PASS tests/jest/components/base/ClipboardManager.test.js PASS tests/jest/utils/urlUtils.test.js PASS tests/jest/integration/RunFunctionCall.test.js PASS tests/jest/components/default/wikidata/ReferenceSelector.test.js PASS tests/jest/components/function/editor/FunctionEditorLanguageBlock.test.js PASS tests/jest/components/function/editor/FunctionEditorInputs.test.js PASS tests/jest/integration/FunctionEditorGenericTypes.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/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/DisconnectFunctionTest.test.js PASS tests/jest/integration/CancelEditExistingFunction.test.js PASS tests/jest/components/function/editor/FunctionEditor.test.js PASS tests/jest/store/stores/languages.test.js PASS tests/jest/store/stores/functionCall.test.js PASS tests/jest/components/function/editor/FunctionEditorOutput.test.js PASS tests/jest/components/default/ZTypedListItems.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/integration/CancelEditNewFunction.test.js PASS tests/jest/components/base/TypeToString.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/default/ZFunctionCall.test.js PASS tests/jest/components/widgets/publish/LeaveEditorDialog.test.js PASS tests/jest/utils/wikidataUtils.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputString.test.js PASS tests/jest/components/function/viewer/FunctionViewerDetailsTable.test.js PASS tests/jest/store/index.test.js Test Suites: 126 passed, 126 total Tests: 1 skipped, 1931 passed, 1932 total Snapshots: 0 total Time: 79.872 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 309 files without errors Done. > test:unit > jest ----------------------------------------------------------|---------|----------|---------|---------|----------------------------------------------------------------------------------------------------------------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s ----------------------------------------------------------|---------|----------|---------|---------|----------------------------------------------------------------------------------------------------------------------------- All files | 97.61 | 91 | 96.05 | 97.61 | 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 | 97.23 | 87.02 | 95.87 | 97.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 | 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 | 96.73 | 71.42 | 100 | 96.73 | 79,81,109,112-113 WidgetBase.vue | 100 | 100 | 100 | 100 | ZObjectSelector.vue | 94.53 | 78.75 | 88.88 | 94.53 | 187-188,191-192,200-201,208-209,374-375,398,406-411,447-448,477-479,503-505,520-521,555-556,579-580,585-587,604-606,648-649 ext.wikilambda.app/components/function/editor | 99.02 | 90.84 | 100 | 99.02 | FunctionEditor.vue | 94.82 | 74.28 | 100 | 94.82 | 126,130-132,230-232,234-239,259-260 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 | 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 | 95.96 | 97.95 | 98.73 | FunctionTesterTable.vue | 95 | 85.71 | 87.5 | 95 | 91-92,109,159-164 FunctionViewerDetails.vue | 99.28 | 97.91 | 100 | 99.28 | 225-226,551,570,588 FunctionViewerDetailsTable.vue | 100 | 100 | 100 | 100 | ext.wikilambda.app/components/types | 97.93 | 89.5 | 96.8 | 97.93 | ZArgumentReference.vue | 97.29 | 72.72 | 100 | 97.29 | 165-169 ZBoolean.vue | 100 | 100 | 100 | 100 | ZCode.vue | 97.36 | 94.23 | 100 | 97.36 | 338,384-395 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.34 | 92 | 100 | 99.34 | 337-338,360 ZMultilingualStringDialog.vue | 99.2 | 92.98 | 94.73 | 99.2 | 409-410,413-414 ZObjectKeyValue.vue | 95.06 | 85.83 | 100 | 95.06 | 231-237,241-242,271-272,292-293,505-506,563-565,588-589,594-597,626-627,654-659,714-715,822-823,825-826,828-829,831-832 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.31 | 90.32 | 96.29 | 97.31 | 333-335,351-353,409-411,415-416,421-422,573-576 ZReference.vue | 98.63 | 68.18 | 100 | 98.63 | 178,180-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.07 | 85.33 | 90.36 | 97.07 | EntitySelector.vue | 95.29 | 89.28 | 81.81 | 95.29 | 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.09 | 96.57 | 87.5 | 98.09 | ExpandableDescription.vue | 98.62 | 100 | 83.33 | 98.62 | 91-92 FunctionCallSetup.vue | 95.52 | 100 | 66.66 | 95.52 | 99,106,112-115 FunctionInputField.vue | 100 | 100 | 100 | 100 | FunctionInputPreview.vue | 98.11 | 95.08 | 85.18 | 98.11 | 148-149,393-394,415,503-507 FunctionInputSetup.vue | 98.88 | 100 | 95 | 98.88 | 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 | 96.08 | 90.17 | 94.54 | 96.08 | FunctionInputEnum.vue | 98.48 | 95.83 | 92.3 | 98.48 | 93,165-166 FunctionInputLanguage.vue | 98.78 | 90.9 | 100 | 98.78 | 101-102 FunctionInputParser.vue | 91.51 | 87.8 | 90.47 | 91.51 | 107-109,192-204,215-216,256-257,336-342,354-358 FunctionInputString.vue | 100 | 100 | 100 | 100 | FunctionInputWikidata.vue | 99 | 86.95 | 100 | 99 | 135-136 ext.wikilambda.app/components/widgets/about | 98.13 | 92.9 | 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.77 | 100 | 99.67 | 499-500 AboutLanguagesDialog.vue | 95.15 | 76.66 | 92.85 | 95.15 | 252-254,266-268,283-284,316-317,319-320,322-323,325-326,332-334 ext.wikilambda.app/components/widgets/function-evaluator | 97.35 | 83.72 | 95.58 | 97.35 | 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.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 | 98.12 | 86.07 | 94.73 | 98.12 | LeaveEditorDialog.vue | 100 | 100 | 100 | 100 | Publish.vue | 94.98 | 84.61 | 87.5 | 94.98 | 105-112,208,212-214,232-234 PublishDialog.vue | 100 | 85.71 | 100 | 100 | 242,304,353-355 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 | 95.56 | 81.35 | 100 | 95.56 | ApiError.js | 92.41 | 70 | 100 | 92.41 | 40-41,46-50,151-153,159-160,200-203 ErrorData.js | 97.61 | 80 | 100 | 97.61 | 68-69 LabelData.js | 100 | 100 | 100 | 100 | ext.wikilambda.app/store/stores | 98.31 | 94.41 | 97.33 | 98.31 | errors.js | 99.57 | 100 | 92.85 | 99.57 | 52 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 | 98 | 95.3 | 98.24 | 98 | 138-139,514-515,540-541,552-555,559,650-655,683-685,890,1038-1039,1169 listItems.js | 94.95 | 80 | 100 | 94.95 | 77-78,85-88 programmingLanguages.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.44 | 95.45 | 85 | 96.44 | 62,72,95-96,149-153 zfunction.js | 100 | 96.42 | 100 | 100 | 90 zobject.js | 98.09 | 93.6 | 97.72 | 98.09 | 152-153,165-166,204-212,406-407,622-623,663-664,800-801,1173-1174 ztype.js | 99.38 | 100 | 100 | 99.38 | 274-275 ext.wikilambda.app/store/stores/wikidata | 95.3 | 92.94 | 97.1 | 95.3 | entities.js | 92.97 | 89.28 | 100 | 92.97 | 47,87,98,143-155,273-278 items.js | 100 | 94.28 | 100 | 100 | 94,115 lexemes.js | 93.62 | 96.11 | 93.75 | 93.62 | 95-115,368,452-454,464-467,478-479 properties.js | 100 | 90.9 | 100 | 100 | 88,91,113 ext.wikilambda.app/store/stores/zobject | 98.85 | 94.4 | 100 | 98.85 | currentPage.js | 100 | 86.36 | 100 | 100 | 73,119,121 factory.js | 98.69 | 95.27 | 100 | 98.69 | 190-196,385-388 submission.js | 98.67 | 95.04 | 100 | 98.67 | 373-374,505-506,511-512,543-544 ext.wikilambda.app/utils | 95.48 | 91.31 | 98.95 | 95.48 | apiUtils.js | 98.64 | 75.51 | 100 | 98.64 | 263-265,329-330 errorUtils.js | 90.65 | 77.77 | 100 | 90.65 | 57-64,90-91 miscUtils.js | 100 | 100 | 100 | 100 | schemata.js | 91.76 | 86.58 | 88.88 | 91.76 | 98-102,108-109,123,159-164,174-179 scrollUtils.js | 100 | 100 | 100 | 100 | typeUtils.js | 90.71 | 84.5 | 100 | 90.71 | 126-127,150-151,154-156,159-169,173-175,178-179,182,204-212,226-235,508-529,642,716-717 urlUtils.js | 97.41 | 88.88 | 100 | 97.41 | 25-27 wikidataUtils.js | 100 | 100 | 100 | 100 | zobjectUtils.js | 98.43 | 98.53 | 100 | 98.43 | 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.05 | 93.75 | 94.11 | 98.05 | LanguageSelector.vue | 98.05 | 93.75 | 94.11 | 98.05 | 229-230,268-269,290-291 ----------------------------------------------------------|---------|----------|---------|---------|----------------------------------------------------------------------------------------------------------------------------- --- 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": false }, "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": false }, "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": false }, "tar-fs": { "name": "tar-fs", "severity": "high", "isDirect": false, "via": [ { "source": 1104677, "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" }, { "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" } ], "effects": [ "puppeteer-core" ], "range": "2.0.0 - 2.1.2", "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": false }, "wdio-mediawiki": { "name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": [ "mwbot" ], "effects": [], "range": "*", "nodes": [ "node_modules/wdio-mediawiki" ], "fixAvailable": false }, "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": 3, "high": 12, "critical": 2, "total": 20 }, "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": 1, "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": false }, "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": false }, "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": false }, "tar-fs": { "name": "tar-fs", "severity": "high", "isDirect": false, "via": [ { "source": 1104677, "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" }, { "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" } ], "effects": [ "puppeteer-core" ], "range": "2.0.0 - 2.1.2", "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": false }, "wdio-mediawiki": { "name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": [ "mwbot" ], "effects": [], "range": "*", "nodes": [ "node_modules/wdio-mediawiki" ], "fixAvailable": false }, "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": 3, "high": 12, "critical": 2, "total": 20 }, "dependencies": { "prod": 1, "dev": 1277, "optional": 4, "peer": 1, "peerOptional": 0, "total": 1277 } } } } --- end --- {"added": 1, "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": false}, "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": false}, "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": false}, "tar-fs": {"name": "tar-fs", "severity": "high", "isDirect": false, "via": [{"source": 1104677, "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"}, {"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"}], "effects": ["puppeteer-core"], "range": "2.0.0 - 2.1.2", "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": false}, "wdio-mediawiki": {"name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": ["mwbot"], "effects": [], "range": "*", "nodes": ["node_modules/wdio-mediawiki"], "fixAvailable": false}, "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": 3, "high": 12, "critical": 2, "total": 20}, "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 } --- stdout --- up to date, audited 1277 packages in 6s 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 No fix available 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 * Depends on vulnerable versions of mwbot node_modules/wdio-mediawiki tar-fs 2.0.0 - 2.1.2 Severity: high tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File - https://github.com/advisories/GHSA-pq67-2wwv-3xjx tar-fs can extract outside the specified dir with a specific tarball - https://github.com/advisories/GHSA-8cj5-5rvv-wf4v 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 No fix available 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 possible (including breaking changes), run: npm audit fix --force Some issues need review, and may require choosing a different dependency. --- 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 17s 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 possible (including breaking changes), run: npm audit fix --force Some issues need review, and may require choosing a different dependency. Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stderr --- PASS tests/jest/components/default/ZObjectToString.test.js (7.869 s) PASS tests/jest/integration/CreateNewCodeImplementation.test.js (11.222 s) PASS tests/jest/integration/CreateNewWikidataEnum.test.js (13.031 s) PASS tests/jest/integration/FunctionEditorGenericTypes.test.js PASS tests/jest/integration/CreateNewCompositionImplementation.test.js (9.075 s) PASS tests/jest/integration/CreateNewTester.test.js (6.876 s) PASS tests/jest/components/default/ZObjectKeyValue.test.js PASS tests/jest/integration/FunctionEditorEdgeCases.test.js PASS tests/jest/integration/CancelEditExistingFunction.test.js PASS tests/jest/integration/CreateNewFunction.test.js PASS tests/jest/components/widgets/about/About.test.js PASS tests/jest/components/base/ZObjectSelector.test.js PASS tests/jest/integration/EditFunction.test.js PASS tests/jest/integration/DisconnectFunctionImplementation.test.js PASS tests/jest/components/widgets/function-evaluator/FunctionMetadataDialog.test.js PASS tests/jest/integration/CancelEditNewFunction.test.js PASS tests/jest/components/widgets/function-evaluator/FunctionEvaluator.test.js PASS tests/jest/integration/RunFunctionCall.test.js PASS tests/jest/languageselector/LanguageSelector.test.js PASS tests/jest/components/function/viewer/FunctionViewerDetails.test.js PASS tests/jest/integration/ConnectFunctionImplementation.test.js PASS tests/jest/components/visualeditor/FunctionInputPreview.test.js PASS tests/jest/integration/DisconnectFunctionTest.test.js PASS tests/jest/integration/ConnectFunctionTest.test.js PASS tests/jest/store/stores/zobject.test.js PASS tests/jest/components/visualeditor/FunctionInputSetup.test.js PASS tests/jest/components/default/ZObjectStringRenderer.test.js PASS tests/jest/components/widgets/function-explorer/FunctionExplorer.test.js PASS tests/jest/components/visualeditor/FunctionSelect.test.js PASS tests/jest/components/default/ZMultilingualString.test.js PASS tests/jest/components/visualeditor/ExpandableDescription.test.js PASS tests/jest/components/base/ModeSelector.test.js PASS tests/jest/components/base/ExpandedToggle.test.js PASS tests/jest/components/widgets/function-report/FunctionReport.test.js PASS tests/jest/components/default/wikidata/EntitySelector.test.js PASS tests/jest/components/widgets/publish/PublishDialog.test.js PASS tests/jest/utils/urlUtils.test.js PASS tests/jest/components/default/ZCode.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputWikidata.test.js PASS tests/jest/components/visualeditor/FunctionInputField.test.js PASS tests/jest/components/default/wikidata/LexemeSense.test.js PASS tests/jest/components/function/editor/FunctionEditorName.test.js PASS tests/jest/components/App.test.js PASS tests/jest/views/FunctionViewer.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputLanguage.test.js PASS tests/jest/components/base/Pagination.test.js PASS tests/jest/mixins/pageTitleMixin.test.js PASS tests/jest/components/widgets/publish/LeaveEditorDialog.test.js PASS tests/jest/components/base/SafeMessage.test.js PASS tests/jest/components/widgets/function-evaluator/EvaluationResult.test.js PASS tests/jest/components/base/ClipboardManager.test.js PASS tests/jest/components/function/editor/FunctionEditorOutput.test.js PASS tests/jest/components/default/ZTypedListType.test.js PASS tests/jest/components/visualeditor/FunctionCallSetup.test.js PASS tests/jest/components/base/TypeToString.test.js PASS tests/jest/components/default/ZString.test.js PASS tests/jest/store/stores/languages.test.js PASS tests/jest/components/widgets/about/AboutLanguagesDialog.test.js PASS tests/jest/components/widgets/publish/Publish.test.js PASS tests/jest/components/function/editor/FunctionEditorAliases.test.js PASS tests/jest/components/function/editor/FunctionEditor.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputString.test.js PASS tests/jest/components/default/ZTester.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputParser.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputEnum.test.js PASS tests/jest/components/function/editor/FunctionEditorLanguageBlock.test.js PASS tests/jest/components/function/viewer/FunctionViewerDetailsTable.test.js PASS tests/jest/components/default/ZTypedList.test.js PASS tests/jest/components/default/ZImplementation.test.js PASS tests/jest/components/default/ZBoolean.test.js PASS tests/jest/utils/errorUtils.test.js PASS tests/jest/components/default/ZHTMLFragment.test.js PASS tests/jest/components/default/ZArgumentReference.test.js PASS tests/jest/utils/zobjectUtils.test.js PASS tests/jest/components/default/ZTypedListItems.test.js PASS tests/jest/store/classes/ErrorData.test.js PASS tests/jest/components/function/editor/FunctionEditorLanguage.test.js PASS tests/jest/store/stores/zfunction.test.js PASS tests/jest/components/widgets/function-report/FunctionReportItem.test.js PASS tests/jest/store/stores/submission.test.js PASS tests/jest/components/default/wikidata/Enum.test.js PASS tests/jest/components/base/LocalizedLabel.test.js PASS tests/jest/utils/miscUtils.test.js PASS tests/jest/store/stores/errors.test.js PASS tests/jest/store/stores/user.test.js PASS tests/jest/store/stores/programmingLanguages.test.js PASS tests/jest/components/function/editor/FunctionEditorInputsItem.test.js PASS tests/jest/components/base/TypeSelector.test.js PASS tests/jest/mixins/eventLogMixin.test.js PASS tests/jest/store/index.test.js PASS tests/jest/components/default/wikidata/Property.test.js PASS tests/jest/mixins/errorMixin.test.js PASS tests/jest/store/stores/factory.test.js PASS tests/jest/mixins/clipboardMixin.test.js PASS tests/jest/components/default/ZMonolingualString.test.js PASS tests/jest/store/stores/visualeditor.test.js PASS tests/jest/components/function/editor/FunctionEditorDescription.test.js PASS tests/jest/utils/schemata.test.js PASS tests/jest/components/function/editor/FunctionEditorInputs.test.js PASS tests/jest/components/widgets/about/AboutLanguageBlock.test.js PASS tests/jest/components/default/wikidata/Item.test.js PASS tests/jest/utils/wikidataUtils.test.js PASS tests/jest/components/default/ZFunctionCall.test.js PASS tests/jest/store/stores/functionCall.test.js PASS tests/jest/mixins/scrollMixin.test.js PASS tests/jest/store/stores/listItems.test.js PASS tests/jest/components/default/ZMultilingualStringDialog.test.js PASS tests/jest/composables/useBreakpoints.test.js PASS tests/jest/components/default/wikidata/ReferenceSelector.test.js PASS tests/jest/mixins/zobjectMixin.test.js PASS tests/jest/store/stores/library.test.js PASS tests/jest/components/base/CodeEditor.test.js PASS tests/jest/store/stores/currentPage.test.js PASS tests/jest/store/stores/wikidata/properties.test.js PASS tests/jest/store/stores/ztype.test.js PASS tests/jest/components/default/wikidata/Lexeme.test.js PASS tests/jest/utils/scrollUtils.test.js PASS tests/jest/components/default/ZReference.test.js PASS tests/jest/store/classes/ApiError.test.js PASS tests/jest/store/stores/wikidata/entities.test.js PASS tests/jest/store/stores/wikidata/lexemes.test.js PASS tests/jest/components/default/wikidata/LexemeForm.test.js PASS tests/jest/utils/typeUtils.test.js PASS tests/jest/store/stores/wikidata/items.test.js PASS tests/jest/store/stores/router.test.js PASS tests/jest/store/stores/testResults.test.js Jest: "./resources/ext.wikilambda.app/" coverage threshold for statements (95%) not met: 94.83% Jest: "./resources/ext.wikilambda.app/" coverage threshold for branches (85%) not met: 83.32% Jest: "./resources/ext.wikilambda.app/" coverage threshold for lines (95%) not met: 94.83% Jest: "./resources/ext.wikilambda.app/utils" coverage threshold for statements (88%) not met: 83.33% Jest: "./resources/ext.wikilambda.app/utils" coverage threshold for branches (82%) not met: 76.42% Jest: "./resources/ext.wikilambda.app/utils" coverage threshold for lines (88%) not met: 83.33% Jest: "./resources/ext.wikilambda.app/store" coverage threshold for statements (94%) not met: 93.35% Jest: "./resources/ext.wikilambda.app/store" coverage threshold for branches (84%) not met: 83.42% Jest: "./resources/ext.wikilambda.app/store" coverage threshold for lines (94%) not met: 93.35% Test Suites: 126 passed, 126 total Tests: 1 skipped, 1931 passed, 1932 total Snapshots: 0 total Time: 77.666 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 311 files without errors Done. > test:unit > jest ----------------------------------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s ----------------------------------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- All files | 94.86 | 83.41 | 96.05 | 94.86 | 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 | 95.75 | 82.17 | 95.87 | 95.75 | 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 | 94.71 | 78.57 | 85.71 | 94.71 | 163-167,179-181,185-188 TypeToString.vue | 96.73 | 71.42 | 100 | 96.73 | 79,81,109,112-113 WidgetBase.vue | 100 | 100 | 100 | 100 | ZObjectSelector.vue | 93.54 | 73.75 | 88.88 | 93.54 | 187-188,191-192,196-197,200-201,208-209,243-244,325,329,374-375,398,406-411,447-448,477-479,503-505,520-521,555-556,585-587,604-606,648-649,690-692 ext.wikilambda.app/components/function/editor | 99.02 | 89.28 | 100 | 99.02 | FunctionEditor.vue | 94.82 | 74.28 | 100 | 94.82 | 126,130-132,230-232,234-239,259-260 FunctionEditorAliases.vue | 100 | 100 | 100 | 100 | FunctionEditorDescription.vue | 98.88 | 81.25 | 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.49 | 97.95 | 98.73 | FunctionTesterTable.vue | 95 | 85.71 | 87.5 | 95 | 91-92,109,159-164 FunctionViewerDetails.vue | 99.28 | 94.73 | 100 | 99.28 | 225-226,551,570,588 FunctionViewerDetailsTable.vue | 100 | 100 | 100 | 100 | ext.wikilambda.app/components/types | 96.58 | 83.58 | 96.8 | 96.58 | ZArgumentReference.vue | 97.29 | 72.72 | 100 | 97.29 | 165-169 ZBoolean.vue | 100 | 100 | 100 | 100 | ZCode.vue | 94.73 | 78.26 | 100 | 94.73 | 197-200,336,338,384-395,462-469 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.34 | 92 | 100 | 99.34 | 337-338,360 ZMultilingualStringDialog.vue | 99.2 | 92.98 | 94.73 | 99.2 | 409-410,413-414 ZObjectKeyValue.vue | 87.66 | 65.74 | 100 | 87.66 | 231-237,241-242,271-272,292-293,296-297,358-363,369-372,378-387,467-468,474,476-477,481-495,499-501,563-565,588-589,594-597,605-607,626-627,635,637-639,644,646-649,671-674,684,686-690,714-715,722-723,817-818,822-823,825-826,828-829,831-832 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.31 | 88.04 | 96.29 | 97.31 | 333-335,351-353,409-411,415-416,421-422,573-576 ZReference.vue | 98.63 | 68.18 | 100 | 98.63 | 178,180-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.52 | 87.5 | 90.36 | 97.52 | EntitySelector.vue | 95.29 | 89.28 | 81.81 | 95.29 | 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.09 | 96.57 | 87.5 | 98.09 | ExpandableDescription.vue | 98.62 | 100 | 83.33 | 98.62 | 91-92 FunctionCallSetup.vue | 95.52 | 100 | 66.66 | 95.52 | 99,106,112-115 FunctionInputField.vue | 100 | 100 | 100 | 100 | FunctionInputPreview.vue | 98.11 | 95.08 | 85.18 | 98.11 | 148-149,393-394,415,503-507 FunctionInputSetup.vue | 98.88 | 100 | 95 | 98.88 | 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 | 96.08 | 90.17 | 94.54 | 96.08 | FunctionInputEnum.vue | 98.48 | 95.83 | 92.3 | 98.48 | 93,165-166 FunctionInputLanguage.vue | 98.78 | 90.9 | 100 | 98.78 | 101-102 FunctionInputParser.vue | 91.51 | 87.8 | 90.47 | 91.51 | 107-109,192-204,215-216,256-257,336-342,354-358 FunctionInputString.vue | 100 | 100 | 100 | 100 | FunctionInputWikidata.vue | 99 | 86.95 | 100 | 99 | 135-136 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.15 | 76.66 | 92.85 | 95.15 | 252-254,266-268,283-284,316-317,319-320,322-323,325-326,332-334 ext.wikilambda.app/components/widgets/function-evaluator | 96.94 | 81.06 | 95.58 | 96.94 | EvaluationResult.vue | 96.71 | 71.42 | 71.42 | 96.71 | 112,121-122,134-135 FunctionEvaluator.vue | 99.61 | 84.78 | 100 | 99.61 | 314,316 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 | 90.4 | 54.09 | 90 | 90.4 | FunctionReport.vue | 89.75 | 60.46 | 90.9 | 89.75 | 184-185,190-195,207-208,211,229-231,289-291,297-299,327-333,355-356,362-372,384-385 FunctionReportItem.vue | 91.52 | 38.88 | 87.5 | 91.52 | 126-127,129-130,132-133,135-136,149,151,153,163-164,166-167,182-186 ext.wikilambda.app/components/widgets/publish | 97.86 | 80.82 | 94.73 | 97.86 | LeaveEditorDialog.vue | 100 | 100 | 100 | 100 | Publish.vue | 94.31 | 76.47 | 87.5 | 94.31 | 105-112,122-123,208,212-214,232-234 PublishDialog.vue | 100 | 82.35 | 100 | 100 | 145,242,304,353-355 ext.wikilambda.app/composables | 100 | 84.61 | 100 | 100 | useBreakpoints.js | 100 | 84.61 | 100 | 100 | 11,26 ext.wikilambda.app/mixins | 96.44 | 85.18 | 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 | 95.56 | 72.72 | 100 | 95.56 | ApiError.js | 92.41 | 60.71 | 100 | 92.41 | 40-41,46-50,151-153,159-160,200-203 ErrorData.js | 97.61 | 66.66 | 100 | 97.61 | 68-69 LabelData.js | 100 | 94.44 | 100 | 100 | 45 ext.wikilambda.app/store/stores | 94.23 | 84.29 | 97.33 | 94.23 | errors.js | 98.72 | 93.93 | 92.85 | 98.72 | 52,223-224 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 | 94.35 | 82.44 | 98.24 | 94.35 | 76,113-114,138-139,143,168-169,178-179,188-189,195-198,237-238,240-241,273,431-432,466,507-508,514-515,519,540-541,552-555,559,580-581,584-585,650-655,683-685,890,1038-1039,1070-1074,1088-1089,1115-1118,1120-1123,1169 listItems.js | 100 | 100 | 100 | 100 | programmingLanguages.js | 100 | 100 | 100 | 100 | router.js | 87.17 | 76.66 | 100 | 87.17 | 95-96,108-126,144-147 testResults.js | 90.14 | 69.56 | 100 | 90.14 | 43-44,48-49,129-142,209-216,224-225,234-235,276-278 user.js | 100 | 90.9 | 100 | 100 | 26 visualeditor.js | 96.44 | 95.45 | 85 | 96.44 | 62,72,95-96,149-153 zfunction.js | 98.44 | 90.38 | 100 | 98.44 | 36-37,142-143,182-183 zobject.js | 90.97 | 81.5 | 97.72 | 90.97 | 69-70,88-89,127-128,152-153,165-166,204-212,235-236,240-241,312-313,343-344,406-407,471-472,475-476,499-500,503-504,510-511,622-623,663-664,800-801,968-974,1087-1093,1097-1103,1115-1118,1120-1156,1173-1174 ztype.js | 99.38 | 97.29 | 100 | 99.38 | 274-275 ext.wikilambda.app/store/stores/wikidata | 94.6 | 89.79 | 97.1 | 94.6 | entities.js | 92.33 | 86.07 | 100 | 92.33 | 47,87,98,143-155,220-221,273-278 items.js | 100 | 94.28 | 100 | 100 | 94,115 lexemes.js | 92.38 | 90.72 | 93.75 | 92.38 | 95-115,240-241,286-287,317-318,368,452-454,464-467,478-479 properties.js | 100 | 91.17 | 100 | 100 | 88,91,113 ext.wikilambda.app/store/stores/zobject | 89.13 | 76.36 | 100 | 89.13 | currentPage.js | 100 | 85.71 | 100 | 100 | 73,119,121 factory.js | 95.26 | 78.81 | 100 | 95.26 | 74-93,99-100,104,108,110,114,116,120,124,130,134,136,142,190-196 submission.js | 76.82 | 70.37 | 100 | 76.82 | 50-51,60-62,71-72,82-88,104-110,120-129,132-141,152-167,176-183,192-195,258-262,266-279,287-288,292-301,309-310,327-328,373-374,404-405,437-438,451-453,462-473,482-486,505-506,511-512,526-527,543-544,573-574 ext.wikilambda.app/utils | 83.33 | 76.42 | 98.95 | 83.33 | apiUtils.js | 98.64 | 72.34 | 100 | 98.64 | 263-265,329-330 errorUtils.js | 90.65 | 77.77 | 100 | 90.65 | 57-64,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 | 55.87 | 60.31 | 100 | 55.87 | 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,671-698,716-717,719-722 urlUtils.js | 97.41 | 94.73 | 100 | 97.41 | 25-27 wikidataUtils.js | 100 | 100 | 100 | 100 | zobjectUtils.js | 91 | 73.07 | 100 | 91 | 98-99,107-108,138-139,154-155,169-170,184-186,220-221,238-239,265-266,408-409,422-423,437-438,457-458,483-484,487-491,503-504,535-536,623-627,669-673,677-682,701-715 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.05 | 93.75 | 94.11 | 98.05 | LanguageSelector.vue | 98.05 | 93.75 | 94.11 | 98.05 | 229-230,268-269,290-291 ----------------------------------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --- end --- $ node_modules/.bin/jest -u --- stderr --- PASS tests/jest/integration/CreateNewCompositionImplementation.test.js (9.967 s) PASS tests/jest/integration/CreateNewCodeImplementation.test.js (10.988 s) PASS tests/jest/integration/CreateNewWikidataEnum.test.js (12.542 s) PASS tests/jest/integration/FunctionEditorEdgeCases.test.js PASS tests/jest/integration/CreateNewTester.test.js (6.559 s) PASS tests/jest/components/default/ZObjectToString.test.js (8.22 s) PASS tests/jest/components/base/ZObjectSelector.test.js PASS tests/jest/integration/CancelEditExistingFunction.test.js PASS tests/jest/integration/DisconnectFunctionImplementation.test.js PASS tests/jest/integration/CreateNewFunction.test.js PASS tests/jest/integration/EditFunction.test.js PASS tests/jest/integration/FunctionEditorGenericTypes.test.js PASS tests/jest/integration/CancelEditNewFunction.test.js PASS tests/jest/languageselector/LanguageSelector.test.js PASS tests/jest/components/widgets/function-evaluator/FunctionMetadataDialog.test.js PASS tests/jest/integration/RunFunctionCall.test.js PASS tests/jest/components/base/ModeSelector.test.js PASS tests/jest/components/widgets/publish/PublishDialog.test.js PASS tests/jest/components/default/ZObjectStringRenderer.test.js PASS tests/jest/components/widgets/function-evaluator/FunctionEvaluator.test.js PASS tests/jest/integration/DisconnectFunctionTest.test.js PASS tests/jest/components/visualeditor/FunctionInputPreview.test.js PASS tests/jest/components/widgets/about/About.test.js PASS tests/jest/components/default/ZObjectKeyValue.test.js PASS tests/jest/components/default/ZMultilingualString.test.js PASS tests/jest/components/default/wikidata/EntitySelector.test.js PASS tests/jest/integration/ConnectFunctionTest.test.js PASS tests/jest/store/stores/library.test.js PASS tests/jest/components/function/viewer/FunctionViewerDetails.test.js PASS tests/jest/store/stores/zobject.test.js PASS tests/jest/components/default/ZMultilingualStringDialog.test.js PASS tests/jest/components/widgets/function-explorer/FunctionExplorer.test.js PASS tests/jest/store/stores/router.test.js PASS tests/jest/integration/ConnectFunctionImplementation.test.js PASS tests/jest/components/function/viewer/FunctionViewerDetailsTable.test.js PASS tests/jest/components/widgets/function-report/FunctionReport.test.js PASS tests/jest/components/visualeditor/FunctionInputSetup.test.js PASS tests/jest/store/stores/wikidata/lexemes.test.js PASS tests/jest/components/default/ZCode.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputWikidata.test.js PASS tests/jest/components/widgets/about/AboutLanguageBlock.test.js PASS tests/jest/components/default/ZTester.test.js PASS tests/jest/store/stores/errors.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/default/wikidata/Lexeme.test.js PASS tests/jest/store/stores/ztype.test.js PASS tests/jest/components/default/ZImplementation.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputParser.test.js PASS tests/jest/store/stores/factory.test.js PASS tests/jest/store/stores/wikidata/entities.test.js PASS tests/jest/composables/useBreakpoints.test.js PASS tests/jest/store/stores/submission.test.js PASS tests/jest/components/widgets/about/AboutLanguagesDialog.test.js PASS tests/jest/components/App.test.js PASS tests/jest/store/classes/ApiError.test.js PASS tests/jest/components/default/wikidata/LexemeForm.test.js PASS tests/jest/mixins/scrollMixin.test.js PASS tests/jest/components/base/ExpandedToggle.test.js PASS tests/jest/components/default/ZReference.test.js PASS tests/jest/mixins/zobjectMixin.test.js PASS tests/jest/views/FunctionViewer.test.js PASS tests/jest/components/base/Pagination.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputLanguage.test.js PASS tests/jest/store/stores/listItems.test.js PASS tests/jest/store/stores/wikidata/properties.test.js PASS tests/jest/components/visualeditor/ExpandableDescription.test.js PASS tests/jest/store/stores/functionCall.test.js PASS tests/jest/utils/zobjectUtils.test.js PASS tests/jest/components/default/wikidata/Item.test.js PASS tests/jest/store/stores/zfunction.test.js PASS tests/jest/components/widgets/publish/LeaveEditorDialog.test.js PASS tests/jest/store/stores/wikidata/items.test.js PASS tests/jest/components/function/editor/FunctionEditor.test.js PASS tests/jest/components/function/editor/FunctionEditorInputs.test.js PASS tests/jest/components/visualeditor/FunctionSelect.test.js PASS tests/jest/components/default/wikidata/Property.test.js PASS tests/jest/components/default/wikidata/Enum.test.js PASS tests/jest/components/widgets/function-report/FunctionReportItem.test.js PASS tests/jest/components/base/TypeSelector.test.js PASS tests/jest/store/stores/testResults.test.js PASS tests/jest/components/widgets/publish/Publish.test.js PASS tests/jest/components/base/CodeEditor.test.js PASS tests/jest/components/default/ZFunctionCall.test.js PASS tests/jest/mixins/clipboardMixin.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputEnum.test.js PASS tests/jest/components/function/editor/FunctionEditorDescription.test.js PASS tests/jest/store/stores/visualeditor.test.js PASS tests/jest/components/default/ZTypedListType.test.js PASS tests/jest/store/index.test.js PASS tests/jest/components/function/editor/FunctionEditorLanguage.test.js PASS tests/jest/store/stores/currentPage.test.js PASS tests/jest/components/base/SafeMessage.test.js PASS tests/jest/utils/schemata.test.js PASS tests/jest/components/function/editor/FunctionEditorAliases.test.js PASS tests/jest/components/default/ZTypedListItems.test.js PASS tests/jest/mixins/pageTitleMixin.test.js PASS tests/jest/utils/scrollUtils.test.js PASS tests/jest/components/default/ZTypedList.test.js PASS tests/jest/store/stores/programmingLanguages.test.js PASS tests/jest/components/visualeditor/FunctionInputField.test.js PASS tests/jest/utils/wikidataUtils.test.js PASS tests/jest/utils/typeUtils.test.js PASS tests/jest/store/stores/user.test.js PASS tests/jest/components/visualeditor/FunctionCallSetup.test.js PASS tests/jest/utils/miscUtils.test.js PASS tests/jest/components/base/ClipboardManager.test.js PASS tests/jest/components/visualeditor/fields/FunctionInputString.test.js PASS tests/jest/components/base/LocalizedLabel.test.js PASS tests/jest/components/default/ZArgumentReference.test.js PASS tests/jest/components/function/editor/FunctionEditorInputsItem.test.js PASS tests/jest/store/stores/languages.test.js PASS tests/jest/components/default/ZHTMLFragment.test.js PASS tests/jest/components/default/wikidata/ReferenceSelector.test.js PASS tests/jest/components/function/editor/FunctionEditorOutput.test.js PASS tests/jest/components/default/ZBoolean.test.js PASS tests/jest/mixins/errorMixin.test.js PASS tests/jest/mixins/eventLogMixin.test.js PASS tests/jest/components/default/ZMonolingualString.test.js PASS tests/jest/components/function/editor/FunctionEditorName.test.js PASS tests/jest/components/function/editor/FunctionEditorLanguageBlock.test.js PASS tests/jest/utils/urlUtils.test.js PASS tests/jest/components/default/ZString.test.js PASS tests/jest/components/base/TypeToString.test.js PASS tests/jest/store/classes/ErrorData.test.js PASS tests/jest/utils/errorUtils.test.js Jest: "./resources/ext.wikilambda.app/" coverage threshold for statements (95%) not met: 94.93% Jest: "./resources/ext.wikilambda.app/" coverage threshold for branches (85%) not met: 83.38% Jest: "./resources/ext.wikilambda.app/" coverage threshold for lines (95%) not met: 94.93% Jest: "./resources/ext.wikilambda.app/utils" coverage threshold for statements (88%) not met: 83.1% Jest: "./resources/ext.wikilambda.app/utils" coverage threshold for branches (82%) not met: 74.8% Jest: "./resources/ext.wikilambda.app/utils" coverage threshold for lines (88%) not met: 83.1% Jest: "./resources/ext.wikilambda.app/store" coverage threshold for statements (94%) not met: 93.52% Jest: "./resources/ext.wikilambda.app/store" coverage threshold for branches (84%) not met: 83.93% Jest: "./resources/ext.wikilambda.app/store" coverage threshold for lines (94%) not met: 93.52% Test Suites: 126 passed, 126 total Tests: 1 skipped, 1931 passed, 1932 total Snapshots: 0 total Time: 76.906 s Ran all test suites. --- stdout --- ----------------------------------------------------------|---------|----------|---------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s ----------------------------------------------------------|---------|----------|---------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- All files | 94.96 | 83.47 | 96.05 | 94.96 | 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 | 95.72 | 82.25 | 95.87 | 95.72 | 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 | 99.34 | 94.11 | 100 | 99.34 | 81 WidgetBase.vue | 100 | 100 | 100 | 100 | ZObjectSelector.vue | 93.54 | 73.75 | 88.88 | 93.54 | 187-188,191-192,196-197,200-201,208-209,243-244,325,329,374-375,398,406-411,447-448,477-479,503-505,520-521,555-556,585-587,604-606,648-649,690-692 ext.wikilambda.app/components/function/editor | 99.48 | 90.78 | 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 | 81.25 | 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 | 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 | 95.96 | 80.51 | 96.8 | 95.96 | ZArgumentReference.vue | 97.29 | 72.72 | 100 | 97.29 | 165-169 ZBoolean.vue | 100 | 100 | 100 | 100 | ZCode.vue | 94.73 | 78.26 | 100 | 94.73 | 197-200,336,338,384-395,462-469 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.34 | 92 | 100 | 99.34 | 337-338,360 ZMultilingualStringDialog.vue | 99.2 | 92.98 | 94.73 | 99.2 | 409-410,413-414 ZObjectKeyValue.vue | 87.89 | 67.56 | 100 | 87.89 | 231-237,241-242,271-272,292-293,296-297,358-363,369-372,378-387,467-468,474,476-477,481-495,499-501,563-565,588-589,594-597,605-607,626-627,635,637-639,644,646-649,671-674,684,686-690,714-715,722-723,822-823,825-826,828-829,831-832 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 | 91.45 | 67.6 | 96.29 | 91.45 | 200-201,208-209,212-213,218-219,300-303,314-315,317-318,320-321,333-335,351-353,391-394,409-411,415-416,421-422,521-530,538,540,542,573-576,581-582 ZReference.vue | 98.63 | 68.18 | 100 | 98.63 | 178,180-181 ZString.vue | 100 | 66.66 | 100 | 100 | 88 ZTester.vue | 99.25 | 95.23 | 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.12 | 85.23 | 90.36 | 97.12 | EntitySelector.vue | 93.33 | 80 | 81.81 | 93.33 | 113-114,139-141,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 | 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 | 100 | 93.75 | 100 | 100 | 119 wikidataIconSvg.js | 100 | 100 | 100 | 100 | ext.wikilambda.app/components/visualeditor | 98.09 | 96.57 | 87.5 | 98.09 | ExpandableDescription.vue | 98.62 | 100 | 83.33 | 98.62 | 91-92 FunctionCallSetup.vue | 95.52 | 100 | 66.66 | 95.52 | 99,106,112-115 FunctionInputField.vue | 100 | 100 | 100 | 100 | FunctionInputPreview.vue | 98.11 | 95.08 | 85.18 | 98.11 | 148-149,393-394,415,503-507 FunctionInputSetup.vue | 98.88 | 100 | 95 | 98.88 | 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 | 96.08 | 90.17 | 94.54 | 96.08 | FunctionInputEnum.vue | 98.48 | 95.83 | 92.3 | 98.48 | 93,165-166 FunctionInputLanguage.vue | 98.78 | 90.9 | 100 | 98.78 | 101-102 FunctionInputParser.vue | 91.51 | 87.8 | 90.47 | 91.51 | 107-109,192-204,215-216,256-257,336-342,354-358 FunctionInputString.vue | 100 | 100 | 100 | 100 | FunctionInputWikidata.vue | 99 | 86.95 | 100 | 99 | 135-136 ext.wikilambda.app/components/widgets/about | 94.84 | 83.33 | 95 | 94.84 | About.vue | 93.87 | 85.93 | 92.85 | 93.87 | 238,280-283,303,312-339,348,402-403 AboutLanguageBlock.vue | 95.59 | 84.21 | 100 | 95.59 | 332-338,350-351,354-360,372-373,376-382,499-500 AboutLanguagesDialog.vue | 95.15 | 76.66 | 92.85 | 95.15 | 252-254,266-268,283-284,316-317,319-320,322-323,325-326,332-334 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 | 92.41 | 58.73 | 90 | 92.41 | FunctionReport.vue | 92.92 | 66.66 | 90.9 | 92.92 | 184-185,190-195,207-208,211,229-231,289-291,297-299,327-333,355-356 FunctionReportItem.vue | 91.52 | 38.88 | 87.5 | 91.52 | 126-127,129-130,132-133,135-136,149,151,153,163-164,166-167,182-186 ext.wikilambda.app/components/widgets/publish | 97.86 | 81.08 | 94.73 | 97.86 | LeaveEditorDialog.vue | 100 | 100 | 100 | 100 | Publish.vue | 94.31 | 77.14 | 87.5 | 94.31 | 105-112,122-123,208,212-214,232-234 PublishDialog.vue | 100 | 82.35 | 100 | 100 | 145,242,304,353-355 ext.wikilambda.app/composables | 100 | 84.61 | 100 | 100 | useBreakpoints.js | 100 | 84.61 | 100 | 100 | 11,26 ext.wikilambda.app/mixins | 98.49 | 87.95 | 100 | 98.49 | clipboardMixin.js | 98.73 | 92.3 | 100 | 98.73 | 51 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 | 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 | 95.56 | 74.54 | 100 | 95.56 | ApiError.js | 92.41 | 68.96 | 100 | 92.41 | 40-41,46-50,151-153,159-160,200-203 ErrorData.js | 97.61 | 66.66 | 100 | 97.61 | 68-69 LabelData.js | 100 | 88.23 | 100 | 100 | 45,76 ext.wikilambda.app/store/stores | 94.23 | 84.51 | 97.33 | 94.23 | errors.js | 98.72 | 93.54 | 92.85 | 98.72 | 52,223-224 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 | 94.35 | 82.44 | 98.24 | 94.35 | 76,113-114,138-139,143,168-169,178-179,188-189,195-198,237-238,240-241,273,431-432,466,507-508,514-515,519,540-541,552-555,559,580-581,584-585,650-655,683-685,890,1038-1039,1070-1074,1088-1089,1115-1118,1120-1123,1169 listItems.js | 96.63 | 91.66 | 100 | 96.63 | 85-88 programmingLanguages.js | 100 | 100 | 100 | 100 | router.js | 87.17 | 76.66 | 100 | 87.17 | 95-96,108-126,144-147 testResults.js | 90.14 | 69.56 | 100 | 90.14 | 43-44,48-49,129-142,209-216,224-225,234-235,276-278 user.js | 100 | 100 | 100 | 100 | visualeditor.js | 96.44 | 95.45 | 85 | 96.44 | 62,72,95-96,149-153 zfunction.js | 98.96 | 92.45 | 100 | 98.96 | 36-37,182-183 zobject.js | 91.14 | 82 | 97.72 | 91.14 | 69-70,88-89,104-105,111,113,127-128,152-153,165-166,204-212,235-236,240-241,312-313,343-344,406-407,471-472,475-476,622-623,663-664,800-801,968-974,1087-1093,1097-1103,1115-1118,1120-1156,1173-1174 ztype.js | 99.38 | 97.29 | 100 | 99.38 | 274-275 ext.wikilambda.app/store/stores/wikidata | 95.13 | 91.32 | 97.1 | 95.13 | entities.js | 92.97 | 87.5 | 100 | 92.97 | 47,87,98,143-155,273-278 items.js | 100 | 93.54 | 100 | 100 | 94,115 lexemes.js | 93.2 | 93.81 | 93.75 | 93.2 | 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 | 89.55 | 76.36 | 100 | 89.55 | currentPage.js | 100 | 86.36 | 100 | 100 | 73,119,121 factory.js | 95.26 | 78.81 | 100 | 95.26 | 74-93,99-100,104,108,110,114,116,120,124,130,134,136,142,190-196 submission.js | 77.98 | 70 | 100 | 77.98 | 50-51,60-62,71-72,82-88,120-129,132-141,152-167,176-183,192-195,258-262,266-279,287-288,292-301,309-310,327-328,373-374,404-405,437-438,451-453,462-473,482-486,505-506,511-512,526-527,543-544,573-574 ext.wikilambda.app/utils | 83.1 | 74.8 | 98.95 | 83.1 | apiUtils.js | 98.64 | 77.55 | 100 | 98.64 | 263-265,329-330 errorUtils.js | 98.13 | 90.47 | 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 | 57.51 | 60 | 100 | 57.51 | 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,680-687,689-696,716-717,719-722 urlUtils.js | 97.41 | 94.73 | 100 | 97.41 | 25-27 wikidataUtils.js | 100 | 100 | 100 | 100 | zobjectUtils.js | 87.61 | 63.39 | 100 | 87.61 | 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,677-682,701-715 ext.wikilambda.app/views | 96.78 | 72 | 83.33 | 96.78 | 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 | 93.54 | 71.42 | 80 | 93.54 | 87-94 ext.wikilambda.languageselector/components | 98.05 | 93.75 | 94.11 | 98.05 | LanguageSelector.vue | 98.05 | 93.75 | 94.11 | 98.05 | 229-230,268-269,290-291 ----------------------------------------------------------|---------|----------|---------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --- 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.