This run took 248 seconds.
$ date --- stdout --- Thu Nov 14 16:26:13 UTC 2024 --- end --- $ git clone file:///srv/git/mediawiki-extensions-WikibaseLexeme.git repo --depth=1 -b REL1_39 --- 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 'resources/special/new-lexeme' (https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git) registered for path 'resources/special/new-lexeme' Cloning into '/src/repo/resources/special/new-lexeme'... --- stdout --- Submodule path 'resources/special/new-lexeme': checked out '93a01289f58723273c030ca0e54b53d41ebdb89c' --- end --- $ grr init --- stdout --- Installed commit-msg hook. --- end --- $ git show-ref refs/heads/REL1_39 --- stdout --- 441fb596f10b25befae8260b8a8e061cb947134b refs/heads/REL1_39 --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "@babel/traverse": { "name": "@babel/traverse", "severity": "critical", "isDirect": false, "via": [ { "source": 1096886, "name": "@babel/traverse", "dependency": "@babel/traverse", "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code", "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92", "severity": "critical", "cwe": [ "CWE-184", "CWE-697" ], "cvss": { "score": 9.4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H" }, "range": "<7.23.2" } ], "effects": [], "range": "<7.23.2", "nodes": [ "node_modules/@babel/traverse" ], "fixAvailable": true }, "@wdio/cli": { "name": "@wdio/cli", "severity": "high", "isDirect": true, "via": [ "webdriverio" ], "effects": [], "range": "7.16.5 - 8.40.6", "nodes": [ "node_modules/@wdio/cli" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.2.12", "isSemVerMajor": true } }, "@wdio/local-runner": { "name": "@wdio/local-runner", "severity": "high", "isDirect": true, "via": [ "@wdio/runner" ], "effects": [], "range": "7.16.5 - 8.40.6", "nodes": [ "node_modules/@wdio/local-runner" ], "fixAvailable": { "name": "@wdio/local-runner", "version": "9.2.12", "isSemVerMajor": true } }, "@wdio/runner": { "name": "@wdio/runner", "severity": "high", "isDirect": false, "via": [ "webdriverio" ], "effects": [ "@wdio/local-runner" ], "range": "7.16.5 - 8.40.6", "nodes": [ "node_modules/@wdio/runner" ], "fixAvailable": { "name": "@wdio/local-runner", "version": "9.2.12", "isSemVerMajor": true } }, "@wdio/sync": { "name": "@wdio/sync", "severity": "high", "isDirect": true, "via": [ "webdriverio" ], "effects": [], "range": ">=7.16.5", "nodes": [ "node_modules/@wdio/sync" ], "fixAvailable": { "name": "@wdio/sync", "version": "7.14.1", "isSemVerMajor": true } }, "@xmldom/xmldom": { "name": "@xmldom/xmldom", "severity": "critical", "isDirect": false, "via": [ { "source": 1091572, "name": "@xmldom/xmldom", "dependency": "@xmldom/xmldom", "title": "xmldom allows multiple root nodes in a DOM", "url": "https://github.com/advisories/GHSA-crh6-fp67-6883", "severity": "critical", "cwe": [ "CWE-20", "CWE-1288" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": "<0.7.7" } ], "effects": [], "range": "<0.7.7", "nodes": [ "node_modules/@xmldom/xmldom" ], "fixAvailable": true }, "autoprefixer": { "name": "autoprefixer", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "1.0.20131222 - 9.8.8", "nodes": [ "node_modules/autoprefixer" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "braces": { "name": "braces", "severity": "high", "isDirect": false, "via": [ { "source": 1098094, "name": "braces", "dependency": "braces", "title": "Uncontrolled resource consumption in braces", "url": "https://github.com/advisories/GHSA-grv7-fg5c-xmjg", "severity": "high", "cwe": [ "CWE-400", "CWE-1050" ], "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": "<3.0.3" } ], "effects": [], "range": "<3.0.3", "nodes": [ "node_modules/braces" ], "fixAvailable": true }, "devtools": { "name": "devtools", "severity": "high", "isDirect": false, "via": [ "puppeteer-core" ], "effects": [], "range": ">=7.16.5", "nodes": [ "node_modules/@wdio/runner/node_modules/devtools", "node_modules/devtools" ], "fixAvailable": true }, "diff": { "name": "diff", "severity": "high", "isDirect": false, "via": [ { "source": 1095029, "name": "diff", "dependency": "diff", "title": "Regular Expression Denial of Service (ReDoS)", "url": "https://github.com/advisories/GHSA-h6ch-v84p-w6p9", "severity": "high", "cwe": [ "CWE-400" ], "cvss": { "score": 0, "vectorString": null }, "range": "<3.5.0" } ], "effects": [ "unexpected" ], "range": "<3.5.0", "nodes": [ "node_modules/unexpected/node_modules/diff" ], "fixAvailable": { "name": "unexpected", "version": "13.2.1", "isSemVerMajor": true } }, "ejs": { "name": "ejs", "severity": "critical", "isDirect": false, "via": [ { "source": 1089270, "name": "ejs", "dependency": "ejs", "title": "ejs template injection vulnerability", "url": "https://github.com/advisories/GHSA-phwq-j96m-2c2q", "severity": "critical", "cwe": [ "CWE-74" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": "<3.1.7" }, { "source": 1098366, "name": "ejs", "dependency": "ejs", "title": "ejs lacks certain pollution protection", "url": "https://github.com/advisories/GHSA-ghr5-ch3p-vcr6", "severity": "moderate", "cwe": [ "CWE-693", "CWE-1321" ], "cvss": { "score": 4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<3.1.10" } ], "effects": [], "range": "<=3.1.9", "nodes": [ "node_modules/ejs" ], "fixAvailable": true }, "eslint-config-wikimedia": { "name": "eslint-config-wikimedia", "severity": "high", "isDirect": true, "via": [ "eslint-plugin-compat" ], "effects": [], "range": "0.18.0 - 0.21.0", "nodes": [ "node_modules/eslint-config-wikimedia" ], "fixAvailable": { "name": "eslint-config-wikimedia", "version": "0.28.2", "isSemVerMajor": true } }, "eslint-plugin-compat": { "name": "eslint-plugin-compat", "severity": "high", "isDirect": false, "via": [ "semver" ], "effects": [ "eslint-config-wikimedia" ], "range": "3.6.0-0 - 4.1.4", "nodes": [ "node_modules/eslint-plugin-compat" ], "fixAvailable": { "name": "eslint-config-wikimedia", "version": "0.28.2", "isSemVerMajor": true } }, "got": { "name": "got", "severity": "moderate", "isDirect": false, "via": [ { "source": 1088948, "name": "got", "dependency": "got", "title": "Got allows a redirect to a UNIX socket", "url": "https://github.com/advisories/GHSA-pfrx-2q88-qq97", "severity": "moderate", "cwe": [], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N" }, "range": "<11.8.5" } ], "effects": [], "range": "<11.8.5", "nodes": [ "node_modules/got" ], "fixAvailable": true }, "grunt": { "name": "grunt", "severity": "high", "isDirect": true, "via": [ { "source": 1091643, "name": "grunt", "dependency": "grunt", "title": "Race Condition in Grunt", "url": "https://github.com/advisories/GHSA-rm36-94g8-835r", "severity": "high", "cwe": [ "CWE-367" ], "cvss": { "score": 7, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H" }, "range": "<1.5.3" }, { "source": 1091644, "name": "grunt", "dependency": "grunt", "title": "Path Traversal in Grunt", "url": "https://github.com/advisories/GHSA-j383-35pm-c5h4", "severity": "moderate", "cwe": [ "CWE-22" ], "cvss": { "score": 5.5, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N" }, "range": "<1.5.2" } ], "effects": [], "range": "<=1.5.2", "nodes": [ "node_modules/grunt" ], "fixAvailable": { "name": "grunt", "version": "1.6.1", "isSemVerMajor": false } }, "grunt-stylelint": { "name": "grunt-stylelint", "severity": "moderate", "isDirect": true, "via": [ "stylelint" ], "effects": [], "range": "<=0.16.0", "nodes": [ "node_modules/grunt-stylelint" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "http-cache-semantics": { "name": "http-cache-semantics", "severity": "high", "isDirect": false, "via": [ { "source": 1092316, "name": "http-cache-semantics", "dependency": "http-cache-semantics", "title": "http-cache-semantics vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-rc47-6667-2j5j", "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": "<4.1.1" } ], "effects": [], "range": "<4.1.1", "nodes": [ "node_modules/http-cache-semantics" ], "fixAvailable": true }, "json5": { "name": "json5", "severity": "high", "isDirect": false, "via": [ { "source": 1096544, "name": "json5", "dependency": "json5", "title": "Prototype Pollution in JSON5 via Parse Method", "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h", "severity": "high", "cwe": [ "CWE-1321" ], "cvss": { "score": 7.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H" }, "range": ">=2.0.0 <2.2.2" } ], "effects": [], "range": "2.0.0 - 2.2.1", "nodes": [ "node_modules/json5" ], "fixAvailable": true }, "micromatch": { "name": "micromatch", "severity": "moderate", "isDirect": false, "via": [ { "source": 1098681, "name": "micromatch", "dependency": "micromatch", "title": "Regular Expression Denial of Service (ReDoS) in micromatch", "url": "https://github.com/advisories/GHSA-952p-6rrq-rcjv", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<4.0.8" } ], "effects": [], "range": "<4.0.8", "nodes": [ "node_modules/micromatch" ], "fixAvailable": true }, "minimatch": { "name": "minimatch", "severity": "high", "isDirect": false, "via": [ { "source": 1096485, "name": "minimatch", "dependency": "minimatch", "title": "minimatch ReDoS vulnerability", "url": "https://github.com/advisories/GHSA-f8q6-p94x-37v3", "severity": "high", "cwe": [ "CWE-400", "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": "<3.0.5" } ], "effects": [ "mocha", "recursive-readdir" ], "range": "<3.0.5", "nodes": [ "node_modules/minimatch" ], "fixAvailable": true }, "minimist": { "name": "minimist", "severity": "critical", "isDirect": false, "via": [ { "source": 1097678, "name": "minimist", "dependency": "minimist", "title": "Prototype Pollution in minimist", "url": "https://github.com/advisories/GHSA-xvch-5gv4-984h", "severity": "critical", "cwe": [ "CWE-1321" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": ">=1.0.0 <1.2.6" } ], "effects": [], "range": "1.0.0 - 1.2.5", "nodes": [ "node_modules/minimist" ], "fixAvailable": true }, "mocha": { "name": "mocha", "severity": "high", "isDirect": false, "via": [ "minimatch", "nanoid" ], "effects": [], "range": "5.1.0 - 9.2.1", "nodes": [ "node_modules/mocha" ], "fixAvailable": true }, "mwbot": { "name": "mwbot", "severity": "high", "isDirect": false, "via": [ "request", "semver" ], "effects": [ "wdio-mediawiki" ], "range": ">=0.1.6", "nodes": [ "node_modules/mwbot" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "nanoid": { "name": "nanoid", "severity": "moderate", "isDirect": false, "via": [ { "source": 1089011, "name": "nanoid", "dependency": "nanoid", "title": "Exposure of Sensitive Information to an Unauthorized Actor in nanoid", "url": "https://github.com/advisories/GHSA-qrpm-p2h7-hrv2", "severity": "moderate", "cwe": [ "CWE-200" ], "cvss": { "score": 5.5, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N" }, "range": ">=3.0.0 <3.1.31" } ], "effects": [ "mocha" ], "range": "3.0.0 - 3.1.30", "nodes": [ "node_modules/nanoid" ], "fixAvailable": true }, "path-to-regexp": { "name": "path-to-regexp", "severity": "high", "isDirect": false, "via": [ { "source": 1099561, "name": "path-to-regexp", "dependency": "path-to-regexp", "title": "path-to-regexp outputs backtracking regular expressions", "url": "https://github.com/advisories/GHSA-9wv6-86v2-598j", "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": ">=0.2.0 <1.9.0" } ], "effects": [], "range": "0.2.0 - 1.8.0", "nodes": [ "node_modules/path-to-regexp" ], "fixAvailable": true }, "postcss": { "name": "postcss", "severity": "moderate", "isDirect": false, "via": [ { "source": 1094544, "name": "postcss", "dependency": "postcss", "title": "PostCSS line return parsing error", "url": "https://github.com/advisories/GHSA-7fh5-64p2-3v2j", "severity": "moderate", "cwe": [ "CWE-74", "CWE-144" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N" }, "range": "<8.4.31" } ], "effects": [ "autoprefixer", "postcss-less", "postcss-safe-parser", "postcss-sass", "postcss-scss", "stylelint", "sugarss" ], "range": "<8.4.31", "nodes": [ "node_modules/autoprefixer/node_modules/postcss", "node_modules/postcss", "node_modules/postcss-less/node_modules/postcss", "node_modules/postcss-safe-parser/node_modules/postcss", "node_modules/postcss-sass/node_modules/postcss", "node_modules/postcss-scss/node_modules/postcss", "node_modules/stylelint/node_modules/postcss", "node_modules/sugarss/node_modules/postcss" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "postcss-less": { "name": "postcss-less", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "<=3.1.4", "nodes": [ "node_modules/postcss-less" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "postcss-safe-parser": { "name": "postcss-safe-parser", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "<=4.0.2", "nodes": [ "node_modules/postcss-safe-parser" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "postcss-sass": { "name": "postcss-sass", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "<=0.4.4", "nodes": [ "node_modules/postcss-sass" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "postcss-scss": { "name": "postcss-scss", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "<=2.1.1", "nodes": [ "node_modules/postcss-scss" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "prismjs": { "name": "prismjs", "severity": "high", "isDirect": false, "via": [ { "source": 1090424, "name": "prismjs", "dependency": "prismjs", "title": "Cross-site Scripting in Prism", "url": "https://github.com/advisories/GHSA-3949-f494-cm99", "severity": "high", "cwe": [ "CWE-79" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:L" }, "range": ">=1.14.0 <1.27.0" } ], "effects": [], "range": "1.14.0 - 1.26.0", "nodes": [ "node_modules/prismjs" ], "fixAvailable": true }, "puppeteer-core": { "name": "puppeteer-core", "severity": "high", "isDirect": false, "via": [ "ws" ], "effects": [ "devtools", "webdriverio" ], "range": "11.0.0 - 22.11.1", "nodes": [ "node_modules/puppeteer-core" ], "fixAvailable": { "name": "webdriverio", "version": "9.2.12", "isSemVerMajor": true } }, "recursive-readdir": { "name": "recursive-readdir", "severity": "high", "isDirect": false, "via": [ "minimatch" ], "effects": [], "range": "1.2.0 - 2.2.2", "nodes": [ "node_modules/recursive-readdir" ], "fixAvailable": true }, "request": { "name": "request", "severity": "moderate", "isDirect": true, "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" }, "tough-cookie" ], "effects": [ "mwbot" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "semver": { "name": "semver", "severity": "high", "isDirect": false, "via": [ { "source": 1098562, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "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": ">=7.0.0 <7.5.2" }, { "source": 1098563, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "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": "<5.7.2" }, { "source": 1098564, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "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.0 <6.3.1" } ], "effects": [ "eslint-plugin-compat", "mwbot" ], "range": "<=5.7.1 || 6.0.0 - 6.3.0 || 7.0.0 - 7.5.1", "nodes": [ "node_modules/@babel/core/node_modules/semver", "node_modules/@babel/helper-compilation-targets/node_modules/semver", "node_modules/cac/node_modules/semver", "node_modules/eslint-plugin-node/node_modules/semver", "node_modules/eslint-plugin-vue/node_modules/semver", "node_modules/mwbot/node_modules/semver", "node_modules/npm-run-all/node_modules/semver", "node_modules/read-pkg/node_modules/semver", "node_modules/semver", "node_modules/vue-eslint-parser/node_modules/semver" ], "fixAvailable": { "name": "eslint-config-wikimedia", "version": "0.28.2", "isSemVerMajor": true } }, "stylelint": { "name": "stylelint", "severity": "moderate", "isDirect": false, "via": [ "autoprefixer", "postcss", "postcss-less", "postcss-safe-parser", "postcss-sass", "postcss-scss", "sugarss" ], "effects": [ "grunt-stylelint" ], "range": "0.1.0 - 13.13.1", "nodes": [ "node_modules/stylelint" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "sugarss": { "name": "sugarss", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [], "range": "<=2.0.0", "nodes": [ "node_modules/sugarss" ], "fixAvailable": 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", "node_modules/tough-cookie" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "ua-parser-js": { "name": "ua-parser-js", "severity": "high", "isDirect": false, "via": [ { "source": 1092302, "name": "ua-parser-js", "dependency": "ua-parser-js", "title": "ReDoS Vulnerability in ua-parser-js version", "url": "https://github.com/advisories/GHSA-fhg7-m89q-25r3", "severity": "high", "cwe": [ "CWE-400", "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": ">=0.8.0 <1.0.33" } ], "effects": [], "range": "0.8.1 - 1.0.32", "nodes": [ "node_modules/ua-parser-js" ], "fixAvailable": true }, "unexpected": { "name": "unexpected", "severity": "high", "isDirect": true, "via": [ "diff" ], "effects": [], "range": "5.0.0-beta1 - 11.0.0", "nodes": [ "node_modules/unexpected" ], "fixAvailable": { "name": "unexpected", "version": "13.2.1", "isSemVerMajor": true } }, "vue": { "name": "vue", "severity": "low", "isDirect": true, "via": [ { "source": 1100238, "name": "vue", "dependency": "vue", "title": "ReDoS vulnerability in vue package that is exploitable through inefficient regex evaluation in the parseHTML function", "url": "https://github.com/advisories/GHSA-5j4c-8p2g-v4jx", "severity": "low", "cwe": [ "CWE-1333" ], "cvss": { "score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": ">=2.0.0-alpha.1 <3.0.0-alpha.0" } ], "effects": [ "vuex" ], "range": "2.0.0-alpha.1 - 2.7.16", "nodes": [ "node_modules/vue" ], "fixAvailable": { "name": "vue", "version": "3.5.12", "isSemVerMajor": true } }, "vuex": { "name": "vuex", "severity": "low", "isDirect": true, "via": [ "vue" ], "effects": [], "range": "3.1.3 - 3.6.2", "nodes": [ "node_modules/vuex" ], "fixAvailable": { "name": "vuex", "version": "4.1.0", "isSemVerMajor": true } }, "wdio-mediawiki": { "name": "wdio-mediawiki", "severity": "high", "isDirect": true, "via": [ "mwbot" ], "effects": [ "wdio-wikibase" ], "range": "1.1.0 - 2.2.0", "nodes": [ "node_modules/wdio-mediawiki" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "wdio-wikibase": { "name": "wdio-wikibase", "severity": "high", "isDirect": true, "via": [ "wdio-mediawiki" ], "effects": [], "range": "5.1.0 - 5.2.0", "nodes": [ "node_modules/wdio-wikibase" ], "fixAvailable": { "name": "wdio-wikibase", "version": "6.0.3", "isSemVerMajor": true } }, "webdriverio": { "name": "webdriverio", "severity": "high", "isDirect": true, "via": [ "devtools", "puppeteer-core" ], "effects": [ "@wdio/cli", "@wdio/runner", "@wdio/sync" ], "range": "7.16.5 - 8.40.6", "nodes": [ "node_modules/@wdio/runner/node_modules/webdriverio", "node_modules/webdriverio" ], "fixAvailable": { "name": "webdriverio", "version": "9.2.12", "isSemVerMajor": true } }, "word-wrap": { "name": "word-wrap", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097681, "name": "word-wrap", "dependency": "word-wrap", "title": "word-wrap vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-j8xg-fqg3-53r7", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<1.2.4" } ], "effects": [], "range": "<1.2.4", "nodes": [ "node_modules/word-wrap" ], "fixAvailable": 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/ws" ], "fixAvailable": { "name": "webdriverio", "version": "9.2.12", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 2, "moderate": 15, "high": 26, "critical": 4, "total": 47 }, "dependencies": { "prod": 1, "dev": 1017, "optional": 2, "peer": 102, "peerOptional": 0, "total": 1017 } } } --- 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: 54 installs, 0 updates, 0 removals - Locking composer/pcre (1.0.1) - Locking composer/semver (3.4.3) - Locking composer/spdx-licenses (1.5.8) - Locking composer/xdebug-handler (2.0.5) - Locking davidrjonas/composer-lock-diff (1.7.0) - Locking doctrine/annotations (1.14.4) - Locking doctrine/cache (1.13.0) - Locking doctrine/collections (1.8.0) - Locking doctrine/common (2.13.3) - Locking doctrine/deprecations (1.1.3) - Locking doctrine/event-manager (1.2.0) - Locking doctrine/inflector (1.4.4) - Locking doctrine/lexer (1.2.3) - Locking doctrine/persistence (1.3.8) - Locking doctrine/reflection (1.2.4) - Locking felixfbecker/advanced-json-rpc (v3.2.1) - Locking giorgiosironi/eris (0.10.0) - Locking hamcrest/hamcrest-php (v2.0.1) - Locking icomefromthenet/reverse-regex (v0.0.6.3) - Locking mediawiki/mediawiki-codesniffer (v38.0.0) - Locking mediawiki/mediawiki-phan-config (0.11.1) - Locking mediawiki/minus-x (1.1.1) - Locking mediawiki/phan-taint-check-plugin (3.3.2) - Locking microsoft/tolerant-php-parser (v0.1.2) - Locking netresearch/jsonmapper (v4.5.0) - Locking patchwork/utf8 (v1.3.3) - Locking phan/phan (5.2.0) - Locking php-parallel-lint/php-console-color (v0.3) - Locking php-parallel-lint/php-console-highlighter (v0.5) - Locking php-parallel-lint/php-parallel-lint (v1.3.1) - Locking phpdocumentor/reflection-common (2.2.0) - Locking phpdocumentor/reflection-docblock (5.6.0) - Locking phpdocumentor/type-resolver (1.10.0) - Locking phpstan/phpdoc-parser (2.0.0) - Locking psr/cache (3.0.0) - Locking psr/container (2.0.2) - Locking psr/log (2.0.0) - Locking sabre/event (5.1.7) - Locking serialization/serialization (4.0.0) - Locking squizlabs/php_codesniffer (3.6.1) - Locking symfony/console (v5.4.47) - Locking symfony/deprecation-contracts (v3.5.0) - Locking symfony/polyfill-ctype (v1.31.0) - Locking symfony/polyfill-intl-grapheme (v1.31.0) - Locking symfony/polyfill-intl-normalizer (v1.31.0) - Locking symfony/polyfill-mbstring (v1.31.0) - Locking symfony/polyfill-php73 (v1.31.0) - Locking symfony/polyfill-php80 (v1.31.0) - Locking symfony/service-contracts (v3.5.0) - Locking symfony/string (v6.4.15) - Locking tysonandre/var_representation_polyfill (0.1.3) - Locking webmozart/assert (1.11.0) - Locking wikimedia/assert (v0.5.1) - Locking wmde/php-vuejs-templating (1.1.0) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 54 installs, 0 updates, 0 removals - Downloading davidrjonas/composer-lock-diff (1.7.0) - Downloading doctrine/inflector (1.4.4) - Downloading doctrine/lexer (1.2.3) - Downloading doctrine/annotations (1.14.4) - Downloading doctrine/reflection (1.2.4) - Downloading doctrine/event-manager (1.2.0) - Downloading doctrine/collections (1.8.0) - Downloading doctrine/cache (1.13.0) - Downloading doctrine/persistence (1.3.8) - Downloading giorgiosironi/eris (0.10.0) - Downloading patchwork/utf8 (v1.3.3) - Downloading doctrine/common (2.13.3) - Downloading icomefromthenet/reverse-regex (v0.0.6.3) - Downloading wmde/php-vuejs-templating (1.1.0) 0/14 [>---------------------------] 0% 9/14 [==================>---------] 64% 13/14 [==========================>-] 92% 14/14 [============================] 100% - Installing composer/pcre (1.0.1): Extracting archive - Installing davidrjonas/composer-lock-diff (1.7.0): Extracting archive - Installing doctrine/inflector (1.4.4): Extracting archive - Installing doctrine/lexer (1.2.3): Extracting archive - Installing psr/cache (3.0.0): Extracting archive - Installing doctrine/annotations (1.14.4): Extracting archive - Installing doctrine/reflection (1.2.4): Extracting archive - Installing doctrine/deprecations (1.1.3): Extracting archive - Installing doctrine/event-manager (1.2.0): Extracting archive - Installing doctrine/collections (1.8.0): Extracting archive - Installing doctrine/cache (1.13.0): Extracting archive - Installing doctrine/persistence (1.3.8): Extracting archive - Installing giorgiosironi/eris (0.10.0): Extracting archive - Installing hamcrest/hamcrest-php (v2.0.1): Extracting archive - Installing patchwork/utf8 (v1.3.3): Extracting archive - Installing doctrine/common (2.13.3): Extracting archive - Installing icomefromthenet/reverse-regex (v0.0.6.3): Extracting archive - Installing squizlabs/php_codesniffer (3.6.1): Extracting archive - Installing symfony/polyfill-mbstring (v1.31.0): Extracting archive - Installing composer/spdx-licenses (1.5.8): Extracting archive - Installing composer/semver (3.4.3): Extracting archive - Installing mediawiki/mediawiki-codesniffer (v38.0.0): Extracting archive - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive - Installing symfony/polyfill-php80 (v1.31.0): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.31.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.31.0): Extracting archive - Installing symfony/polyfill-ctype (v1.31.0): Extracting archive - Installing symfony/string (v6.4.15): Extracting archive - Installing symfony/deprecation-contracts (v3.5.0): Extracting archive - Installing psr/container (2.0.2): Extracting archive - Installing symfony/service-contracts (v3.5.0): Extracting archive - Installing symfony/polyfill-php73 (v1.31.0): Extracting archive - Installing symfony/console (v5.4.47): 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.0.0): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing phpdocumentor/type-resolver (1.10.0): Extracting archive - Installing phpdocumentor/reflection-docblock (5.6.0): Extracting archive - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive - Installing psr/log (2.0.0): Extracting archive - Installing composer/xdebug-handler (2.0.5): Extracting archive - Installing phan/phan (5.2.0): Extracting archive - Installing mediawiki/phan-taint-check-plugin (3.3.2): Extracting archive - Installing mediawiki/mediawiki-phan-config (0.11.1): Extracting archive - Installing mediawiki/minus-x (1.1.1): Extracting archive - Installing php-parallel-lint/php-console-color (v0.3): Extracting archive - Installing php-parallel-lint/php-console-highlighter (v0.5): Extracting archive - Installing php-parallel-lint/php-parallel-lint (v1.3.1): Extracting archive - Installing serialization/serialization (4.0.0): Extracting archive - Installing wikimedia/assert (v0.5.1): Extracting archive - Installing wmde/php-vuejs-templating (1.1.0): Extracting archive 0/54 [>---------------------------] 0% 18/54 [=========>------------------] 33% 32/54 [================>-----------] 59% 44/54 [======================>-----] 81% 54/54 [============================] 100% 6 package suggestions were added by new dependencies, use `composer suggest` to see details. Package doctrine/reflection is abandoned, you should avoid using it. Use roave/better-reflection instead. Package patchwork/utf8 is abandoned, you should avoid using it. Use symfony/polyfill-mbstring or symfony/string instead. Generating autoload files 22 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- --- end --- Upgrading n:grunt from 1.4.1 -> 1.5.3 $ /usr/bin/npm install --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/sync@7.16.14', npm WARN EBADENGINE required: { node: '>=12.0.0 <16' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated @stylelint/postcss-markdown@0.36.2: Use the original unforked package instead: postcss-markdown npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated grunt-jasmine-nodejs@1.6.1: Deprecated in favor of npm scripts. 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 core-js@2.6.12: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. --- stdout --- added 1016 packages, and audited 1017 packages in 16s 145 packages are looking for funding run `npm fund` for details 46 vulnerabilities (2 low, 15 moderate, 25 high, 4 critical) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. --- end --- $ 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: '@wdio/sync@7.16.14', npm WARN EBADENGINE required: { node: '>=12.0.0 <16' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated @stylelint/postcss-markdown@0.36.2: Use the original unforked package instead: postcss-markdown npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated grunt-jasmine-nodejs@1.6.1: Deprecated in favor of npm scripts. 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 core-js@2.6.12: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. --- stdout --- added 1016 packages, and audited 1017 packages in 24s 145 packages are looking for funding run `npm fund` for details 46 vulnerabilities (2 low, 15 moderate, 25 high, 4 critical) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stderr --- [Vue warn]: Error in mounted hook: "TypeError: mw.message(...).text is not a function" found in ---> <LanguageSelector> <Root> TypeError: mw.message(...).text is not a function at getLanguageLabel (/src/repo/resources/widgets/LanguageSelectorWrapper.js:23:8) at /src/repo/resources/widgets/LanguageSelectorWrapper.js:29:25 at Array.forEach (<anonymous>) at VueComponent.mounted (/src/repo/resources/widgets/LanguageSelectorWrapper.js:28:20) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1872:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4236:9) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:3165:9) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6385:30) at Vue.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6602:7) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:3964:21) at Vue.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4082:12) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4494:27) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4569:24) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:4327:15) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:1998:14) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:1924:16) [Vue warn]: Error in mounted hook: "TypeError: mw.message(...).text is not a function" found in ---> <LanguageSelector> <Root> TypeError: mw.message(...).text is not a function at getLanguageLabel (/src/repo/resources/widgets/LanguageSelectorWrapper.js:23:8) at /src/repo/resources/widgets/LanguageSelectorWrapper.js:29:25 at Array.forEach (<anonymous>) at VueComponent.mounted (/src/repo/resources/widgets/LanguageSelectorWrapper.js:28:20) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1872:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4236:9) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:3165:9) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6385:30) at Vue.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6602:7) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:3964:21) at Vue.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4082:12) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4494:27) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4569:24) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:4327:15) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:1998:14) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:1924:16) [Vue warn]: Error in mounted hook: "TypeError: mw.message(...).text is not a function" found in ---> <LanguageSelector> <Root> TypeError: mw.message(...).text is not a function at getLanguageLabel (/src/repo/resources/widgets/LanguageSelectorWrapper.js:23:8) at /src/repo/resources/widgets/LanguageSelectorWrapper.js:29:25 at Array.forEach (<anonymous>) at VueComponent.mounted (/src/repo/resources/widgets/LanguageSelectorWrapper.js:28:20) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1872:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4236:9) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:3165:9) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6385:30) at Vue.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6602:7) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:3964:21) at Vue.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4082:12) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4494:27) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4569:24) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:4327:15) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:1998:14) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:1924:16) [Vue warn]: Error in mounted hook: "TypeError: mw.message(...).text is not a function" found in ---> <LanguageSelector> <Root> TypeError: mw.message(...).text is not a function at getLanguageLabel (/src/repo/resources/widgets/LanguageSelectorWrapper.js:23:8) at /src/repo/resources/widgets/LanguageSelectorWrapper.js:29:25 at Array.forEach (<anonymous>) at VueComponent.mounted (/src/repo/resources/widgets/LanguageSelectorWrapper.js:28:20) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1872:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4236:9) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:3165:9) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6385:30) at Vue.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6602:7) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:3964:21) at Vue.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4082:12) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4494:27) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4569:24) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:4327:15) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:1998:14) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:1924:16) [Vue warn]: Error in mounted hook: "TypeError: api.formatValue is not a function" found in ---> <ItemSelector> <Root> TypeError: api.formatValue is not a function at formatEntityLabel (/src/repo/resources/widgets/ItemSelectorWrapper.js:13:7) at VueComponent.mounted (/src/repo/resources/widgets/ItemSelectorWrapper.js:37:5) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1872:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4236:9) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:3165:9) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6385:30) at VueComponent.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6602:7) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:3964:21) at VueComponent.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4082:12) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4494:27) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4569:24) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:4327:15) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:1998:14) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:1924:16) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) [Vue warn]: Error in mounted hook: "TypeError: api.formatValue is not a function" found in ---> <ItemSelector> <Root> TypeError: api.formatValue is not a function at formatEntityLabel (/src/repo/resources/widgets/ItemSelectorWrapper.js:13:7) at VueComponent.mounted (/src/repo/resources/widgets/ItemSelectorWrapper.js:37:5) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1872:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4236:9) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:3165:9) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6385:30) at VueComponent.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6602:7) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:3964:21) at VueComponent.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4082:12) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4494:27) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4569:24) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:4327:15) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:1998:14) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:1924:16) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) [Vue warn]: Error in destroyed hook: "TypeError: Cannot read properties of undefined (reading 'destroy')" found in ---> <ItemSelector> <Root> TypeError: Cannot read properties of undefined (reading 'destroy') at VueComponent.destroyed (/src/repo/resources/widgets/ItemSelectorWrapper.js:66:43) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1872:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4236:9) at Vue.$destroy (/src/repo/node_modules/vue/dist/vue.js:4019:7) at destroy (/src/repo/node_modules/vue/dist/vue.js:3185:29) at invokeDestroyHook (/src/repo/node_modules/vue/dist/vue.js:6153:61) at removeVnodes (/src/repo/node_modules/vue/dist/vue.js:6169:13) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6274:9) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6358:31) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6232:11) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6358:31) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6232:11) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6358:31) at VueComponent.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6519:11) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:3964:21) at VueComponent.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4082:12) [Vue warn]: Error in destroyed hook: "TypeError: Cannot read properties of undefined (reading 'destroy')" found in ---> <ItemSelector> <Root> TypeError: Cannot read properties of undefined (reading 'destroy') at VueComponent.destroyed (/src/repo/resources/widgets/ItemSelectorWrapper.js:66:43) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1872:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4236:9) at Vue.$destroy (/src/repo/node_modules/vue/dist/vue.js:4019:7) at destroy (/src/repo/node_modules/vue/dist/vue.js:3185:29) at invokeDestroyHook (/src/repo/node_modules/vue/dist/vue.js:6153:61) at removeVnodes (/src/repo/node_modules/vue/dist/vue.js:6169:13) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6274:9) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6358:31) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6232:11) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6358:31) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6232:11) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6358:31) at VueComponent.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6519:11) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:3964:21) at VueComponent.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4082:12) npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@es-joy/jsdoccomment@0.20.1', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'eslint-plugin-jsdoc@37.9.7', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } --- stdout --- > test > run-s test:* > test:grunt > grunt test Running "eslint:all" (eslint) task /src/repo/resources/jquery.wikibase.lexemeformview.js 287:0 warning Missing JSDoc @param "lemmas" type jsdoc/require-param-type 288:0 warning Missing JSDoc @param "formIndex" type jsdoc/require-param-type 289:0 warning Missing JSDoc @param "formId" type jsdoc/require-param-type 290:0 warning Missing JSDoc @param "representations" type jsdoc/require-param-type /src/repo/resources/special/SpecialNewLexemeAlphaSkipVueApp.js 0:0 warning File ignored because of a matching ignore pattern. Use "--no-ignore" to override /src/repo/resources/view/ViewFactoryFactory.js 17:0 warning Syntax error in type: [] jsdoc/valid-types /src/repo/resources/widgets/GlossWidget.js 34:0 warning Syntax error in type: [{ value: string, language: string }] jsdoc/valid-types /src/repo/tests/selenium/pageobjects/lexeme.page.js 236:0 warning Missing JSDoc @param "input" type jsdoc/require-param-type 237:0 warning Missing JSDoc @param "value" type jsdoc/require-param-type /src/repo/tests/selenium/specs/header.edit.js 12:25 warning "../../../../Wikibase/repo/tests/selenium/wdio-wikibase/wikibase.api" is not found node/no-missing-require ✖ 10 problems (0 errors, 10 warnings) Running "banana:WikibaseLexeme" (banana) task >> 3 message directories checked. Running "jasmine_nodejs:all" (jasmine_nodejs) task >> Executing 121 defined specs... Test Suites & Specs: 1) RedundantLanguageIndicator Download the Vue Devtools extension for a better development experience: https://github.com/vuejs/vue-devtools You are running Vue in development mode. Make sure to turn on production mode when deploying for production. See more tips at https://vuejs.org/guide/deployment.html Download the Vue Devtools extension for a better development experience: https://github.com/vuejs/vue-devtools You are running Vue in development mode. Make sure to turn on production mode when deploying for production. See more tips at https://vuejs.org/guide/deployment.html ✔ creates mixin definition with watch that monitors the property recursively ✔ creates mixin definition providing method to determine if language isRedundantLanguage ✔ creates mixin definition with watch on desired property ✔ creates mixin definition that adds a redundantLanguages property to data ✔ creates mixin definition with watch that fires immediately ✔ creates mixin property hasRedundantLanguage returning false for empty redundantLanguages ✔ creates mixin definition method isRedundantLanguage returning false for empty redundantLanguages ✔ creates mixin definition providing computed property hasRedundantLanguage ✔ creates mixin watch handler that can find multiple redundant languages ✔ creates mixin watch handler not taking offence in repeated empty language ✔ creates mixin property hasRedundantLanguage returning true for existing redundantLanguages ✔ creates mixin watch handler that updates redundantLanguages with respective language values 2) actions ✔ ADD_REPRESENTATION on state having no representations and multiple lemmas mutates to empty values ✔ ADD_REPRESENTATION on state having no representations and one lemma mutates to empty values and derives lemma language ✔ UPDATE_REPRESENTATION_VALUE delegates to mutation ✔ ADD_REPRESENTATION on state having existing representation and one lemma mutates to empty values ✔ REMOVE_REPRESENTATION delegates to mutation ✔ REPLACE_ALL_REPRESENTATIONS delegates to mutation ✔ UPDATE_REPRESENTATION_LANGUAGE delegates to mutation 3) RepresentationWidget ✔ adds a representation with unique lemmas language on add after delete ✔ detects redundant representation languages and marks the widget ✔ is not in edit mode after being created ✔ cannot add representation if not in edit mode ✔ switches to edit mode when editing ✔ detects redundant representation languages and can mark the individual languages ✔ is not in edit mode after editing is stopped ✔ cannot remove representation if not in edit mode ✔ shows only the representation it contains when editing the widget with some representation ✔ can carry redundant representations ✔ adds a new empty representation when editing the widget with no representations and multiple lemmas ✔ adds an empty representation on add ✔ adds a new representation with lemma language when editing the widget with no representations and one lemma ✔ can remove a representation 4) InvalidLanguageIndicator ✔ creates mixin property hasInvalidLanguage returning true for existing InvalidLanguages ✔ creates mixin property hasInvalidLanguage returning false for empty InvalidLanguages ✔ creates mixin watch handler that updates InvalidLanguages with respective language values ✔ creates mixin definition method isInvalidLanguage returning false for empty InvalidLanguages ✔ creates mixin definition with watch on desired property ✔ creates mixin definition providing method to determine if language isInvalidLanguage ✔ creates mixin watch handler that can find multiple invalid languages ✔ creates mixin definition with watch that does not fire immediately ✔ creates mixin watch handler not taking offence in empty language ✔ creates mixin definition with watch that monitors the property recursively ✔ creates mixin definition providing computed property hasInvalidLanguage ✔ creates mixin definition that adds an InvalidLanguages property to data 5) focusElement 6) callback ✔ calls focus on selected element ✔ can handle missing element ✔ returns a callback without doing anything else 7) GlossWidget ✔ initialize widget with one gloss ✔ stop editing ✔ add a new gloss ✔ remove a gloss ✔ create with no glosses - when switched to edit mode empty gloss is added ✔ removes empty glosses when saved ✔ switch to edit mode 8) actionTypes ✔ uses unique ids for all action types 9) LanguageAndLexicalCategoryWidget ✔ switches to edit mode and back ✔ shows the language and the lexical category 10) store ✔ creates initial state 11) LexemeSubEntityId 12) getIdSuffix ✔ returns the Form id suffix ✔ returns the Sense id suffix 13) ItemSelectorWrapper ✔ passes the item ID to the entityselector widget on mount 14) LexemeHeader.newLexemeHeaderStore ✔ action save calls API with correct parameters and changes state using data from response ✔ action save on success mutates the state to start saving, updates state and finishes saving ✔ mutation finishSaving switches the isSaving flag to false ✔ mutation updateRevisionId changes baseRevId to given value ✔ failed save returns rejected promise with first error object if API returns multiple errors ✔ action save calls API with correct parameters when removing an item from the state ✔ mutation startSaving switches the isSaving flag to true ✔ mutation updateLanguage changes lexical category and the link to given values ✔ mutation updateLanguage changes language and languageLink to given values ✔ failed save returns rejected promise with a single error object ✔ mutation updateLemmas changes lemmas to given values 15) mutations ✔ REMOVE_REPRESENTATION removes representation leaving others with updated index ✔ DERIVE_REPRESENTATION_LANGUAGE_FROM_LEMMA changes representation language correctly ✔ REPLACE_ALL_REPRESENTATIONS replaces representations of correct form ✔ UPDATE_REPRESENTATION_LANGUAGE changes correct representation language ✔ UPDATE_REPRESENTATION_VALUE changes correct representation value ✔ ADD_REPRESENTATION adds a new representation to the right form 16) wikibase.lexeme.widgets.LemmaWidget ✔ can carry redundant lemma languages ✔ edit mode is false ✔ initialize widget with one lemma ✔ add a new lemma ✔ edit mode is true ✔ detects redundant lemma language to mark the individual languages ✔ detects redundant lemma languages to mark the widget ✔ remove a lemma ✔ marks-up the lemma term with the lemma language 17) mutationTypes ✔ uses unique ids for all mutation types 18) LemmaList ✔ remove ✔ getLemmas ✔ length ✔ add 19) copy ✔ creates an identical LemmaList ✔ clones Lemmas 20) equals ✔ ignores empty lemmas ✔ returns true for LemmaList with same lemmas ✔ returns false for objects that are not of type LemmaList ✔ returns false for LemmaList with different lemmas ✔ returns false for LemmaList of different length 21) wikibase.lexeme.widgets.LexemeHeader ✔ shows save button enabled when not unsaveable ✔ shows save button disabled without changes ✔ binds to lemma-widget hasRedundantLanguage event 22) hasChanges ✔ ignores added empty lemmas ✔ returns true when lexical category changes ✔ returns false by default ✔ returns true when lemmas change ✔ returns true when language changes ✔ cancel edit mode ✔ switch to edit mode ✔ save lemma list ✔ passes lemmas to LemmaWidget ✔ save lemma list with error ✔ passes language and lexical category to LanguageAndLexicalCategoryWidget 23) isUnsaveable ✔ returns true when there are changes but also lemmas with redundant languages ✔ returns true when there are no changes ✔ returns false by default ✔ returns true when there are changes but saving is ongoing ✔ shows save button disabled when unsaveable ✔ attempting to save with empty lemmas fails ✔ updates language and lexical category on save >> Done! Summary: Suites: 23 of 23 Specs: 121 of 121 Expects: 0 (0 failures) Finished in 0.496 seconds >> Successful! Running "stylelint:all" (stylelint) task >> Linted 8 files without errors Done. > test:snl-distnodiff > run-s snl:install snl:build snl:cp snl:diff > snl:install > npm -C $npm_package_config_snl_src i > new-lexeme-special-page@0.0.1 prepare > husky install husky - Git hooks installed added 1064 packages, and audited 1065 packages in 16s 156 packages are looking for funding run `npm fund` for details 22 vulnerabilities (13 moderate, 8 high, 1 critical) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. > snl:build > npm -C $npm_package_config_snl_src run build > new-lexeme-special-page@0.0.1 build > vite build vite v2.9.14 building for production... transforming... ✓ 81 modules transformed. rendering chunks... dist/style.css 26.29 KiB / gzip: 4.03 KiB dist/SpecialNewLexeme.cjs.js 97.90 KiB / gzip: 32.71 KiB > snl:cp > run-p snl:cp:* > snl:cp:css > cp $npm_package_config_snl_src/dist/$npm_package_config_snl_css $npm_package_config_snl_dist/ > snl:cp:cjs > cp $npm_package_config_snl_src/dist/$npm_package_config_snl_cjs $npm_package_config_snl_dist/ > snl:diff > git diff --exit-code $npm_package_config_snl_dist > test:snl-main > git -C $npm_package_config_snl_src branch --contains HEAD main | grep -q . > test:mwlibs > echo 'disabled (T297381)' # ZUUL_BRANCH=${ZUUL_BRANCH:-master} lib-version-check disabled (T297381) --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "@babel/traverse": { "name": "@babel/traverse", "severity": "critical", "isDirect": false, "via": [ { "source": 1096886, "name": "@babel/traverse", "dependency": "@babel/traverse", "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code", "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92", "severity": "critical", "cwe": [ "CWE-184", "CWE-697" ], "cvss": { "score": 9.4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H" }, "range": "<7.23.2" } ], "effects": [], "range": "<7.23.2", "nodes": [ "node_modules/@babel/traverse" ], "fixAvailable": true }, "@wdio/cli": { "name": "@wdio/cli", "severity": "high", "isDirect": true, "via": [ "webdriverio" ], "effects": [], "range": "7.16.5 - 8.40.6", "nodes": [ "node_modules/@wdio/cli" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.2.12", "isSemVerMajor": true } }, "@wdio/local-runner": { "name": "@wdio/local-runner", "severity": "high", "isDirect": true, "via": [ "@wdio/runner" ], "effects": [], "range": "7.16.5 - 8.40.6", "nodes": [ "node_modules/@wdio/local-runner" ], "fixAvailable": { "name": "@wdio/local-runner", "version": "9.2.12", "isSemVerMajor": true } }, "@wdio/runner": { "name": "@wdio/runner", "severity": "high", "isDirect": false, "via": [ "webdriverio" ], "effects": [ "@wdio/local-runner" ], "range": "7.16.5 - 8.40.6", "nodes": [ "node_modules/@wdio/runner" ], "fixAvailable": { "name": "@wdio/local-runner", "version": "9.2.12", "isSemVerMajor": true } }, "@wdio/sync": { "name": "@wdio/sync", "severity": "high", "isDirect": true, "via": [ "webdriverio" ], "effects": [], "range": ">=7.16.5", "nodes": [ "node_modules/@wdio/sync" ], "fixAvailable": { "name": "@wdio/sync", "version": "7.14.1", "isSemVerMajor": true } }, "@xmldom/xmldom": { "name": "@xmldom/xmldom", "severity": "critical", "isDirect": false, "via": [ { "source": 1091572, "name": "@xmldom/xmldom", "dependency": "@xmldom/xmldom", "title": "xmldom allows multiple root nodes in a DOM", "url": "https://github.com/advisories/GHSA-crh6-fp67-6883", "severity": "critical", "cwe": [ "CWE-20", "CWE-1288" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": "<0.7.7" } ], "effects": [], "range": "<0.7.7", "nodes": [ "node_modules/@xmldom/xmldom" ], "fixAvailable": true }, "autoprefixer": { "name": "autoprefixer", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "1.0.20131222 - 9.8.8", "nodes": [ "node_modules/autoprefixer" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "braces": { "name": "braces", "severity": "high", "isDirect": false, "via": [ { "source": 1098094, "name": "braces", "dependency": "braces", "title": "Uncontrolled resource consumption in braces", "url": "https://github.com/advisories/GHSA-grv7-fg5c-xmjg", "severity": "high", "cwe": [ "CWE-400", "CWE-1050" ], "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": "<3.0.3" } ], "effects": [], "range": "<3.0.3", "nodes": [ "node_modules/braces" ], "fixAvailable": true }, "devtools": { "name": "devtools", "severity": "high", "isDirect": false, "via": [ "puppeteer-core" ], "effects": [], "range": ">=7.16.5", "nodes": [ "node_modules/@wdio/runner/node_modules/devtools", "node_modules/devtools" ], "fixAvailable": true }, "diff": { "name": "diff", "severity": "high", "isDirect": false, "via": [ { "source": 1095029, "name": "diff", "dependency": "diff", "title": "Regular Expression Denial of Service (ReDoS)", "url": "https://github.com/advisories/GHSA-h6ch-v84p-w6p9", "severity": "high", "cwe": [ "CWE-400" ], "cvss": { "score": 0, "vectorString": null }, "range": "<3.5.0" } ], "effects": [ "unexpected" ], "range": "<3.5.0", "nodes": [ "node_modules/unexpected/node_modules/diff" ], "fixAvailable": { "name": "unexpected", "version": "13.2.1", "isSemVerMajor": true } }, "ejs": { "name": "ejs", "severity": "critical", "isDirect": false, "via": [ { "source": 1089270, "name": "ejs", "dependency": "ejs", "title": "ejs template injection vulnerability", "url": "https://github.com/advisories/GHSA-phwq-j96m-2c2q", "severity": "critical", "cwe": [ "CWE-74" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": "<3.1.7" }, { "source": 1098366, "name": "ejs", "dependency": "ejs", "title": "ejs lacks certain pollution protection", "url": "https://github.com/advisories/GHSA-ghr5-ch3p-vcr6", "severity": "moderate", "cwe": [ "CWE-693", "CWE-1321" ], "cvss": { "score": 4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<3.1.10" } ], "effects": [], "range": "<=3.1.9", "nodes": [ "node_modules/ejs" ], "fixAvailable": true }, "eslint-config-wikimedia": { "name": "eslint-config-wikimedia", "severity": "high", "isDirect": true, "via": [ "eslint-plugin-compat" ], "effects": [], "range": "0.18.0 - 0.21.0", "nodes": [ "node_modules/eslint-config-wikimedia" ], "fixAvailable": { "name": "eslint-config-wikimedia", "version": "0.28.2", "isSemVerMajor": true } }, "eslint-plugin-compat": { "name": "eslint-plugin-compat", "severity": "high", "isDirect": false, "via": [ "semver" ], "effects": [ "eslint-config-wikimedia" ], "range": "3.6.0-0 - 4.1.4", "nodes": [ "node_modules/eslint-plugin-compat" ], "fixAvailable": { "name": "eslint-config-wikimedia", "version": "0.28.2", "isSemVerMajor": true } }, "got": { "name": "got", "severity": "moderate", "isDirect": false, "via": [ { "source": 1088948, "name": "got", "dependency": "got", "title": "Got allows a redirect to a UNIX socket", "url": "https://github.com/advisories/GHSA-pfrx-2q88-qq97", "severity": "moderate", "cwe": [], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N" }, "range": "<11.8.5" } ], "effects": [], "range": "<11.8.5", "nodes": [ "node_modules/got" ], "fixAvailable": true }, "grunt-stylelint": { "name": "grunt-stylelint", "severity": "moderate", "isDirect": true, "via": [ "stylelint" ], "effects": [], "range": "<=0.16.0", "nodes": [ "node_modules/grunt-stylelint" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "http-cache-semantics": { "name": "http-cache-semantics", "severity": "high", "isDirect": false, "via": [ { "source": 1092316, "name": "http-cache-semantics", "dependency": "http-cache-semantics", "title": "http-cache-semantics vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-rc47-6667-2j5j", "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": "<4.1.1" } ], "effects": [], "range": "<4.1.1", "nodes": [ "node_modules/http-cache-semantics" ], "fixAvailable": true }, "json5": { "name": "json5", "severity": "high", "isDirect": false, "via": [ { "source": 1096544, "name": "json5", "dependency": "json5", "title": "Prototype Pollution in JSON5 via Parse Method", "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h", "severity": "high", "cwe": [ "CWE-1321" ], "cvss": { "score": 7.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H" }, "range": ">=2.0.0 <2.2.2" } ], "effects": [], "range": "2.0.0 - 2.2.1", "nodes": [ "node_modules/json5" ], "fixAvailable": true }, "micromatch": { "name": "micromatch", "severity": "moderate", "isDirect": false, "via": [ { "source": 1098681, "name": "micromatch", "dependency": "micromatch", "title": "Regular Expression Denial of Service (ReDoS) in micromatch", "url": "https://github.com/advisories/GHSA-952p-6rrq-rcjv", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<4.0.8" } ], "effects": [], "range": "<4.0.8", "nodes": [ "node_modules/micromatch" ], "fixAvailable": true }, "minimatch": { "name": "minimatch", "severity": "high", "isDirect": false, "via": [ { "source": 1096485, "name": "minimatch", "dependency": "minimatch", "title": "minimatch ReDoS vulnerability", "url": "https://github.com/advisories/GHSA-f8q6-p94x-37v3", "severity": "high", "cwe": [ "CWE-400", "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": "<3.0.5" } ], "effects": [ "mocha", "recursive-readdir" ], "range": "<3.0.5", "nodes": [ "node_modules/minimatch" ], "fixAvailable": true }, "minimist": { "name": "minimist", "severity": "critical", "isDirect": false, "via": [ { "source": 1097678, "name": "minimist", "dependency": "minimist", "title": "Prototype Pollution in minimist", "url": "https://github.com/advisories/GHSA-xvch-5gv4-984h", "severity": "critical", "cwe": [ "CWE-1321" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": ">=1.0.0 <1.2.6" } ], "effects": [], "range": "1.0.0 - 1.2.5", "nodes": [ "node_modules/minimist" ], "fixAvailable": true }, "mocha": { "name": "mocha", "severity": "high", "isDirect": false, "via": [ "minimatch", "nanoid" ], "effects": [], "range": "5.1.0 - 9.2.1", "nodes": [ "node_modules/mocha" ], "fixAvailable": true }, "mwbot": { "name": "mwbot", "severity": "high", "isDirect": false, "via": [ "request", "semver" ], "effects": [ "wdio-mediawiki" ], "range": ">=0.1.6", "nodes": [ "node_modules/mwbot" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "nanoid": { "name": "nanoid", "severity": "moderate", "isDirect": false, "via": [ { "source": 1089011, "name": "nanoid", "dependency": "nanoid", "title": "Exposure of Sensitive Information to an Unauthorized Actor in nanoid", "url": "https://github.com/advisories/GHSA-qrpm-p2h7-hrv2", "severity": "moderate", "cwe": [ "CWE-200" ], "cvss": { "score": 5.5, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N" }, "range": ">=3.0.0 <3.1.31" } ], "effects": [ "mocha" ], "range": "3.0.0 - 3.1.30", "nodes": [ "node_modules/nanoid" ], "fixAvailable": true }, "path-to-regexp": { "name": "path-to-regexp", "severity": "high", "isDirect": false, "via": [ { "source": 1099561, "name": "path-to-regexp", "dependency": "path-to-regexp", "title": "path-to-regexp outputs backtracking regular expressions", "url": "https://github.com/advisories/GHSA-9wv6-86v2-598j", "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": ">=0.2.0 <1.9.0" } ], "effects": [], "range": "0.2.0 - 1.8.0", "nodes": [ "node_modules/path-to-regexp" ], "fixAvailable": true }, "postcss": { "name": "postcss", "severity": "moderate", "isDirect": false, "via": [ { "source": 1094544, "name": "postcss", "dependency": "postcss", "title": "PostCSS line return parsing error", "url": "https://github.com/advisories/GHSA-7fh5-64p2-3v2j", "severity": "moderate", "cwe": [ "CWE-74", "CWE-144" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N" }, "range": "<8.4.31" } ], "effects": [ "autoprefixer", "postcss-less", "postcss-safe-parser", "postcss-sass", "postcss-scss", "stylelint", "sugarss" ], "range": "<8.4.31", "nodes": [ "node_modules/autoprefixer/node_modules/postcss", "node_modules/postcss", "node_modules/postcss-less/node_modules/postcss", "node_modules/postcss-safe-parser/node_modules/postcss", "node_modules/postcss-sass/node_modules/postcss", "node_modules/postcss-scss/node_modules/postcss", "node_modules/stylelint/node_modules/postcss", "node_modules/sugarss/node_modules/postcss" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "postcss-less": { "name": "postcss-less", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [], "range": "<=3.1.4", "nodes": [ "node_modules/postcss-less" ], "fixAvailable": true }, "postcss-safe-parser": { "name": "postcss-safe-parser", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "<=4.0.2", "nodes": [ "node_modules/postcss-safe-parser" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "postcss-sass": { "name": "postcss-sass", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "<=0.4.4", "nodes": [ "node_modules/postcss-sass" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "postcss-scss": { "name": "postcss-scss", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "<=2.1.1", "nodes": [ "node_modules/postcss-scss" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "prismjs": { "name": "prismjs", "severity": "high", "isDirect": false, "via": [ { "source": 1090424, "name": "prismjs", "dependency": "prismjs", "title": "Cross-site Scripting in Prism", "url": "https://github.com/advisories/GHSA-3949-f494-cm99", "severity": "high", "cwe": [ "CWE-79" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:L" }, "range": ">=1.14.0 <1.27.0" } ], "effects": [], "range": "1.14.0 - 1.26.0", "nodes": [ "node_modules/prismjs" ], "fixAvailable": true }, "puppeteer-core": { "name": "puppeteer-core", "severity": "high", "isDirect": false, "via": [ "ws" ], "effects": [ "devtools", "webdriverio" ], "range": "11.0.0 - 22.11.1", "nodes": [ "node_modules/puppeteer-core" ], "fixAvailable": { "name": "webdriverio", "version": "9.2.12", "isSemVerMajor": true } }, "recursive-readdir": { "name": "recursive-readdir", "severity": "high", "isDirect": false, "via": [ "minimatch" ], "effects": [], "range": "1.2.0 - 2.2.2", "nodes": [ "node_modules/recursive-readdir" ], "fixAvailable": true }, "request": { "name": "request", "severity": "moderate", "isDirect": true, "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" }, "tough-cookie" ], "effects": [ "mwbot" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "semver": { "name": "semver", "severity": "high", "isDirect": false, "via": [ { "source": 1098562, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "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": ">=7.0.0 <7.5.2" }, { "source": 1098563, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "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": "<5.7.2" }, { "source": 1098564, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "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.0 <6.3.1" } ], "effects": [ "eslint-plugin-compat", "mwbot" ], "range": "<=5.7.1 || 6.0.0 - 6.3.0 || 7.0.0 - 7.5.1", "nodes": [ "node_modules/@babel/core/node_modules/semver", "node_modules/@babel/helper-compilation-targets/node_modules/semver", "node_modules/cac/node_modules/semver", "node_modules/eslint-plugin-node/node_modules/semver", "node_modules/eslint-plugin-vue/node_modules/semver", "node_modules/mwbot/node_modules/semver", "node_modules/npm-run-all/node_modules/semver", "node_modules/read-pkg/node_modules/semver", "node_modules/semver", "node_modules/vue-eslint-parser/node_modules/semver" ], "fixAvailable": { "name": "eslint-config-wikimedia", "version": "0.28.2", "isSemVerMajor": true } }, "stylelint": { "name": "stylelint", "severity": "moderate", "isDirect": false, "via": [ "autoprefixer", "postcss", "postcss-less", "postcss-safe-parser", "postcss-sass", "postcss-scss", "sugarss" ], "effects": [ "grunt-stylelint" ], "range": "0.1.0 - 13.13.1", "nodes": [ "node_modules/stylelint" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "sugarss": { "name": "sugarss", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "<=2.0.0", "nodes": [ "node_modules/sugarss" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "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", "node_modules/tough-cookie" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "ua-parser-js": { "name": "ua-parser-js", "severity": "high", "isDirect": false, "via": [ { "source": 1092302, "name": "ua-parser-js", "dependency": "ua-parser-js", "title": "ReDoS Vulnerability in ua-parser-js version", "url": "https://github.com/advisories/GHSA-fhg7-m89q-25r3", "severity": "high", "cwe": [ "CWE-400", "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": ">=0.8.0 <1.0.33" } ], "effects": [], "range": "0.8.1 - 1.0.32", "nodes": [ "node_modules/ua-parser-js" ], "fixAvailable": true }, "unexpected": { "name": "unexpected", "severity": "high", "isDirect": true, "via": [ "diff" ], "effects": [], "range": "5.0.0-beta1 - 11.0.0", "nodes": [ "node_modules/unexpected" ], "fixAvailable": { "name": "unexpected", "version": "13.2.1", "isSemVerMajor": true } }, "vue": { "name": "vue", "severity": "low", "isDirect": true, "via": [ { "source": 1100238, "name": "vue", "dependency": "vue", "title": "ReDoS vulnerability in vue package that is exploitable through inefficient regex evaluation in the parseHTML function", "url": "https://github.com/advisories/GHSA-5j4c-8p2g-v4jx", "severity": "low", "cwe": [ "CWE-1333" ], "cvss": { "score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": ">=2.0.0-alpha.1 <3.0.0-alpha.0" } ], "effects": [ "vuex" ], "range": "2.0.0-alpha.1 - 2.7.16", "nodes": [ "node_modules/vue" ], "fixAvailable": { "name": "vue", "version": "3.5.12", "isSemVerMajor": true } }, "vuex": { "name": "vuex", "severity": "low", "isDirect": true, "via": [ "vue" ], "effects": [], "range": "3.1.3 - 3.6.2", "nodes": [ "node_modules/vuex" ], "fixAvailable": { "name": "vuex", "version": "4.1.0", "isSemVerMajor": true } }, "wdio-mediawiki": { "name": "wdio-mediawiki", "severity": "high", "isDirect": true, "via": [ "mwbot" ], "effects": [ "wdio-wikibase" ], "range": "1.1.0 - 2.2.0", "nodes": [ "node_modules/wdio-mediawiki" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "wdio-wikibase": { "name": "wdio-wikibase", "severity": "high", "isDirect": true, "via": [ "wdio-mediawiki" ], "effects": [], "range": "5.1.0 - 5.2.0", "nodes": [ "node_modules/wdio-wikibase" ], "fixAvailable": { "name": "wdio-wikibase", "version": "6.0.3", "isSemVerMajor": true } }, "webdriverio": { "name": "webdriverio", "severity": "high", "isDirect": true, "via": [ "devtools", "puppeteer-core" ], "effects": [ "@wdio/cli", "@wdio/runner", "@wdio/sync" ], "range": "7.16.5 - 8.40.6", "nodes": [ "node_modules/@wdio/runner/node_modules/webdriverio", "node_modules/webdriverio" ], "fixAvailable": { "name": "webdriverio", "version": "9.2.12", "isSemVerMajor": true } }, "word-wrap": { "name": "word-wrap", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097681, "name": "word-wrap", "dependency": "word-wrap", "title": "word-wrap vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-j8xg-fqg3-53r7", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<1.2.4" } ], "effects": [], "range": "<1.2.4", "nodes": [ "node_modules/word-wrap" ], "fixAvailable": 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/ws" ], "fixAvailable": { "name": "webdriverio", "version": "9.2.12", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 2, "moderate": 15, "high": 25, "critical": 4, "total": 46 }, "dependencies": { "prod": 1, "dev": 1017, "optional": 2, "peer": 102, "peerOptional": 0, "total": 1017 } } } --- 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: '@wdio/sync@7.36.0', npm WARN EBADENGINE required: { node: '>=12.0.0 <16' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } --- stdout --- { "added": 73, "removed": 28, "changed": 88, "audited": 1062, "funding": 152, "audit": { "auditReportVersion": 2, "vulnerabilities": { "@babel/traverse": { "name": "@babel/traverse", "severity": "critical", "isDirect": false, "via": [ { "source": 1096886, "name": "@babel/traverse", "dependency": "@babel/traverse", "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code", "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92", "severity": "critical", "cwe": [ "CWE-184", "CWE-697" ], "cvss": { "score": 9.4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H" }, "range": "<7.23.2" } ], "effects": [], "range": "<7.23.2", "nodes": [ "" ], "fixAvailable": true }, "@wdio/cli": { "name": "@wdio/cli", "severity": "high", "isDirect": true, "via": [ "webdriverio" ], "effects": [], "range": "7.16.5 - 8.40.6", "nodes": [ "", "node_modules/@wdio/cli" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.2.12", "isSemVerMajor": true } }, "@wdio/local-runner": { "name": "@wdio/local-runner", "severity": "high", "isDirect": false, "via": [ "@wdio/runner" ], "effects": [], "range": "7.16.5 - 8.40.6", "nodes": [ "" ], "fixAvailable": { "name": "@wdio/local-runner", "version": "9.2.12", "isSemVerMajor": true } }, "@wdio/runner": { "name": "@wdio/runner", "severity": "high", "isDirect": false, "via": [ "webdriverio" ], "effects": [ "@wdio/local-runner" ], "range": "7.16.5 - 8.40.6", "nodes": [ "" ], "fixAvailable": { "name": "@wdio/local-runner", "version": "9.2.12", "isSemVerMajor": true } }, "@wdio/sync": { "name": "@wdio/sync", "severity": "high", "isDirect": false, "via": [ "webdriverio" ], "effects": [], "range": ">=7.16.5", "nodes": [ "" ], "fixAvailable": { "name": "@wdio/sync", "version": "7.14.1", "isSemVerMajor": true } }, "@xmldom/xmldom": { "name": "@xmldom/xmldom", "severity": "critical", "isDirect": false, "via": [ { "source": 1091572, "name": "@xmldom/xmldom", "dependency": "@xmldom/xmldom", "title": "xmldom allows multiple root nodes in a DOM", "url": "https://github.com/advisories/GHSA-crh6-fp67-6883", "severity": "critical", "cwe": [ "CWE-20", "CWE-1288" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": "<0.7.7" } ], "effects": [], "range": "<0.7.7", "nodes": [ "" ], "fixAvailable": true }, "autoprefixer": { "name": "autoprefixer", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "1.0.20131222 - 9.8.8", "nodes": [ "node_modules/autoprefixer" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "braces": { "name": "braces", "severity": "high", "isDirect": false, "via": [ { "source": 1098094, "name": "braces", "dependency": "braces", "title": "Uncontrolled resource consumption in braces", "url": "https://github.com/advisories/GHSA-grv7-fg5c-xmjg", "severity": "high", "cwe": [ "CWE-400", "CWE-1050" ], "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": "<3.0.3" } ], "effects": [], "range": "<3.0.3", "nodes": [ "" ], "fixAvailable": true }, "devtools": { "name": "devtools", "severity": "high", "isDirect": false, "via": [ "puppeteer-core" ], "effects": [], "range": ">=7.16.5", "nodes": [ "", "" ], "fixAvailable": true }, "diff": { "name": "diff", "severity": "high", "isDirect": false, "via": [ { "source": 1095029, "name": "diff", "dependency": "diff", "title": "Regular Expression Denial of Service (ReDoS)", "url": "https://github.com/advisories/GHSA-h6ch-v84p-w6p9", "severity": "high", "cwe": [ "CWE-400" ], "cvss": { "score": 0, "vectorString": null }, "range": "<3.5.0" } ], "effects": [ "unexpected" ], "range": "<3.5.0", "nodes": [ "" ], "fixAvailable": { "name": "unexpected", "version": "13.2.1", "isSemVerMajor": true } }, "ejs": { "name": "ejs", "severity": "critical", "isDirect": false, "via": [ { "source": 1089270, "name": "ejs", "dependency": "ejs", "title": "ejs template injection vulnerability", "url": "https://github.com/advisories/GHSA-phwq-j96m-2c2q", "severity": "critical", "cwe": [ "CWE-74" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": "<3.1.7" }, { "source": 1098366, "name": "ejs", "dependency": "ejs", "title": "ejs lacks certain pollution protection", "url": "https://github.com/advisories/GHSA-ghr5-ch3p-vcr6", "severity": "moderate", "cwe": [ "CWE-693", "CWE-1321" ], "cvss": { "score": 4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<3.1.10" } ], "effects": [], "range": "<=3.1.9", "nodes": [ "" ], "fixAvailable": true }, "eslint-config-wikimedia": { "name": "eslint-config-wikimedia", "severity": "high", "isDirect": true, "via": [ "eslint-plugin-compat" ], "effects": [], "range": "0.18.0 - 0.21.0", "nodes": [ "node_modules/eslint-config-wikimedia" ], "fixAvailable": { "name": "eslint-config-wikimedia", "version": "0.28.2", "isSemVerMajor": true } }, "eslint-plugin-compat": { "name": "eslint-plugin-compat", "severity": "high", "isDirect": false, "via": [ "semver" ], "effects": [ "eslint-config-wikimedia" ], "range": "3.6.0-0 - 4.1.4", "nodes": [ "node_modules/eslint-plugin-compat" ], "fixAvailable": { "name": "eslint-config-wikimedia", "version": "0.28.2", "isSemVerMajor": true } }, "got": { "name": "got", "severity": "moderate", "isDirect": false, "via": [ { "source": 1088948, "name": "got", "dependency": "got", "title": "Got allows a redirect to a UNIX socket", "url": "https://github.com/advisories/GHSA-pfrx-2q88-qq97", "severity": "moderate", "cwe": [], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N" }, "range": "<11.8.5" } ], "effects": [], "range": "<11.8.5", "nodes": [ "" ], "fixAvailable": true }, "grunt-stylelint": { "name": "grunt-stylelint", "severity": "moderate", "isDirect": true, "via": [ "stylelint" ], "effects": [], "range": "<=0.16.0", "nodes": [ "node_modules/grunt-stylelint" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "http-cache-semantics": { "name": "http-cache-semantics", "severity": "high", "isDirect": false, "via": [ { "source": 1092316, "name": "http-cache-semantics", "dependency": "http-cache-semantics", "title": "http-cache-semantics vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-rc47-6667-2j5j", "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": "<4.1.1" } ], "effects": [], "range": "<4.1.1", "nodes": [ "" ], "fixAvailable": true }, "json5": { "name": "json5", "severity": "high", "isDirect": false, "via": [ { "source": 1096544, "name": "json5", "dependency": "json5", "title": "Prototype Pollution in JSON5 via Parse Method", "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h", "severity": "high", "cwe": [ "CWE-1321" ], "cvss": { "score": 7.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H" }, "range": ">=2.0.0 <2.2.2" } ], "effects": [], "range": "2.0.0 - 2.2.1", "nodes": [ "" ], "fixAvailable": true }, "micromatch": { "name": "micromatch", "severity": "moderate", "isDirect": false, "via": [ { "source": 1098681, "name": "micromatch", "dependency": "micromatch", "title": "Regular Expression Denial of Service (ReDoS) in micromatch", "url": "https://github.com/advisories/GHSA-952p-6rrq-rcjv", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<4.0.8" } ], "effects": [], "range": "<4.0.8", "nodes": [ "" ], "fixAvailable": true }, "minimatch": { "name": "minimatch", "severity": "high", "isDirect": false, "via": [ { "source": 1096485, "name": "minimatch", "dependency": "minimatch", "title": "minimatch ReDoS vulnerability", "url": "https://github.com/advisories/GHSA-f8q6-p94x-37v3", "severity": "high", "cwe": [ "CWE-400", "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": "<3.0.5" } ], "effects": [ "mocha", "recursive-readdir" ], "range": "<3.0.5", "nodes": [ "node_modules/minimatch" ], "fixAvailable": true }, "minimist": { "name": "minimist", "severity": "critical", "isDirect": false, "via": [ { "source": 1097678, "name": "minimist", "dependency": "minimist", "title": "Prototype Pollution in minimist", "url": "https://github.com/advisories/GHSA-xvch-5gv4-984h", "severity": "critical", "cwe": [ "CWE-1321" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": ">=1.0.0 <1.2.6" } ], "effects": [], "range": "1.0.0 - 1.2.5", "nodes": [ "" ], "fixAvailable": true }, "mocha": { "name": "mocha", "severity": "high", "isDirect": false, "via": [ "minimatch", "nanoid" ], "effects": [], "range": "5.1.0 - 9.2.1", "nodes": [ "" ], "fixAvailable": true }, "mwbot": { "name": "mwbot", "severity": "high", "isDirect": false, "via": [ "request", "semver" ], "effects": [ "wdio-mediawiki" ], "range": ">=0.1.6", "nodes": [ "node_modules/mwbot" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "nanoid": { "name": "nanoid", "severity": "moderate", "isDirect": false, "via": [ { "source": 1089011, "name": "nanoid", "dependency": "nanoid", "title": "Exposure of Sensitive Information to an Unauthorized Actor in nanoid", "url": "https://github.com/advisories/GHSA-qrpm-p2h7-hrv2", "severity": "moderate", "cwe": [ "CWE-200" ], "cvss": { "score": 5.5, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N" }, "range": ">=3.0.0 <3.1.31" } ], "effects": [ "mocha" ], "range": "3.0.0 - 3.1.30", "nodes": [ "" ], "fixAvailable": true }, "path-to-regexp": { "name": "path-to-regexp", "severity": "high", "isDirect": false, "via": [ { "source": 1099561, "name": "path-to-regexp", "dependency": "path-to-regexp", "title": "path-to-regexp outputs backtracking regular expressions", "url": "https://github.com/advisories/GHSA-9wv6-86v2-598j", "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": ">=0.2.0 <1.9.0" } ], "effects": [], "range": "0.2.0 - 1.8.0", "nodes": [ "" ], "fixAvailable": true }, "postcss": { "name": "postcss", "severity": "moderate", "isDirect": false, "via": [ { "source": 1094544, "name": "postcss", "dependency": "postcss", "title": "PostCSS line return parsing error", "url": "https://github.com/advisories/GHSA-7fh5-64p2-3v2j", "severity": "moderate", "cwe": [ "CWE-74", "CWE-144" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N" }, "range": "<8.4.31" } ], "effects": [ "autoprefixer", "postcss-less", "postcss-safe-parser", "postcss-sass", "postcss-scss", "stylelint", "sugarss" ], "range": "<8.4.31", "nodes": [ "", "node_modules/autoprefixer/node_modules/postcss", "node_modules/postcss-less/node_modules/postcss", "node_modules/postcss-safe-parser/node_modules/postcss", "node_modules/postcss-sass/node_modules/postcss", "node_modules/postcss-scss/node_modules/postcss", "node_modules/stylelint/node_modules/postcss", "node_modules/sugarss/node_modules/postcss" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "postcss-less": { "name": "postcss-less", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "<=3.1.4", "nodes": [ "node_modules/postcss-less" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "postcss-safe-parser": { "name": "postcss-safe-parser", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "<=4.0.2", "nodes": [ "node_modules/postcss-safe-parser" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "postcss-sass": { "name": "postcss-sass", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "<=0.4.4", "nodes": [ "node_modules/postcss-sass" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "postcss-scss": { "name": "postcss-scss", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [ "stylelint" ], "range": "<=2.1.1", "nodes": [ "node_modules/postcss-scss" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "prismjs": { "name": "prismjs", "severity": "high", "isDirect": false, "via": [ { "source": 1090424, "name": "prismjs", "dependency": "prismjs", "title": "Cross-site Scripting in Prism", "url": "https://github.com/advisories/GHSA-3949-f494-cm99", "severity": "high", "cwe": [ "CWE-79" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:L" }, "range": ">=1.14.0 <1.27.0" } ], "effects": [], "range": "1.14.0 - 1.26.0", "nodes": [ "" ], "fixAvailable": true }, "puppeteer-core": { "name": "puppeteer-core", "severity": "high", "isDirect": false, "via": [ "ws" ], "effects": [ "devtools", "webdriverio" ], "range": "11.0.0 - 22.11.1", "nodes": [ "" ], "fixAvailable": { "name": "webdriverio", "version": "9.2.12", "isSemVerMajor": true } }, "recursive-readdir": { "name": "recursive-readdir", "severity": "high", "isDirect": false, "via": [ "minimatch" ], "effects": [], "range": "1.2.0 - 2.2.2", "nodes": [ "" ], "fixAvailable": true }, "request": { "name": "request", "severity": "moderate", "isDirect": true, "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" }, "tough-cookie" ], "effects": [ "mwbot" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "semver": { "name": "semver", "severity": "high", "isDirect": false, "via": [ { "source": 1098562, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "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": ">=7.0.0 <7.5.2" }, { "source": 1098563, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "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": "<5.7.2" }, { "source": 1098564, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "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.0 <6.3.1" } ], "effects": [ "eslint-plugin-compat", "mwbot" ], "range": "<=5.7.1 || 6.0.0 - 6.3.0 || 7.0.0 - 7.5.1", "nodes": [ "", "", "", "", "", "", "", "", "node_modules/mwbot/node_modules/semver", "node_modules/semver" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "stylelint": { "name": "stylelint", "severity": "moderate", "isDirect": false, "via": [ "autoprefixer", "postcss", "postcss-less", "postcss-safe-parser", "postcss-sass", "postcss-scss", "sugarss" ], "effects": [ "grunt-stylelint" ], "range": "0.1.0 - 13.13.1", "nodes": [ "node_modules/stylelint" ], "fixAvailable": { "name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true } }, "sugarss": { "name": "sugarss", "severity": "moderate", "isDirect": false, "via": [ "postcss" ], "effects": [], "range": "<=2.0.0", "nodes": [ "node_modules/sugarss" ], "fixAvailable": true }, "tough-cookie": { "name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": [ "CWE-1321" ], "cvss": { "score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, "range": "<4.1.3" } ], "effects": [ "request" ], "range": "<4.1.3", "nodes": [ "", "node_modules/request/node_modules/tough-cookie" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "ua-parser-js": { "name": "ua-parser-js", "severity": "high", "isDirect": false, "via": [ { "source": 1092302, "name": "ua-parser-js", "dependency": "ua-parser-js", "title": "ReDoS Vulnerability in ua-parser-js version", "url": "https://github.com/advisories/GHSA-fhg7-m89q-25r3", "severity": "high", "cwe": [ "CWE-400", "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": ">=0.8.0 <1.0.33" } ], "effects": [], "range": "0.8.1 - 1.0.32", "nodes": [ "" ], "fixAvailable": true }, "unexpected": { "name": "unexpected", "severity": "high", "isDirect": true, "via": [ "diff" ], "effects": [], "range": "5.0.0-beta1 - 11.0.0", "nodes": [ "node_modules/unexpected" ], "fixAvailable": { "name": "unexpected", "version": "13.2.1", "isSemVerMajor": true } }, "vue": { "name": "vue", "severity": "low", "isDirect": true, "via": [ { "source": 1100238, "name": "vue", "dependency": "vue", "title": "ReDoS vulnerability in vue package that is exploitable through inefficient regex evaluation in the parseHTML function", "url": "https://github.com/advisories/GHSA-5j4c-8p2g-v4jx", "severity": "low", "cwe": [ "CWE-1333" ], "cvss": { "score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": ">=2.0.0-alpha.1 <3.0.0-alpha.0" } ], "effects": [ "vuex" ], "range": "2.0.0-alpha.1 - 2.7.16", "nodes": [ "", "node_modules/vue" ], "fixAvailable": { "name": "vue", "version": "3.5.12", "isSemVerMajor": true } }, "vuex": { "name": "vuex", "severity": "low", "isDirect": true, "via": [ "vue" ], "effects": [], "range": "3.1.3 - 3.6.2", "nodes": [ "node_modules/vuex" ], "fixAvailable": { "name": "vuex", "version": "4.1.0", "isSemVerMajor": true } }, "wdio-mediawiki": { "name": "wdio-mediawiki", "severity": "high", "isDirect": true, "via": [ "mwbot" ], "effects": [ "wdio-wikibase" ], "range": "1.1.0 - 2.2.0", "nodes": [ "node_modules/wdio-mediawiki" ], "fixAvailable": { "name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true } }, "wdio-wikibase": { "name": "wdio-wikibase", "severity": "high", "isDirect": true, "via": [ "wdio-mediawiki" ], "effects": [], "range": "5.1.0 - 5.2.0", "nodes": [ "node_modules/wdio-wikibase" ], "fixAvailable": { "name": "wdio-wikibase", "version": "6.0.3", "isSemVerMajor": true } }, "webdriverio": { "name": "webdriverio", "severity": "high", "isDirect": true, "via": [ "devtools", "puppeteer-core" ], "effects": [ "@wdio/cli", "@wdio/runner", "@wdio/sync" ], "range": "7.16.5 - 8.40.6", "nodes": [ "", "", "node_modules/webdriverio" ], "fixAvailable": { "name": "webdriverio", "version": "9.2.12", "isSemVerMajor": true } }, "word-wrap": { "name": "word-wrap", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097681, "name": "word-wrap", "dependency": "word-wrap", "title": "word-wrap vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-j8xg-fqg3-53r7", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<1.2.4" } ], "effects": [], "range": "<1.2.4", "nodes": [ "" ], "fixAvailable": 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": [ "" ], "fixAvailable": { "name": "webdriverio", "version": "9.2.12", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 2, "moderate": 15, "high": 25, "critical": 4, "total": 46 }, "dependencies": { "prod": 1, "dev": 1061, "optional": 3, "peer": 100, "peerOptional": 0, "total": 1061 } } } } --- end --- {"added": 73, "removed": 28, "changed": 88, "audited": 1062, "funding": 152, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@babel/traverse": {"name": "@babel/traverse", "severity": "critical", "isDirect": false, "via": [{"source": 1096886, "name": "@babel/traverse", "dependency": "@babel/traverse", "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code", "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92", "severity": "critical", "cwe": ["CWE-184", "CWE-697"], "cvss": {"score": 9.4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"}, "range": "<7.23.2"}], "effects": [], "range": "<7.23.2", "nodes": [""], "fixAvailable": true}, "@wdio/cli": {"name": "@wdio/cli", "severity": "high", "isDirect": true, "via": ["webdriverio"], "effects": [], "range": "7.16.5 - 8.40.6", "nodes": ["", "node_modules/@wdio/cli"], "fixAvailable": {"name": "@wdio/cli", "version": "9.2.12", "isSemVerMajor": true}}, "@wdio/local-runner": {"name": "@wdio/local-runner", "severity": "high", "isDirect": false, "via": ["@wdio/runner"], "effects": [], "range": "7.16.5 - 8.40.6", "nodes": [""], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.2.12", "isSemVerMajor": true}}, "@wdio/runner": {"name": "@wdio/runner", "severity": "high", "isDirect": false, "via": ["webdriverio"], "effects": ["@wdio/local-runner"], "range": "7.16.5 - 8.40.6", "nodes": [""], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.2.12", "isSemVerMajor": true}}, "@wdio/sync": {"name": "@wdio/sync", "severity": "high", "isDirect": false, "via": ["webdriverio"], "effects": [], "range": ">=7.16.5", "nodes": [""], "fixAvailable": {"name": "@wdio/sync", "version": "7.14.1", "isSemVerMajor": true}}, "@xmldom/xmldom": {"name": "@xmldom/xmldom", "severity": "critical", "isDirect": false, "via": [{"source": 1091572, "name": "@xmldom/xmldom", "dependency": "@xmldom/xmldom", "title": "xmldom allows multiple root nodes in a DOM", "url": "https://github.com/advisories/GHSA-crh6-fp67-6883", "severity": "critical", "cwe": ["CWE-20", "CWE-1288"], "cvss": {"score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}, "range": "<0.7.7"}], "effects": [], "range": "<0.7.7", "nodes": [""], "fixAvailable": true}, "autoprefixer": {"name": "autoprefixer", "severity": "moderate", "isDirect": false, "via": ["postcss"], "effects": ["stylelint"], "range": "1.0.20131222 - 9.8.8", "nodes": ["node_modules/autoprefixer"], "fixAvailable": {"name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true}}, "braces": {"name": "braces", "severity": "high", "isDirect": false, "via": [{"source": 1098094, "name": "braces", "dependency": "braces", "title": "Uncontrolled resource consumption in braces", "url": "https://github.com/advisories/GHSA-grv7-fg5c-xmjg", "severity": "high", "cwe": ["CWE-400", "CWE-1050"], "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": "<3.0.3"}], "effects": [], "range": "<3.0.3", "nodes": [""], "fixAvailable": true}, "devtools": {"name": "devtools", "severity": "high", "isDirect": false, "via": ["puppeteer-core"], "effects": [], "range": ">=7.16.5", "nodes": ["", ""], "fixAvailable": true}, "diff": {"name": "diff", "severity": "high", "isDirect": false, "via": [{"source": 1095029, "name": "diff", "dependency": "diff", "title": "Regular Expression Denial of Service (ReDoS)", "url": "https://github.com/advisories/GHSA-h6ch-v84p-w6p9", "severity": "high", "cwe": ["CWE-400"], "cvss": {"score": 0, "vectorString": null}, "range": "<3.5.0"}], "effects": ["unexpected"], "range": "<3.5.0", "nodes": [""], "fixAvailable": {"name": "unexpected", "version": "13.2.1", "isSemVerMajor": true}}, "ejs": {"name": "ejs", "severity": "critical", "isDirect": false, "via": [{"source": 1089270, "name": "ejs", "dependency": "ejs", "title": "ejs template injection vulnerability", "url": "https://github.com/advisories/GHSA-phwq-j96m-2c2q", "severity": "critical", "cwe": ["CWE-74"], "cvss": {"score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}, "range": "<3.1.7"}, {"source": 1098366, "name": "ejs", "dependency": "ejs", "title": "ejs lacks certain pollution protection", "url": "https://github.com/advisories/GHSA-ghr5-ch3p-vcr6", "severity": "moderate", "cwe": ["CWE-693", "CWE-1321"], "cvss": {"score": 4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<3.1.10"}], "effects": [], "range": "<=3.1.9", "nodes": [""], "fixAvailable": true}, "eslint-config-wikimedia": {"name": "eslint-config-wikimedia", "severity": "high", "isDirect": true, "via": ["eslint-plugin-compat"], "effects": [], "range": "0.18.0 - 0.21.0", "nodes": ["node_modules/eslint-config-wikimedia"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.28.2", "isSemVerMajor": true}}, "eslint-plugin-compat": {"name": "eslint-plugin-compat", "severity": "high", "isDirect": false, "via": ["semver"], "effects": ["eslint-config-wikimedia"], "range": "3.6.0-0 - 4.1.4", "nodes": ["node_modules/eslint-plugin-compat"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.28.2", "isSemVerMajor": true}}, "got": {"name": "got", "severity": "moderate", "isDirect": false, "via": [{"source": 1088948, "name": "got", "dependency": "got", "title": "Got allows a redirect to a UNIX socket", "url": "https://github.com/advisories/GHSA-pfrx-2q88-qq97", "severity": "moderate", "cwe": [], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": "<11.8.5"}], "effects": [], "range": "<11.8.5", "nodes": [""], "fixAvailable": true}, "grunt-stylelint": {"name": "grunt-stylelint", "severity": "moderate", "isDirect": true, "via": ["stylelint"], "effects": [], "range": "<=0.16.0", "nodes": ["node_modules/grunt-stylelint"], "fixAvailable": {"name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true}}, "http-cache-semantics": {"name": "http-cache-semantics", "severity": "high", "isDirect": false, "via": [{"source": 1092316, "name": "http-cache-semantics", "dependency": "http-cache-semantics", "title": "http-cache-semantics vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-rc47-6667-2j5j", "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": "<4.1.1"}], "effects": [], "range": "<4.1.1", "nodes": [""], "fixAvailable": true}, "json5": {"name": "json5", "severity": "high", "isDirect": false, "via": [{"source": 1096544, "name": "json5", "dependency": "json5", "title": "Prototype Pollution in JSON5 via Parse Method", "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h", "severity": "high", "cwe": ["CWE-1321"], "cvss": {"score": 7.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"}, "range": ">=2.0.0 <2.2.2"}], "effects": [], "range": "2.0.0 - 2.2.1", "nodes": [""], "fixAvailable": true}, "micromatch": {"name": "micromatch", "severity": "moderate", "isDirect": false, "via": [{"source": 1098681, "name": "micromatch", "dependency": "micromatch", "title": "Regular Expression Denial of Service (ReDoS) in micromatch", "url": "https://github.com/advisories/GHSA-952p-6rrq-rcjv", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<4.0.8"}], "effects": [], "range": "<4.0.8", "nodes": [""], "fixAvailable": true}, "minimatch": {"name": "minimatch", "severity": "high", "isDirect": false, "via": [{"source": 1096485, "name": "minimatch", "dependency": "minimatch", "title": "minimatch ReDoS vulnerability", "url": "https://github.com/advisories/GHSA-f8q6-p94x-37v3", "severity": "high", "cwe": ["CWE-400", "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": "<3.0.5"}], "effects": ["mocha", "recursive-readdir"], "range": "<3.0.5", "nodes": ["node_modules/minimatch"], "fixAvailable": true}, "minimist": {"name": "minimist", "severity": "critical", "isDirect": false, "via": [{"source": 1097678, "name": "minimist", "dependency": "minimist", "title": "Prototype Pollution in minimist", "url": "https://github.com/advisories/GHSA-xvch-5gv4-984h", "severity": "critical", "cwe": ["CWE-1321"], "cvss": {"score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}, "range": ">=1.0.0 <1.2.6"}], "effects": [], "range": "1.0.0 - 1.2.5", "nodes": [""], "fixAvailable": true}, "mocha": {"name": "mocha", "severity": "high", "isDirect": false, "via": ["minimatch", "nanoid"], "effects": [], "range": "5.1.0 - 9.2.1", "nodes": [""], "fixAvailable": true}, "mwbot": {"name": "mwbot", "severity": "high", "isDirect": false, "via": ["request", "semver"], "effects": ["wdio-mediawiki"], "range": ">=0.1.6", "nodes": ["node_modules/mwbot"], "fixAvailable": {"name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true}}, "nanoid": {"name": "nanoid", "severity": "moderate", "isDirect": false, "via": [{"source": 1089011, "name": "nanoid", "dependency": "nanoid", "title": "Exposure of Sensitive Information to an Unauthorized Actor in nanoid", "url": "https://github.com/advisories/GHSA-qrpm-p2h7-hrv2", "severity": "moderate", "cwe": ["CWE-200"], "cvss": {"score": 5.5, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N"}, "range": ">=3.0.0 <3.1.31"}], "effects": ["mocha"], "range": "3.0.0 - 3.1.30", "nodes": [""], "fixAvailable": true}, "path-to-regexp": {"name": "path-to-regexp", "severity": "high", "isDirect": false, "via": [{"source": 1099561, "name": "path-to-regexp", "dependency": "path-to-regexp", "title": "path-to-regexp outputs backtracking regular expressions", "url": "https://github.com/advisories/GHSA-9wv6-86v2-598j", "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": ">=0.2.0 <1.9.0"}], "effects": [], "range": "0.2.0 - 1.8.0", "nodes": [""], "fixAvailable": true}, "postcss": {"name": "postcss", "severity": "moderate", "isDirect": false, "via": [{"source": 1094544, "name": "postcss", "dependency": "postcss", "title": "PostCSS line return parsing error", "url": "https://github.com/advisories/GHSA-7fh5-64p2-3v2j", "severity": "moderate", "cwe": ["CWE-74", "CWE-144"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": "<8.4.31"}], "effects": ["autoprefixer", "postcss-less", "postcss-safe-parser", "postcss-sass", "postcss-scss", "stylelint", "sugarss"], "range": "<8.4.31", "nodes": ["", "node_modules/autoprefixer/node_modules/postcss", "node_modules/postcss-less/node_modules/postcss", "node_modules/postcss-safe-parser/node_modules/postcss", "node_modules/postcss-sass/node_modules/postcss", "node_modules/postcss-scss/node_modules/postcss", "node_modules/stylelint/node_modules/postcss", "node_modules/sugarss/node_modules/postcss"], "fixAvailable": {"name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true}}, "postcss-less": {"name": "postcss-less", "severity": "moderate", "isDirect": false, "via": ["postcss"], "effects": ["stylelint"], "range": "<=3.1.4", "nodes": ["node_modules/postcss-less"], "fixAvailable": {"name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true}}, "postcss-safe-parser": {"name": "postcss-safe-parser", "severity": "moderate", "isDirect": false, "via": ["postcss"], "effects": ["stylelint"], "range": "<=4.0.2", "nodes": ["node_modules/postcss-safe-parser"], "fixAvailable": {"name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true}}, "postcss-sass": {"name": "postcss-sass", "severity": "moderate", "isDirect": false, "via": ["postcss"], "effects": ["stylelint"], "range": "<=0.4.4", "nodes": ["node_modules/postcss-sass"], "fixAvailable": {"name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true}}, "postcss-scss": {"name": "postcss-scss", "severity": "moderate", "isDirect": false, "via": ["postcss"], "effects": ["stylelint"], "range": "<=2.1.1", "nodes": ["node_modules/postcss-scss"], "fixAvailable": {"name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true}}, "prismjs": {"name": "prismjs", "severity": "high", "isDirect": false, "via": [{"source": 1090424, "name": "prismjs", "dependency": "prismjs", "title": "Cross-site Scripting in Prism", "url": "https://github.com/advisories/GHSA-3949-f494-cm99", "severity": "high", "cwe": ["CWE-79"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:L"}, "range": ">=1.14.0 <1.27.0"}], "effects": [], "range": "1.14.0 - 1.26.0", "nodes": [""], "fixAvailable": true}, "puppeteer-core": {"name": "puppeteer-core", "severity": "high", "isDirect": false, "via": ["ws"], "effects": ["devtools", "webdriverio"], "range": "11.0.0 - 22.11.1", "nodes": [""], "fixAvailable": {"name": "webdriverio", "version": "9.2.12", "isSemVerMajor": true}}, "recursive-readdir": {"name": "recursive-readdir", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": [], "range": "1.2.0 - 2.2.2", "nodes": [""], "fixAvailable": true}, "request": {"name": "request", "severity": "moderate", "isDirect": true, "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"}, "tough-cookie"], "effects": ["mwbot"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": {"name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true}}, "semver": {"name": "semver", "severity": "high", "isDirect": false, "via": [{"source": 1098562, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "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": ">=7.0.0 <7.5.2"}, {"source": 1098563, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "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": "<5.7.2"}, {"source": 1098564, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "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.0 <6.3.1"}], "effects": ["eslint-plugin-compat", "mwbot"], "range": "<=5.7.1 || 6.0.0 - 6.3.0 || 7.0.0 - 7.5.1", "nodes": ["", "", "", "", "", "", "", "", "node_modules/mwbot/node_modules/semver", "node_modules/semver"], "fixAvailable": {"name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true}}, "stylelint": {"name": "stylelint", "severity": "moderate", "isDirect": false, "via": ["autoprefixer", "postcss", "postcss-less", "postcss-safe-parser", "postcss-sass", "postcss-scss", "sugarss"], "effects": ["grunt-stylelint"], "range": "0.1.0 - 13.13.1", "nodes": ["node_modules/stylelint"], "fixAvailable": {"name": "grunt-stylelint", "version": "0.20.1", "isSemVerMajor": true}}, "sugarss": {"name": "sugarss", "severity": "moderate", "isDirect": false, "via": ["postcss"], "effects": [], "range": "<=2.0.0", "nodes": ["node_modules/sugarss"], "fixAvailable": true}, "tough-cookie": {"name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [{"source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"}, "range": "<4.1.3"}], "effects": ["request"], "range": "<4.1.3", "nodes": ["", "node_modules/request/node_modules/tough-cookie"], "fixAvailable": {"name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true}}, "ua-parser-js": {"name": "ua-parser-js", "severity": "high", "isDirect": false, "via": [{"source": 1092302, "name": "ua-parser-js", "dependency": "ua-parser-js", "title": "ReDoS Vulnerability in ua-parser-js version", "url": "https://github.com/advisories/GHSA-fhg7-m89q-25r3", "severity": "high", "cwe": ["CWE-400", "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": ">=0.8.0 <1.0.33"}], "effects": [], "range": "0.8.1 - 1.0.32", "nodes": [""], "fixAvailable": true}, "unexpected": {"name": "unexpected", "severity": "high", "isDirect": true, "via": ["diff"], "effects": [], "range": "5.0.0-beta1 - 11.0.0", "nodes": ["node_modules/unexpected"], "fixAvailable": {"name": "unexpected", "version": "13.2.1", "isSemVerMajor": true}}, "vue": {"name": "vue", "severity": "low", "isDirect": true, "via": [{"source": 1100238, "name": "vue", "dependency": "vue", "title": "ReDoS vulnerability in vue package that is exploitable through inefficient regex evaluation in the parseHTML function", "url": "https://github.com/advisories/GHSA-5j4c-8p2g-v4jx", "severity": "low", "cwe": ["CWE-1333"], "cvss": {"score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=2.0.0-alpha.1 <3.0.0-alpha.0"}], "effects": ["vuex"], "range": "2.0.0-alpha.1 - 2.7.16", "nodes": ["", "node_modules/vue"], "fixAvailable": {"name": "vue", "version": "3.5.12", "isSemVerMajor": true}}, "vuex": {"name": "vuex", "severity": "low", "isDirect": true, "via": ["vue"], "effects": [], "range": "3.1.3 - 3.6.2", "nodes": ["node_modules/vuex"], "fixAvailable": {"name": "vuex", "version": "4.1.0", "isSemVerMajor": true}}, "wdio-mediawiki": {"name": "wdio-mediawiki", "severity": "high", "isDirect": true, "via": ["mwbot"], "effects": ["wdio-wikibase"], "range": "1.1.0 - 2.2.0", "nodes": ["node_modules/wdio-mediawiki"], "fixAvailable": {"name": "wdio-mediawiki", "version": "2.5.0", "isSemVerMajor": true}}, "wdio-wikibase": {"name": "wdio-wikibase", "severity": "high", "isDirect": true, "via": ["wdio-mediawiki"], "effects": [], "range": "5.1.0 - 5.2.0", "nodes": ["node_modules/wdio-wikibase"], "fixAvailable": {"name": "wdio-wikibase", "version": "6.0.3", "isSemVerMajor": true}}, "webdriverio": {"name": "webdriverio", "severity": "high", "isDirect": true, "via": ["devtools", "puppeteer-core"], "effects": ["@wdio/cli", "@wdio/runner", "@wdio/sync"], "range": "7.16.5 - 8.40.6", "nodes": ["", "", "node_modules/webdriverio"], "fixAvailable": {"name": "webdriverio", "version": "9.2.12", "isSemVerMajor": true}}, "word-wrap": {"name": "word-wrap", "severity": "moderate", "isDirect": false, "via": [{"source": 1097681, "name": "word-wrap", "dependency": "word-wrap", "title": "word-wrap vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-j8xg-fqg3-53r7", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<1.2.4"}], "effects": [], "range": "<1.2.4", "nodes": [""], "fixAvailable": 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": [""], "fixAvailable": {"name": "webdriverio", "version": "9.2.12", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 2, "moderate": 15, "high": 25, "critical": 4, "total": 46}, "dependencies": {"prod": 1, "dev": 1061, "optional": 3, "peer": 100, "peerOptional": 0, "total": 1061}}}} $ /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: '@wdio/sync@7.36.0', npm WARN EBADENGINE required: { node: '>=12.0.0 <16' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported npm WARN deprecated @xmldom/xmldom@0.7.13: this version is no longer supported, please update to at least 0.8.* npm WARN deprecated vue@2.7.16: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. --- stdout --- added 72 packages, removed 28 packages, changed 88 packages, and audited 1061 packages in 13s 152 packages are looking for funding run `npm fund` for details # npm audit report diff <3.5.0 Severity: high Regular Expression Denial of Service (ReDoS) - https://github.com/advisories/GHSA-h6ch-v84p-w6p9 fix available via `npm audit fix --force` Will install unexpected@13.2.1, which is a breaking change node_modules/unexpected/node_modules/diff unexpected 5.0.0-beta1 - 11.0.0 Depends on vulnerable versions of diff node_modules/unexpected minimatch <3.0.5 Severity: high minimatch ReDoS vulnerability - https://github.com/advisories/GHSA-f8q6-p94x-37v3 fix available via `npm audit fix` node_modules/minimatch postcss <8.4.31 Severity: moderate PostCSS line return parsing error - https://github.com/advisories/GHSA-7fh5-64p2-3v2j fix available via `npm audit fix --force` Will install grunt-stylelint@0.20.1, which is a breaking change node_modules/autoprefixer/node_modules/postcss node_modules/postcss-less/node_modules/postcss node_modules/postcss-safe-parser/node_modules/postcss node_modules/postcss-sass/node_modules/postcss node_modules/postcss-scss/node_modules/postcss node_modules/stylelint/node_modules/postcss node_modules/sugarss/node_modules/postcss autoprefixer 1.0.20131222 - 9.8.8 Depends on vulnerable versions of postcss node_modules/autoprefixer stylelint 0.1.0 - 13.13.1 Depends on vulnerable versions of autoprefixer Depends on vulnerable versions of postcss Depends on vulnerable versions of postcss-less Depends on vulnerable versions of postcss-safe-parser Depends on vulnerable versions of postcss-sass Depends on vulnerable versions of postcss-scss Depends on vulnerable versions of sugarss node_modules/stylelint grunt-stylelint <=0.16.0 Depends on vulnerable versions of stylelint node_modules/grunt-stylelint postcss-less <=3.1.4 Depends on vulnerable versions of postcss node_modules/postcss-less postcss-safe-parser <=4.0.2 Depends on vulnerable versions of postcss node_modules/postcss-safe-parser postcss-sass <=0.4.4 Depends on vulnerable versions of postcss node_modules/postcss-sass postcss-scss <=2.1.1 Depends on vulnerable versions of postcss node_modules/postcss-scss sugarss <=2.0.0 Depends on vulnerable versions of postcss node_modules/sugarss request * Severity: moderate Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6 Depends on vulnerable versions of tough-cookie fix available via `npm audit fix --force` Will install wdio-mediawiki@2.5.0, which is a breaking change node_modules/request mwbot >=0.1.6 Depends on vulnerable versions of request Depends on vulnerable versions of semver node_modules/mwbot wdio-mediawiki 1.1.0 - 2.2.0 Depends on vulnerable versions of mwbot node_modules/wdio-mediawiki wdio-wikibase 5.1.0 - 5.2.0 Depends on vulnerable versions of wdio-mediawiki node_modules/wdio-wikibase semver 7.0.0 - 7.5.1 Severity: high semver vulnerable to Regular Expression Denial of Service - https://github.com/advisories/GHSA-c2qf-rxjj-qqgw fix available via `npm audit fix --force` Will install wdio-mediawiki@2.5.0, which is a breaking change node_modules/mwbot/node_modules/semver node_modules/semver eslint-plugin-compat 3.6.0-0 - 4.1.4 Depends on vulnerable versions of semver node_modules/eslint-plugin-compat eslint-config-wikimedia 0.18.0 - 0.21.0 Depends on vulnerable versions of eslint-plugin-compat node_modules/eslint-config-wikimedia tough-cookie <4.1.3 Severity: moderate tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3 fix available via `npm audit fix --force` Will install wdio-mediawiki@2.5.0, which is a breaking change node_modules/request/node_modules/tough-cookie vue 2.0.0-alpha.1 - 2.7.16 ReDoS vulnerability in vue package that is exploitable through inefficient regex evaluation in the parseHTML function - https://github.com/advisories/GHSA-5j4c-8p2g-v4jx fix available via `npm audit fix --force` Will install vue@3.5.12, which is a breaking change node_modules/vue vuex 3.1.3 - 3.6.2 Depends on vulnerable versions of vue node_modules/vuex 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 webdriverio@9.2.12, which is a breaking change node_modules/devtools/node_modules/ws node_modules/puppeteer-core/node_modules/ws puppeteer-core 11.0.0 - 22.11.1 Depends on vulnerable versions of ws node_modules/devtools/node_modules/puppeteer-core node_modules/puppeteer-core devtools >=7.16.5 Depends on vulnerable versions of puppeteer-core node_modules/devtools webdriverio 7.16.5 - 8.40.6 Depends on vulnerable versions of devtools Depends on vulnerable versions of puppeteer-core node_modules/webdriverio @wdio/cli 7.16.5 - 8.40.6 Depends on vulnerable versions of webdriverio node_modules/@wdio/cli @wdio/runner 7.16.5 - 8.40.6 Depends on vulnerable versions of webdriverio node_modules/@wdio/runner @wdio/local-runner 7.16.5 - 8.40.6 Depends on vulnerable versions of @wdio/runner node_modules/@wdio/local-runner @wdio/sync >=7.16.5 Depends on vulnerable versions of webdriverio node_modules/@wdio/sync 30 vulnerabilities (2 low, 11 moderate, 17 high) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force --- end --- Verifying that tests still pass $ /usr/bin/npm ci --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/sync@7.36.0', npm WARN EBADENGINE required: { node: '>=12.0.0 <16' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated @stylelint/postcss-markdown@0.36.2: Use the original unforked package instead: postcss-markdown npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated grunt-jasmine-nodejs@1.6.1: Deprecated in favor of npm scripts. npm WARN deprecated glob@8.1.0: 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 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 @xmldom/xmldom@0.7.13: this version is no longer supported, please update to at least 0.8.* npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated vue@2.7.16: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. npm WARN deprecated core-js@2.6.12: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. --- stdout --- added 1060 packages, and audited 1061 packages in 21s 152 packages are looking for funding run `npm fund` for details 30 vulnerabilities (2 low, 11 moderate, 17 high) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stderr --- [Vue warn]: Error in mounted hook: "TypeError: mw.message(...).text is not a function" found in ---> <LanguageSelector> <Root> TypeError: mw.message(...).text is not a function at getLanguageLabel (/src/repo/resources/widgets/LanguageSelectorWrapper.js:23:8) at /src/repo/resources/widgets/LanguageSelectorWrapper.js:29:25 at Array.forEach (<anonymous>) at VueComponent.mounted (/src/repo/resources/widgets/LanguageSelectorWrapper.js:28:20) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:3718:63) at callHook$1 (/src/repo/node_modules/vue/dist/vue.js:3221:15) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:4947:15) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6977:40) at Vue.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:7189:11) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:2958:27) at Vue.updateComponent (/src/repo/node_modules/vue/dist/vue.js:3064:18) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4196:35) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4272:32) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:3314:19) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:3844:22) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:3766:20) [Vue warn]: Error in mounted hook: "TypeError: mw.message(...).text is not a function" found in ---> <LanguageSelector> <Root> TypeError: mw.message(...).text is not a function at getLanguageLabel (/src/repo/resources/widgets/LanguageSelectorWrapper.js:23:8) at /src/repo/resources/widgets/LanguageSelectorWrapper.js:29:25 at Array.forEach (<anonymous>) at VueComponent.mounted (/src/repo/resources/widgets/LanguageSelectorWrapper.js:28:20) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:3718:63) at callHook$1 (/src/repo/node_modules/vue/dist/vue.js:3221:15) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:4947:15) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6977:40) at Vue.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:7189:11) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:2958:27) at Vue.updateComponent (/src/repo/node_modules/vue/dist/vue.js:3064:18) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4196:35) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4272:32) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:3314:19) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:3844:22) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:3766:20) [Vue warn]: Error in mounted hook: "TypeError: mw.message(...).text is not a function" found in ---> <LanguageSelector> <Root> TypeError: mw.message(...).text is not a function at getLanguageLabel (/src/repo/resources/widgets/LanguageSelectorWrapper.js:23:8) at /src/repo/resources/widgets/LanguageSelectorWrapper.js:29:25 at Array.forEach (<anonymous>) at VueComponent.mounted (/src/repo/resources/widgets/LanguageSelectorWrapper.js:28:20) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:3718:63) at callHook$1 (/src/repo/node_modules/vue/dist/vue.js:3221:15) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:4947:15) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6977:40) at Vue.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:7189:11) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:2958:27) at Vue.updateComponent (/src/repo/node_modules/vue/dist/vue.js:3064:18) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4196:35) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4272:32) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:3314:19) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:3844:22) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:3766:20) [Vue warn]: Error in mounted hook: "TypeError: mw.message(...).text is not a function" found in ---> <LanguageSelector> <Root> TypeError: mw.message(...).text is not a function at getLanguageLabel (/src/repo/resources/widgets/LanguageSelectorWrapper.js:23:8) at /src/repo/resources/widgets/LanguageSelectorWrapper.js:29:25 at Array.forEach (<anonymous>) at VueComponent.mounted (/src/repo/resources/widgets/LanguageSelectorWrapper.js:28:20) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:3718:63) at callHook$1 (/src/repo/node_modules/vue/dist/vue.js:3221:15) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:4947:15) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6977:40) at Vue.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:7189:11) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:2958:27) at Vue.updateComponent (/src/repo/node_modules/vue/dist/vue.js:3064:18) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4196:35) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4272:32) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:3314:19) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:3844:22) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:3766:20) [Vue warn]: Error in mounted hook: "TypeError: api.formatValue is not a function" found in ---> <ItemSelector> <Root> TypeError: api.formatValue is not a function at formatEntityLabel (/src/repo/resources/widgets/ItemSelectorWrapper.js:13:7) at VueComponent.mounted (/src/repo/resources/widgets/ItemSelectorWrapper.js:37:5) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:3718:63) at callHook$1 (/src/repo/node_modules/vue/dist/vue.js:3221:15) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:4947:15) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6977:40) at VueComponent.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:7189:11) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:2958:27) at VueComponent.updateComponent (/src/repo/node_modules/vue/dist/vue.js:3064:18) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4196:35) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4272:32) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:3314:19) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:3844:22) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:3766:20) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) [Vue warn]: Error in mounted hook: "TypeError: api.formatValue is not a function" found in ---> <ItemSelector> <Root> TypeError: api.formatValue is not a function at formatEntityLabel (/src/repo/resources/widgets/ItemSelectorWrapper.js:13:7) at VueComponent.mounted (/src/repo/resources/widgets/ItemSelectorWrapper.js:37:5) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:3718:63) at callHook$1 (/src/repo/node_modules/vue/dist/vue.js:3221:15) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:4947:15) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6977:40) at VueComponent.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:7189:11) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:2958:27) at VueComponent.updateComponent (/src/repo/node_modules/vue/dist/vue.js:3064:18) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4196:35) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4272:32) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:3314:19) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:3844:22) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:3766:20) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) [Vue warn]: Error in destroyed hook: "TypeError: Cannot read properties of undefined (reading 'destroy')" found in ---> <ItemSelector> <Root> TypeError: Cannot read properties of undefined (reading 'destroy') at VueComponent.destroyed (/src/repo/resources/widgets/ItemSelectorWrapper.js:66:43) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:3718:63) at callHook$1 (/src/repo/node_modules/vue/dist/vue.js:3221:15) at Vue.$destroy (/src/repo/node_modules/vue/dist/vue.js:3011:11) at destroy (/src/repo/node_modules/vue/dist/vue.js:4967:37) at invokeDestroyHook (/src/repo/node_modules/vue/dist/vue.js:6735:19) at removeVnodes (/src/repo/node_modules/vue/dist/vue.js:6751:23) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6874:15) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6944:23) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6818:19) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6944:23) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6818:19) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6944:23) at VueComponent.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:7110:19) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:2958:27) at VueComponent.updateComponent (/src/repo/node_modules/vue/dist/vue.js:3064:18) [Vue warn]: Error in destroyed hook: "TypeError: Cannot read properties of undefined (reading 'destroy')" found in ---> <ItemSelector> <Root> TypeError: Cannot read properties of undefined (reading 'destroy') at VueComponent.destroyed (/src/repo/resources/widgets/ItemSelectorWrapper.js:66:43) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:3718:63) at callHook$1 (/src/repo/node_modules/vue/dist/vue.js:3221:15) at Vue.$destroy (/src/repo/node_modules/vue/dist/vue.js:3011:11) at destroy (/src/repo/node_modules/vue/dist/vue.js:4967:37) at invokeDestroyHook (/src/repo/node_modules/vue/dist/vue.js:6735:19) at removeVnodes (/src/repo/node_modules/vue/dist/vue.js:6751:23) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6874:15) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6944:23) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6818:19) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6944:23) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6818:19) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6944:23) at VueComponent.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:7110:19) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:2958:27) at VueComponent.updateComponent (/src/repo/node_modules/vue/dist/vue.js:3064:18) [Vue warn]: Error in nextTick: "UnexpectedError: expected <div class="lemma-widget"> <ul class="lemma-widget_lemma-list"> <li class="lemma-widget_lemma">...</li> </ul> </div> to contain lemma Lemma({ value: '', language: '' }) expected DOMElement when queried for .lemma-widget_lemma .lemma-widget_lemma-value to have an item satisfying to have text '' expected NodeList[ <span lang="en" class="lemma-widget_lemma-value">hello</span> ] to have an item satisfying to have text '' " (found in <Root>) Error [UnexpectedError]: expected <div class="lemma-widget"> <ul class="lemma-widget_lemma-list"> <li class="lemma-widget_lemma">...</li> </ul> </div> to contain lemma Lemma({ value: '', language: '' }) expected DOMElement when queried for .lemma-widget_lemma .lemma-widget_lemma-value to have an item satisfying to have text '' expected NodeList[ <span lang="en" class="lemma-widget_lemma-value">hello</span> ] to have an item satisfying to have text '' at VueComponent.<anonymous> (/src/repo/tests/jasmine/LemmaWidget.spec.js:56:4) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:3844:22) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:3766:20) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) set the query parameter full-trace=true to see the full stack trace { errorMode: 'nested', expect: <ref *1> [Function: wrappedExpect] { context: Context { expect: [Unexpected], level: 0 }, execute: [Circular *1], alternations: [], flags: {}, subject: HTMLDivElement { _prevClass: 'lemma-widget', __vue__: [VueComponent], [Symbol(SameObject caches)]: [Object: null prototype] }, testDescription: 'to contain lemma', args: [ [Lemma] ], assertionRule: { handler: [Function (anonymous)], alternations: [], flags: {}, subject: [Object], args: [Array], testDescriptionString: 'to contain lemma', declaration: '<DOMElement> to contain lemma <object>', unexpected: undefined, specificity: [Array] }, subjectOutput: [Function (anonymous)], argsOutput: [ [Function (anonymous)] ], errorMode: 'nested' }, parent: Error [UnexpectedError]: expected <div class="lemma-widget"> <ul class="lemma-widget_lemma-list"> <li class="lemma-widget_lemma">...</li> </ul> </div> when queried for .lemma-widget_lemma .lemma-widget_lemma-value to have an item satisfying to have text '' expected NodeList[ <span lang="en" class="lemma-widget_lemma-value">hello</span> ] to have an item satisfying to have text '' at VueComponent.<anonymous> (/src/repo/tests/jasmine/LemmaWidget.spec.js:56:4) set the query parameter full-trace=true to see the full stack trace { errorMode: 'nested', expect: <ref *2> [Function: wrappedExpect] { context: [Context], execute: [Circular *2], alternations: [], flags: [Object], subject: [HTMLDivElement], testDescription: 'when queried for', args: [Array], assertionRule: [Object], subjectOutput: [Function (anonymous)], _assertionIndices: [Array], argsOutput: [Array], errorMode: 'nested' }, parent: Error [UnexpectedError] at Function.callInNestedContext (/src/repo/node_modules/unexpected/build/lib/createWrappedExpectProto.js:131:30) at wrappedExpect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1235:28) at Function.<anonymous> (/src/repo/node_modules/unexpected/build/lib/assertions.js:910:19) at executeExpect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1272:77) at /src/repo/node_modules/unexpected/build/lib/Unexpected.js:1236:16 at Function.callInNestedContext (/src/repo/node_modules/unexpected/build/lib/createWrappedExpectProto.js:112:34) at Function.wrappedExpect [as execute] (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1235:28) at Function.shift (/src/repo/node_modules/unexpected/build/lib/createWrappedExpectProto.js:198:31) at Function.<anonymous> (/src/repo/node_modules/unexpected-dom/lib/index.js:1457:23) at executeExpect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1272:77) at Unexpected.expect [as _expect] (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1276:18) at Unexpected.expect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:903:23) at executeExpect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1212:72) at /src/repo/node_modules/unexpected/build/lib/Unexpected.js:1236:16 at Function.callInNestedContext (/src/repo/node_modules/unexpected/build/lib/createWrappedExpectProto.js:112:34) at wrappedExpect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1235:28) { errorMode: 'default', expect: [Function], parent: [Error], originalError: undefined }, originalError: undefined, _hasSerializedErrorMessage: true }, originalError: undefined, _hasSerializedErrorMessage: true } [Vue warn]: Error in nextTick: "UnexpectedError: expected <div class="lemma-widget"> <ul class="lemma-widget_lemma-list"> <li class="lemma-widget_lemma">...</li> </ul> </div> to contain no lemmas expected DOMElement to contain no elements matching '.lemma-widget_lemma' NodeList[ <li class="lemma-widget_lemma"> <span lang="en" class="lemma-widget_lemma-value">...</span> <span class="lemma-widget_lemma-language">...</span> </li> // should be removed ] " (found in <Root>) Error [UnexpectedError]: expected <div class="lemma-widget"> <ul class="lemma-widget_lemma-list"> <li class="lemma-widget_lemma">...</li> </ul> </div> to contain no lemmas expected DOMElement to contain no elements matching '.lemma-widget_lemma' NodeList[ <li class="lemma-widget_lemma"> <span lang="en" class="lemma-widget_lemma-value">...</span> <span class="lemma-widget_lemma-language">...</span> </li> // should be removed ] at VueComponent.<anonymous> (/src/repo/tests/jasmine/LemmaWidget.spec.js:68:4) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:3844:22) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:3766:20) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) set the query parameter full-trace=true to see the full stack trace { errorMode: 'nested', expect: <ref *1> [Function: wrappedExpect] { context: Context { expect: [Unexpected], level: 0 }, execute: [Circular *1], alternations: [], flags: { no: true }, subject: HTMLDivElement { _prevClass: 'lemma-widget', __vue__: [VueComponent], [Symbol(SameObject caches)]: [Object: null prototype] }, testDescription: 'to contain no lemmas', args: [], assertionRule: { handler: [Function (anonymous)], alternations: [], flags: [Object], subject: [Object], args: [], testDescriptionString: 'to contain no lemmas', declaration: '<DOMElement> to contain [no] lemmas', unexpected: undefined, specificity: [Array] }, subjectOutput: [Function (anonymous)], argsOutput: [], errorMode: 'nested' }, parent: Error [UnexpectedError]: expected <div class="lemma-widget"> <ul class="lemma-widget_lemma-list"> <li class="lemma-widget_lemma">...</li> </ul> </div> to contain no elements matching '.lemma-widget_lemma' NodeList[ <li class="lemma-widget_lemma"> <span lang="en" class="lemma-widget_lemma-value">...</span> <span class="lemma-widget_lemma-language">...</span> </li> // should be removed ] at VueComponent.<anonymous> (/src/repo/tests/jasmine/LemmaWidget.spec.js:68:4) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:3844:22) set the query parameter full-trace=true to see the full stack trace { errorMode: 'default', expect: <ref *2> [Function: wrappedExpect] { context: [Context], execute: [Circular *2], alternations: [], flags: [Object], subject: [HTMLDivElement], testDescription: 'to contain no elements matching', args: [Array], assertionRule: [Object], subjectOutput: [Function (anonymous)], _assertionIndices: [], argsOutput: [Array] }, parent: Error [UnexpectedError] at oathbreaker (/src/repo/node_modules/unexpected/build/lib/oathbreaker.js:45:13) at executeExpect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1272:12) at /src/repo/node_modules/unexpected/build/lib/Unexpected.js:1236:16 at Function.callInNestedContext (/src/repo/node_modules/unexpected/build/lib/createWrappedExpectProto.js:112:34) at wrappedExpect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1235:28) at Function.<anonymous> (/src/repo/node_modules/unexpected-dom/lib/index.js:1482:18) at executeExpect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1272:77) at Unexpected.expect [as _expect] (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1276:18) at Unexpected.expect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:903:23) at executeExpect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1212:72) at /src/repo/node_modules/unexpected/build/lib/Unexpected.js:1236:16 at Function.callInNestedContext (/src/repo/node_modules/unexpected/build/lib/createWrappedExpectProto.js:112:34) at wrappedExpect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1235:28) at Function.<anonymous> (/src/repo/tests/jasmine/LemmaWidget.spec.js:121:3) at executeExpect (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1272:77) at Unexpected.expect [as _expect] (/src/repo/node_modules/unexpected/build/lib/Unexpected.js:1276:18) { errorMode: 'default', expect: [Function], parent: [Error], originalError: undefined }, originalError: undefined, _hasSerializedErrorMessage: true }, originalError: undefined, _hasSerializedErrorMessage: true } ERROR: "test:grunt" exited with 3. --- stdout --- > test > run-s test:* > test:grunt > grunt test Running "eslint:all" (eslint) task /src/repo/resources/jquery.wikibase.lexemeformview.js 287:0 warning Missing JSDoc @param "lemmas" type jsdoc/require-param-type 288:0 warning Missing JSDoc @param "formIndex" type jsdoc/require-param-type 289:0 warning Missing JSDoc @param "formId" type jsdoc/require-param-type 290:0 warning Missing JSDoc @param "representations" type jsdoc/require-param-type /src/repo/resources/special/SpecialNewLexemeAlphaSkipVueApp.js 0:0 warning File ignored because of a matching ignore pattern. Use "--no-ignore" to override /src/repo/resources/view/ViewFactoryFactory.js 17:0 warning Syntax error in type: [] jsdoc/valid-types /src/repo/resources/widgets/GlossWidget.js 34:0 warning Syntax error in type: [{ value: string, language: string }] jsdoc/valid-types /src/repo/tests/selenium/pageobjects/lexeme.page.js 236:0 warning Missing JSDoc @param "input" type jsdoc/require-param-type 237:0 warning Missing JSDoc @param "value" type jsdoc/require-param-type /src/repo/tests/selenium/specs/header.edit.js 12:25 warning "../../../../Wikibase/repo/tests/selenium/wdio-wikibase/wikibase.api" is not found node/no-missing-require ✖ 10 problems (0 errors, 10 warnings) Running "banana:WikibaseLexeme" (banana) task >> 3 message directories checked. Running "jasmine_nodejs:all" (jasmine_nodejs) task >> Executing 121 defined specs... Test Suites & Specs: 1) focusElement Download the Vue Devtools extension for a better development experience: https://github.com/vuejs/vue-devtools You are running Vue in development mode. Make sure to turn on production mode when deploying for production. See more tips at https://vuejs.org/guide/deployment.html Download the Vue Devtools extension for a better development experience: https://github.com/vuejs/vue-devtools You are running Vue in development mode. Make sure to turn on production mode when deploying for production. See more tips at https://vuejs.org/guide/deployment.html ✔ returns a callback without doing anything else 2) callback ✔ calls focus on selected element ✔ can handle missing element 3) actionTypes ✔ uses unique ids for all action types 4) wikibase.lexeme.widgets.LexemeHeader ✔ switch to edit mode ✔ attempting to save with empty lemmas fails 5) isUnsaveable ✔ returns true when there are no changes ✔ returns false by default ✔ returns true when there are changes but saving is ongoing ✔ returns true when there are changes but also lemmas with redundant languages ✔ save lemma list with error 6) hasChanges ✔ returns true when lemmas change ✔ ignores added empty lemmas ✔ returns true when language changes ✔ returns true when lexical category changes ✔ returns false by default ✔ passes lemmas to LemmaWidget ✔ shows save button disabled without changes ✔ updates language and lexical category on save ✔ save lemma list ✔ cancel edit mode ✔ shows save button disabled when unsaveable ✔ shows save button enabled when not unsaveable ✔ binds to lemma-widget hasRedundantLanguage event ✔ passes language and lexical category to LanguageAndLexicalCategoryWidget 7) GlossWidget ✔ remove a gloss ✔ switch to edit mode ✔ initialize widget with one gloss ✔ create with no glosses - when switched to edit mode empty gloss is added ✔ stop editing ✔ add a new gloss ✔ removes empty glosses when saved 8) actions ✔ UPDATE_REPRESENTATION_LANGUAGE delegates to mutation ✔ ADD_REPRESENTATION on state having no representations and one lemma mutates to empty values and derives lemma language ✔ ADD_REPRESENTATION on state having existing representation and one lemma mutates to empty values ✔ REPLACE_ALL_REPRESENTATIONS delegates to mutation ✔ UPDATE_REPRESENTATION_VALUE delegates to mutation ✔ REMOVE_REPRESENTATION delegates to mutation ✔ ADD_REPRESENTATION on state having no representations and multiple lemmas mutates to empty values 9) mutationTypes ✔ uses unique ids for all mutation types 10) LexemeSubEntityId 11) getIdSuffix ✔ returns the Sense id suffix ✔ returns the Form id suffix 12) mutations ✔ UPDATE_REPRESENTATION_VALUE changes correct representation value ✔ REPLACE_ALL_REPRESENTATIONS replaces representations of correct form ✔ UPDATE_REPRESENTATION_LANGUAGE changes correct representation language ✔ DERIVE_REPRESENTATION_LANGUAGE_FROM_LEMMA changes representation language correctly ✔ ADD_REPRESENTATION adds a new representation to the right form ✔ REMOVE_REPRESENTATION removes representation leaving others with updated index 13) LanguageAndLexicalCategoryWidget ✔ shows the language and the lexical category ✔ switches to edit mode and back 14) store ✔ creates initial state 15) RedundantLanguageIndicator ✔ creates mixin definition with watch that monitors the property recursively ✔ creates mixin definition with watch that fires immediately ✔ creates mixin watch handler that can find multiple redundant languages ✔ creates mixin watch handler that updates redundantLanguages with respective language values ✔ creates mixin property hasRedundantLanguage returning true for existing redundantLanguages ✔ creates mixin definition providing computed property hasRedundantLanguage ✔ creates mixin definition method isRedundantLanguage returning false for empty redundantLanguages ✔ creates mixin definition providing method to determine if language isRedundantLanguage ✔ creates mixin definition that adds a redundantLanguages property to data ✔ creates mixin definition with watch on desired property ✔ creates mixin watch handler not taking offence in repeated empty language ✔ creates mixin property hasRedundantLanguage returning false for empty redundantLanguages 16) RepresentationWidget ✔ cannot remove representation if not in edit mode ✔ cannot add representation if not in edit mode ✔ adds a representation with unique lemmas language on add after delete ✔ is not in edit mode after editing is stopped ✔ can carry redundant representations ✔ detects redundant representation languages and can mark the individual languages ✔ can remove a representation ✔ switches to edit mode when editing ✔ adds an empty representation on add ✔ adds a new representation with lemma language when editing the widget with no representations and one lemma ✔ shows only the representation it contains when editing the widget with some representation ✔ detects redundant representation languages and marks the widget ✔ is not in edit mode after being created ✔ adds a new empty representation when editing the widget with no representations and multiple lemmas 17) ItemSelectorWrapper ✔ passes the item ID to the entityselector widget on mount 18) InvalidLanguageIndicator ✔ creates mixin definition with watch that does not fire immediately ✔ creates mixin watch handler that can find multiple invalid languages ✔ creates mixin definition with watch on desired property ✔ creates mixin property hasInvalidLanguage returning true for existing InvalidLanguages ✔ creates mixin watch handler not taking offence in empty language ✔ creates mixin property hasInvalidLanguage returning false for empty InvalidLanguages ✔ creates mixin definition providing method to determine if language isInvalidLanguage ✔ creates mixin definition with watch that monitors the property recursively ✔ creates mixin definition providing computed property hasInvalidLanguage ✔ creates mixin definition method isInvalidLanguage returning false for empty InvalidLanguages ✔ creates mixin definition that adds an InvalidLanguages property to data ✔ creates mixin watch handler that updates InvalidLanguages with respective language values 19) LexemeHeader.newLexemeHeaderStore ✔ mutation finishSaving switches the isSaving flag to false ✔ action save calls API with correct parameters when removing an item from the state ✔ mutation startSaving switches the isSaving flag to true ✔ mutation updateLemmas changes lemmas to given values ✔ mutation updateLanguage changes lexical category and the link to given values ✔ action save calls API with correct parameters and changes state using data from response ✔ action save on success mutates the state to start saving, updates state and finishes saving ✔ mutation updateLanguage changes language and languageLink to given values ✔ failed save returns rejected promise with a single error object ✔ mutation updateRevisionId changes baseRevId to given value ✔ failed save returns rejected promise with first error object if API returns multiple errors 20) LemmaList ✔ remove 21) copy ✔ clones Lemmas ✔ creates an identical LemmaList ✔ length 22) equals ✔ ignores empty lemmas ✔ returns false for LemmaList with different lemmas ✔ returns true for LemmaList with same lemmas ✔ returns false for objects that are not of type LemmaList ✔ returns false for LemmaList of different length ✔ getLemmas ✔ add 23) wikibase.lexeme.widgets.LemmaWidget ✖ add a new lemma (1 failure) ✔ initialize widget with one lemma ✖ remove a lemma (1 failure) ✔ edit mode is false ✔ marks-up the lemma term with the lemma language ✔ detects redundant lemma languages to mark the widget ✔ detects redundant lemma language to mark the individual languages ✔ can carry redundant lemma languages ✔ edit mode is true >> Done! Failed Specs: 1) wikibase.lexeme.widgets.LemmaWidget : add a new lemma Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL. at listOnTimeout node:internal/timers:569:17 at process.processTimers node:internal/timers:512:7 2) wikibase.lexeme.widgets.LemmaWidget : remove a lemma Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL. at listOnTimeout node:internal/timers:569:17 at process.processTimers node:internal/timers:512:7 Summary: Suites: 23 of 23 Specs: 121 of 121 Expects: 2 (2 failures) Finished in 10.525 seconds Warning: Task "jasmine_nodejs:all" failed. Use --force to continue. Aborted due to warnings. --- end --- Traceback (most recent call last): File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1864, in main libup.run(args.repo, args.output, args.branch) File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1809, in run self.npm_audit_fix(new_npm_audit) File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 275, in npm_audit_fix self.npm_test() File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 325, in npm_test self.check_call(["npm", "test"]) File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/shell2.py", line 59, in check_call res.check_returncode() File "/usr/lib/python3.11/subprocess.py", line 502, in check_returncode raise CalledProcessError(self.returncode, self.args, self.stdout, subprocess.CalledProcessError: Command '['/usr/bin/npm', 'test']' returned non-zero exit status 1.