$ date
--- stdout ---
Sun Dec 1 16:55:29 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 ---
febfafac6b26cd6b3fb533d7dbeb4618cd0291d9 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",
"yarn-install"
],
"effects": [
"@wdio/dot-reporter",
"@wdio/junit-reporter",
"@wdio/local-runner"
],
"range": "5.4.10 - 8.40.6",
"nodes": [
"node_modules/@wdio/cli"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.4.1",
"isSemVerMajor": true
}
},
"@wdio/dot-reporter": {
"name": "@wdio/dot-reporter",
"severity": "high",
"isDirect": true,
"via": [
"@wdio/cli"
],
"effects": [],
"range": "6.0.4 - 8.0.0-alpha.631",
"nodes": [
"node_modules/@wdio/dot-reporter"
],
"fixAvailable": {
"name": "@wdio/dot-reporter",
"version": "9.2.14",
"isSemVerMajor": true
}
},
"@wdio/junit-reporter": {
"name": "@wdio/junit-reporter",
"severity": "high",
"isDirect": true,
"via": [
"@wdio/cli"
],
"effects": [],
"range": "6.0.4 - 8.0.0-alpha.631",
"nodes": [
"node_modules/@wdio/junit-reporter"
],
"fixAvailable": {
"name": "@wdio/junit-reporter",
"version": "9.2.14",
"isSemVerMajor": true
}
},
"@wdio/local-runner": {
"name": "@wdio/local-runner",
"severity": "high",
"isDirect": true,
"via": [
"@wdio/cli",
"@wdio/runner"
],
"effects": [],
"range": "6.0.4 - 8.40.6",
"nodes": [
"node_modules/@wdio/local-runner"
],
"fixAvailable": {
"name": "@wdio/local-runner",
"version": "9.4.1",
"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.4.1",
"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
},
"cross-spawn": {
"name": "cross-spawn",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1100562,
"name": "cross-spawn",
"dependency": "cross-spawn",
"title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
"url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "<6.0.6"
},
{
"source": 1100563,
"name": "cross-spawn",
"dependency": "cross-spawn",
"title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
"url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": ">=7.0.0 <7.0.5"
}
],
"effects": [
"yarn-install"
],
"range": "<6.0.6 || >=7.0.0 <7.0.5",
"nodes": [
"node_modules/cross-spawn",
"node_modules/npm-run-all/node_modules/cross-spawn",
"node_modules/yarn-install/node_modules/cross-spawn"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.4.1",
"isSemVerMajor": 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": [],
"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.4.1",
"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.13",
"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.4.1",
"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.4.1",
"isSemVerMajor": true
}
},
"yarn-install": {
"name": "yarn-install",
"severity": "high",
"isDirect": false,
"via": [
"cross-spawn"
],
"effects": [
"@wdio/cli"
],
"range": "*",
"nodes": [
"node_modules/yarn-install"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.4.1",
"isSemVerMajor": true
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 2,
"moderate": 15,
"high": 30,
"critical": 4,
"total": 51
},
"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.1)
- 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.1)
- 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 hamcrest/hamcrest-php (v2.0.1)
- 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/15 [>---------------------------] 0%
4/15 [=======>--------------------] 26%
12/15 [======================>-----] 80%
14/15 [==========================>-] 93%
15/15 [============================] 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.1): Extracting archive
- Installing psr/container (2.0.2): Extracting archive
- Installing symfony/service-contracts (v3.5.1): 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%
17/54 [========>-------------------] 31%
31/54 [================>-----------] 57%
45/54 [=======================>----] 83%
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 17s
145 packages are looking for funding
run `npm fund` for details
50 vulnerabilities (2 low, 15 moderate, 29 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 21s
145 packages are looking for funding
run `npm fund` for details
50 vulnerabilities (2 low, 15 moderate, 29 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: 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)
[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)
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) actions
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
✔ UPDATE_REPRESENTATION_VALUE delegates to mutation
✔ UPDATE_REPRESENTATION_LANGUAGE delegates to mutation
✔ REPLACE_ALL_REPRESENTATIONS delegates to mutation
✔ ADD_REPRESENTATION on state having no representations and multiple lemmas mutates to empty values
✔ REMOVE_REPRESENTATION delegates to mutation
✔ ADD_REPRESENTATION on state having existing representation and one lemma mutates to empty values
✔ ADD_REPRESENTATION on state having no representations and one lemma mutates to empty values and derives lemma language
2) LemmaList
✔ getLemmas
✔ add
3) copy
✔ clones Lemmas
✔ creates an identical LemmaList
4) equals
✔ returns false for objects that are not of type LemmaList
✔ returns true for LemmaList with same lemmas
✔ returns false for LemmaList with different lemmas
✔ ignores empty lemmas
✔ returns false for LemmaList of different length
✔ length
✔ remove
5) RepresentationWidget
✔ switches to edit mode when editing
✔ is not in edit mode after being created
✔ adds a new empty representation when editing the widget with no representations and multiple lemmas
✔ adds a new representation with lemma language when editing the widget with no representations and one lemma
✔ adds an empty representation on add
✔ shows only the representation it contains when editing the widget with some representation
✔ detects redundant representation languages and marks the widget
✔ detects redundant representation languages and can mark the individual languages
✔ adds a representation with unique lemmas language on add after delete
✔ cannot remove representation if not in edit mode
✔ can remove a representation
✔ cannot add representation if not in edit mode
✔ is not in edit mode after editing is stopped
✔ can carry redundant representations
6) ItemSelectorWrapper
✔ passes the item ID to the entityselector widget on mount
7) LanguageAndLexicalCategoryWidget
✔ shows the language and the lexical category
✔ switches to edit mode and back
8) wikibase.lexeme.widgets.LexemeHeader
✔ updates language and lexical category on save
✔ shows save button disabled when unsaveable
✔ shows save button enabled when not unsaveable
✔ passes language and lexical category to LanguageAndLexicalCategoryWidget
✔ attempting to save with empty lemmas fails
✔ switch to edit mode
9) isUnsaveable
✔ returns true when there are changes but saving is ongoing
✔ returns true when there are no changes
✔ returns true when there are changes but also lemmas with redundant languages
✔ returns false by default
✔ shows save button disabled without changes
✔ passes lemmas to LemmaWidget
✔ save lemma list with error
10) hasChanges
✔ returns true when language changes
✔ returns true when lexical category changes
✔ returns true when lemmas change
✔ ignores added empty lemmas
✔ returns false by default
✔ save lemma list
✔ cancel edit mode
✔ binds to lemma-widget hasRedundantLanguage event
11) InvalidLanguageIndicator
✔ creates mixin property hasInvalidLanguage returning true for existing InvalidLanguages
✔ creates mixin definition providing computed property hasInvalidLanguage
✔ creates mixin definition method isInvalidLanguage returning false for empty InvalidLanguages
✔ creates mixin property hasInvalidLanguage returning false for empty InvalidLanguages
✔ creates mixin definition with watch that does not fire immediately
✔ creates mixin definition with watch on desired property
✔ creates mixin definition providing method to determine if language isInvalidLanguage
✔ creates mixin watch handler not taking offence in empty language
✔ creates mixin definition with watch that monitors the property recursively
✔ creates mixin definition that adds an InvalidLanguages property to data
✔ creates mixin watch handler that updates InvalidLanguages with respective language values
✔ creates mixin watch handler that can find multiple invalid languages
12) RedundantLanguageIndicator
✔ creates mixin watch handler not taking offence in repeated empty language
✔ creates mixin definition with watch that fires immediately
✔ creates mixin watch handler that updates redundantLanguages with respective language values
✔ creates mixin definition method isRedundantLanguage returning false for empty redundantLanguages
✔ creates mixin watch handler that can find multiple redundant languages
✔ creates mixin property hasRedundantLanguage returning true for existing redundantLanguages
✔ creates mixin definition with watch that monitors the property recursively
✔ creates mixin definition that adds a redundantLanguages property to data
✔ creates mixin definition providing computed property hasRedundantLanguage
✔ creates mixin definition with watch on desired property
✔ creates mixin property hasRedundantLanguage returning false for empty redundantLanguages
✔ creates mixin definition providing method to determine if language isRedundantLanguage
13) mutationTypes
✔ uses unique ids for all mutation types
14) GlossWidget
✔ initialize widget with one gloss
✔ stop editing
✔ switch to edit mode
✔ add a new gloss
✔ removes empty glosses when saved
✔ remove a gloss
✔ create with no glosses - when switched to edit mode empty gloss is added
15) mutations
✔ ADD_REPRESENTATION adds a new representation to the right form
✔ REMOVE_REPRESENTATION removes representation leaving others with updated index
✔ UPDATE_REPRESENTATION_VALUE changes correct representation value
✔ UPDATE_REPRESENTATION_LANGUAGE changes correct representation language
✔ DERIVE_REPRESENTATION_LANGUAGE_FROM_LEMMA changes representation language correctly
✔ REPLACE_ALL_REPRESENTATIONS replaces representations of correct form
16) actionTypes
✔ uses unique ids for all action types
17) wikibase.lexeme.widgets.LemmaWidget
✔ 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
✔ add a new lemma
✔ can carry redundant lemma languages
✔ initialize widget with one lemma
✔ edit mode is true
✔ remove a lemma
✔ edit mode is false
18) LexemeHeader.newLexemeHeaderStore
✔ failed save returns rejected promise with a single error object
✔ mutation updateLanguage changes lexical category and the link to given values
✔ mutation updateLemmas changes lemmas to given values
✔ failed save returns rejected promise with first error object if API returns multiple errors
✔ action save on success mutates the state to start saving, updates state and finishes saving
✔ action save calls API with correct parameters and changes state using data from response
✔ 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 updateRevisionId changes baseRevId to given value
✔ mutation updateLanguage changes language and languageLink to given values
19) focusElement
20) callback
✔ calls focus on selected element
✔ can handle missing element
✔ returns a callback without doing anything else
21) store
✔ creates initial state
22) LexemeSubEntityId
23) getIdSuffix
✔ returns the Sense id suffix
✔ returns the Form id suffix
>> Done!
Summary:
Suites: 23 of 23
Specs: 121 of 121
Expects: 0 (0 failures)
Finished in 0.522 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 17s
156 packages are looking for funding
run `npm fund` for details
23 vulnerabilities (13 moderate, 9 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.4.1",
"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.4.1",
"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.4.1",
"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.4.1",
"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.13",
"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.4.1",
"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.4.1",
"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": 77,
"removed": 28,
"changed": 101,
"audited": 1066,
"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",
"yarn-install"
],
"effects": [
"@wdio/dot-reporter",
"@wdio/junit-reporter",
"@wdio/local-runner"
],
"range": "5.4.10 - 8.40.6",
"nodes": [
"",
"node_modules/@wdio/cli"
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.4.1",
"isSemVerMajor": true
}
},
"@wdio/dot-reporter": {
"name": "@wdio/dot-reporter",
"severity": "high",
"isDirect": false,
"via": [
"@wdio/cli"
],
"effects": [],
"range": "6.0.4 - 8.0.0-alpha.631",
"nodes": [
""
],
"fixAvailable": {
"name": "@wdio/dot-reporter",
"version": "9.2.14",
"isSemVerMajor": true
}
},
"@wdio/junit-reporter": {
"name": "@wdio/junit-reporter",
"severity": "high",
"isDirect": false,
"via": [
"@wdio/cli"
],
"effects": [],
"range": "6.0.4 - 8.0.0-alpha.631",
"nodes": [
""
],
"fixAvailable": {
"name": "@wdio/junit-reporter",
"version": "9.2.14",
"isSemVerMajor": true
}
},
"@wdio/local-runner": {
"name": "@wdio/local-runner",
"severity": "high",
"isDirect": false,
"via": [
"@wdio/cli",
"@wdio/runner"
],
"effects": [],
"range": "6.0.4 - 8.40.6",
"nodes": [
""
],
"fixAvailable": {
"name": "@wdio/local-runner",
"version": "9.4.1",
"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.4.1",
"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
},
"cross-spawn": {
"name": "cross-spawn",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1100562,
"name": "cross-spawn",
"dependency": "cross-spawn",
"title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
"url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "<6.0.6"
},
{
"source": 1100563,
"name": "cross-spawn",
"dependency": "cross-spawn",
"title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
"url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": ">=7.0.0 <7.0.5"
}
],
"effects": [
"yarn-install"
],
"range": "<6.0.6 || >=7.0.0 <7.0.5",
"nodes": [
"",
"",
""
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.4.1",
"isSemVerMajor": 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.4.1",
"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": "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"
],
"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.13",
"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.4.1",
"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.4.1",
"isSemVerMajor": true
}
},
"yarn-install": {
"name": "yarn-install",
"severity": "high",
"isDirect": false,
"via": [
"cross-spawn"
],
"effects": [
"@wdio/cli"
],
"range": "*",
"nodes": [
""
],
"fixAvailable": {
"name": "@wdio/cli",
"version": "9.4.1",
"isSemVerMajor": true
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 2,
"moderate": 15,
"high": 29,
"critical": 4,
"total": 50
},
"dependencies": {
"prod": 1,
"dev": 1065,
"optional": 3,
"peer": 100,
"peerOptional": 0,
"total": 1065
}
}
}
}
--- end ---
{"added": 77, "removed": 28, "changed": 101, "audited": 1066, "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", "yarn-install"], "effects": ["@wdio/dot-reporter", "@wdio/junit-reporter", "@wdio/local-runner"], "range": "5.4.10 - 8.40.6", "nodes": ["", "node_modules/@wdio/cli"], "fixAvailable": {"name": "@wdio/cli", "version": "9.4.1", "isSemVerMajor": true}}, "@wdio/dot-reporter": {"name": "@wdio/dot-reporter", "severity": "high", "isDirect": false, "via": ["@wdio/cli"], "effects": [], "range": "6.0.4 - 8.0.0-alpha.631", "nodes": [""], "fixAvailable": {"name": "@wdio/dot-reporter", "version": "9.2.14", "isSemVerMajor": true}}, "@wdio/junit-reporter": {"name": "@wdio/junit-reporter", "severity": "high", "isDirect": false, "via": ["@wdio/cli"], "effects": [], "range": "6.0.4 - 8.0.0-alpha.631", "nodes": [""], "fixAvailable": {"name": "@wdio/junit-reporter", "version": "9.2.14", "isSemVerMajor": true}}, "@wdio/local-runner": {"name": "@wdio/local-runner", "severity": "high", "isDirect": false, "via": ["@wdio/cli", "@wdio/runner"], "effects": [], "range": "6.0.4 - 8.40.6", "nodes": [""], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.4.1", "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.4.1", "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}, "cross-spawn": {"name": "cross-spawn", "severity": "high", "isDirect": false, "via": [{"source": 1100562, "name": "cross-spawn", "dependency": "cross-spawn", "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn", "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<6.0.6"}, {"source": 1100563, "name": "cross-spawn", "dependency": "cross-spawn", "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn", "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=7.0.0 <7.0.5"}], "effects": ["yarn-install"], "range": "<6.0.6 || >=7.0.0 <7.0.5", "nodes": ["", "", ""], "fixAvailable": {"name": "@wdio/cli", "version": "9.4.1", "isSemVerMajor": 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.4.1", "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": "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"], "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.13", "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.4.1", "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.4.1", "isSemVerMajor": true}}, "yarn-install": {"name": "yarn-install", "severity": "high", "isDirect": false, "via": ["cross-spawn"], "effects": ["@wdio/cli"], "range": "*", "nodes": [""], "fixAvailable": {"name": "@wdio/cli", "version": "9.4.1", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 2, "moderate": 15, "high": 29, "critical": 4, "total": 50}, "dependencies": {"prod": 1, "dev": 1065, "optional": 3, "peer": 100, "peerOptional": 0, "total": 1065}}}}
$ /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 76 packages, removed 28 packages, changed 101 packages, and audited 1065 packages in 13s
152 packages are looking for funding
run `npm fund` for details
# npm audit report
cross-spawn <6.0.6
Severity: high
Regular Expression Denial of Service (ReDoS) in cross-spawn - https://github.com/advisories/GHSA-3xgq-45jj-v275
fix available via `npm audit fix --force`
Will install @wdio/cli@9.4.1, which is a breaking change
node_modules/yarn-install/node_modules/cross-spawn
yarn-install *
Depends on vulnerable versions of cross-spawn
node_modules/yarn-install
@wdio/cli 5.4.10 - 8.40.6
Depends on vulnerable versions of webdriverio
Depends on vulnerable versions of yarn-install
node_modules/@wdio/cli
@wdio/dot-reporter 6.0.4 - 8.0.0-alpha.631
Depends on vulnerable versions of @wdio/cli
node_modules/@wdio/dot-reporter
@wdio/junit-reporter 6.0.4 - 8.0.0-alpha.631
Depends on vulnerable versions of @wdio/cli
node_modules/@wdio/junit-reporter
@wdio/local-runner 6.0.4 - 8.40.6
Depends on vulnerable versions of @wdio/cli
Depends on vulnerable versions of @wdio/runner
node_modules/@wdio/local-runner
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.13, 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.4.1, 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/runner 7.16.5 - 8.40.6
Depends on vulnerable versions of webdriverio
node_modules/@wdio/runner
@wdio/sync >=7.16.5
Depends on vulnerable versions of webdriverio
node_modules/@wdio/sync
34 vulnerabilities (2 low, 11 moderate, 21 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 1064 packages, and audited 1065 packages in 24s
152 packages are looking for funding
run `npm fund` for details
34 vulnerabilities (2 low, 11 moderate, 21 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 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
}
[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 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)
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) mutationTypes
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
✔ uses unique ids for all mutation types
2) actionTypes
✔ uses unique ids for all action types
3) wikibase.lexeme.widgets.LemmaWidget
✔ edit mode is true
✔ edit mode is false
✔ initialize widget with one lemma
✖ add a new lemma (1 failure)
✖ remove a lemma (1 failure)
✔ detects redundant lemma language to mark the individual languages
✔ can carry redundant lemma languages
✔ marks-up the lemma term with the lemma language
✔ detects redundant lemma languages to mark the widget
4) store
✔ creates initial state
5) LexemeHeader.newLexemeHeaderStore
✔ action save on success mutates the state to start saving, updates state and finishes saving
✔ failed save returns rejected promise with first error object if API returns multiple errors
✔ action save calls API with correct parameters and changes state using data from response
✔ mutation updateLanguage changes lexical category and the link to given values
✔ action save calls API with correct parameters when removing an item from the state
✔ mutation updateLemmas changes lemmas to given values
✔ mutation updateLanguage changes language and languageLink to given values
✔ failed save returns rejected promise with a single error object
✔ mutation finishSaving switches the isSaving flag to false
✔ mutation startSaving switches the isSaving flag to true
✔ mutation updateRevisionId changes baseRevId to given value
6) actions
✔ UPDATE_REPRESENTATION_LANGUAGE delegates to mutation
✔ UPDATE_REPRESENTATION_VALUE delegates to mutation
✔ ADD_REPRESENTATION on state having existing representation and one lemma mutates to empty values
✔ ADD_REPRESENTATION on state having no representations and one lemma mutates to empty values and derives lemma language
✔ ADD_REPRESENTATION on state having no representations and multiple lemmas mutates to empty values
✔ REPLACE_ALL_REPRESENTATIONS delegates to mutation
✔ REMOVE_REPRESENTATION delegates to mutation
7) LemmaList
✔ remove
✔ length
✔ getLemmas
✔ add
8) copy
✔ clones Lemmas
✔ creates an identical LemmaList
9) 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
10) LanguageAndLexicalCategoryWidget
✔ switches to edit mode and back
✔ shows the language and the lexical category
11) mutations
✔ REPLACE_ALL_REPRESENTATIONS replaces representations of correct form
✔ DERIVE_REPRESENTATION_LANGUAGE_FROM_LEMMA changes representation language correctly
✔ REMOVE_REPRESENTATION removes representation leaving others with updated index
✔ UPDATE_REPRESENTATION_LANGUAGE changes correct representation language
✔ UPDATE_REPRESENTATION_VALUE changes correct representation value
✔ ADD_REPRESENTATION adds a new representation to the right form
12) RepresentationWidget
✔ can carry redundant representations
✔ cannot add representation if not in edit mode
✔ cannot remove representation if not in edit mode
✔ adds a new empty representation when editing the widget with no representations and multiple lemmas
✔ adds a new representation with lemma language when editing the widget with no representations and one lemma
✔ switches to edit mode when editing
✔ detects redundant representation languages and can mark the individual languages
✔ adds an empty representation on add
✔ detects redundant representation languages and marks the widget
✔ shows only the representation it contains when editing the widget with some representation
✔ is not in edit mode after editing is stopped
✔ is not in edit mode after being created
✔ adds a representation with unique lemmas language on add after delete
✔ can remove a representation
13) ItemSelectorWrapper
✔ passes the item ID to the entityselector widget on mount
14) wikibase.lexeme.widgets.LexemeHeader
✔ cancel edit mode
✔ updates language and lexical category on save
✔ attempting to save with empty lemmas fails
✔ switch to edit mode
✔ passes language and lexical category to LanguageAndLexicalCategoryWidget
✔ save lemma list
✔ save lemma list with error
✔ shows save button disabled without changes
✔ shows save button disabled when unsaveable
✔ binds to lemma-widget hasRedundantLanguage event
15) isUnsaveable
✔ returns true when there are no changes
✔ returns true when there are changes but saving is ongoing
✔ returns true when there are changes but also lemmas with redundant languages
✔ returns false by default
✔ passes lemmas to LemmaWidget
✔ shows save button enabled when not unsaveable
16) hasChanges
✔ returns false by default
✔ returns true when lexical category changes
✔ ignores added empty lemmas
✔ returns true when language changes
✔ returns true when lemmas change
17) InvalidLanguageIndicator
✔ creates mixin definition providing computed property hasInvalidLanguage
✔ creates mixin property hasInvalidLanguage returning false for empty InvalidLanguages
✔ creates mixin watch handler not taking offence in empty language
✔ creates mixin watch handler that can find multiple invalid languages
✔ creates mixin watch handler that updates InvalidLanguages with respective language values
✔ creates mixin property hasInvalidLanguage returning true for existing InvalidLanguages
✔ creates mixin definition that adds an InvalidLanguages property to data
✔ creates mixin definition with watch on desired property
✔ creates mixin definition with watch that does not fire immediately
✔ creates mixin definition with watch that monitors the property recursively
✔ creates mixin definition providing method to determine if language isInvalidLanguage
✔ creates mixin definition method isInvalidLanguage returning false for empty InvalidLanguages
18) GlossWidget
✔ stop editing
✔ initialize widget with one gloss
✔ removes empty glosses when saved
✔ switch to edit mode
✔ remove a gloss
✔ create with no glosses - when switched to edit mode empty gloss is added
✔ add a new gloss
19) focusElement
✔ returns a callback without doing anything else
20) callback
✔ calls focus on selected element
✔ can handle missing element
21) LexemeSubEntityId
22) getIdSuffix
✔ returns the Form id suffix
✔ returns the Sense id suffix
23) RedundantLanguageIndicator
✔ creates mixin property hasRedundantLanguage returning true for existing redundantLanguages
✔ creates mixin definition with watch that fires immediately
✔ creates mixin watch handler not taking offence in repeated empty language
✔ creates mixin definition with watch on desired property
✔ creates mixin definition method isRedundantLanguage returning false for empty redundantLanguages
✔ creates mixin definition with watch that monitors the property recursively
✔ creates mixin definition providing computed property hasRedundantLanguage
✔ creates mixin definition that adds a redundantLanguages property to data
✔ creates mixin watch handler that updates redundantLanguages with respective language values
✔ creates mixin definition providing method to determine if language isRedundantLanguage
✔ creates mixin property hasRedundantLanguage returning false for empty redundantLanguages
✔ creates mixin watch handler that can find multiple redundant languages
>> 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.472 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 1868, 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 1813, 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.