This run took 138 seconds.
$ date --- stdout --- Sun Nov 17 17:19:38 UTC 2024 --- end --- $ git clone file:///srv/git/mediawiki-services-mobileapps.git repo --depth=1 -b master --- stderr --- Cloning into 'repo'... --- stdout --- --- end --- $ git config user.name libraryupgrader --- stdout --- --- end --- $ git config user.email tools.libraryupgrader@tools.wmflabs.org --- stdout --- --- end --- $ git submodule update --init --- stdout --- --- end --- $ grr init --- stdout --- Installed commit-msg hook. --- end --- $ git show-ref refs/heads/master --- stdout --- 605640c5deb3dffb3da9033527c5df98fdb21156 refs/heads/master --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "body-parser": { "name": "body-parser", "severity": "high", "isDirect": true, "via": [ { "source": 1099520, "name": "body-parser", "dependency": "body-parser", "title": "body-parser vulnerable to denial of service when url encoding is enabled", "url": "https://github.com/advisories/GHSA-qwcr-r2fm-qrc7", "severity": "high", "cwe": [ "CWE-405" ], "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": "<1.20.3" } ], "effects": [ "express" ], "range": "<1.20.3", "nodes": [ "node_modules/body-parser" ], "fixAvailable": true }, "cookie": { "name": "cookie", "severity": "low", "isDirect": false, "via": [ { "source": 1099846, "name": "cookie", "dependency": "cookie", "title": "cookie accepts cookie name, path, and domain with out of bounds characters", "url": "https://github.com/advisories/GHSA-pxg6-pf52-xh8x", "severity": "low", "cwe": [ "CWE-74" ], "cvss": { "score": 0, "vectorString": null }, "range": "<0.7.0" } ], "effects": [ "express", "mock-express-response" ], "range": "<0.7.0", "nodes": [ "node_modules/cookie", "node_modules/mock-express-response/node_modules/cookie" ], "fixAvailable": false }, "express": { "name": "express", "severity": "high", "isDirect": true, "via": [ { "source": 1099529, "name": "express", "dependency": "express", "title": "express vulnerable to XSS via response.redirect()", "url": "https://github.com/advisories/GHSA-qw6h-vgh9-j6wx", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L" }, "range": "<4.20.0" }, "body-parser", "cookie", "path-to-regexp", "send", "serve-static" ], "effects": [], "range": "<=4.21.0 || 5.0.0-alpha.1 - 5.0.0", "nodes": [ "node_modules/express" ], "fixAvailable": true }, "limitation": { "name": "limitation", "severity": "moderate", "isDirect": false, "via": [ "wikimedia-kad-fork" ], "effects": [ "service-runner" ], "range": ">=0.2.3", "nodes": [ "node_modules/limitation" ], "fixAvailable": { "name": "service-runner", "version": "3.0.0", "isSemVerMajor": true } }, "mock-express-response": { "name": "mock-express-response", "severity": "moderate", "isDirect": true, "via": [ "cookie", "send" ], "effects": [], "range": "*", "nodes": [ "node_modules/mock-express-response" ], "fixAvailable": false }, "ms": { "name": "ms", "severity": "moderate", "isDirect": false, "via": [ { "source": 1094419, "name": "ms", "dependency": "ms", "title": "Vercel ms Inefficient Regular Expression Complexity vulnerability", "url": "https://github.com/advisories/GHSA-w9mr-4mfr-499f", "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": "<2.0.0" } ], "effects": [ "wikimedia-kad-fork" ], "range": "<2.0.0", "nodes": [ "node_modules/wikimedia-kad-fork/node_modules/ms" ], "fixAvailable": { "name": "service-runner", "version": "3.0.0", "isSemVerMajor": true } }, "path-to-regexp": { "name": "path-to-regexp", "severity": "high", "isDirect": false, "via": [ { "source": 1099558, "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": ">=4.0.0 <6.3.0" }, { "source": 1099562, "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.1.10" } ], "effects": [ "express" ], "range": "<=0.1.9 || 4.0.0 - 6.2.2", "nodes": [ "node_modules/nise/node_modules/path-to-regexp", "node_modules/path-to-regexp" ], "fixAvailable": true }, "preq": { "name": "preq", "severity": "high", "isDirect": true, "via": [ "request", "requestretry" ], "effects": [], "range": "*", "nodes": [ "node_modules/preq" ], "fixAvailable": false }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" }, "tough-cookie" ], "effects": [ "preq", "requestretry" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": false }, "requestretry": { "name": "requestretry", "severity": "high", "isDirect": false, "via": [ { "source": 1090420, "name": "requestretry", "dependency": "requestretry", "title": "Cookie exposure in requestretry", "url": "https://github.com/advisories/GHSA-hjp8-2cm3-cc45", "severity": "high", "cwe": [ "CWE-200" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" }, "range": "<7.0.0" }, "request" ], "effects": [ "preq" ], "range": "*", "nodes": [ "node_modules/requestretry" ], "fixAvailable": false }, "send": { "name": "send", "severity": "moderate", "isDirect": false, "via": [ { "source": 1099525, "name": "send", "dependency": "send", "title": "send vulnerable to template injection that can lead to XSS", "url": "https://github.com/advisories/GHSA-m6fv-jmcg-4jfg", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L" }, "range": "<0.19.0" } ], "effects": [ "express", "serve-static" ], "range": "<0.19.0", "nodes": [ "node_modules/mock-express-response/node_modules/send", "node_modules/send" ], "fixAvailable": true }, "serve-static": { "name": "serve-static", "severity": "moderate", "isDirect": false, "via": [ { "source": 1099527, "name": "serve-static", "dependency": "serve-static", "title": "serve-static vulnerable to template injection that can lead to XSS", "url": "https://github.com/advisories/GHSA-cm22-4g7w-348p", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L" }, "range": "<1.16.0" }, "send" ], "effects": [], "range": "<=1.16.0", "nodes": [ "node_modules/serve-static" ], "fixAvailable": true }, "service-runner": { "name": "service-runner", "severity": "moderate", "isDirect": true, "via": [ "limitation" ], "effects": [], "range": ">=3.1.0", "nodes": [ "node_modules/service-runner" ], "fixAvailable": { "name": "service-runner", "version": "3.0.0", "isSemVerMajor": true } }, "tough-cookie": { "name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": [ "CWE-1321" ], "cvss": { "score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, "range": "<4.1.3" } ], "effects": [ "request" ], "range": "<4.1.3", "nodes": [ "node_modules/tough-cookie" ], "fixAvailable": false }, "wikimedia-kad-fork": { "name": "wikimedia-kad-fork", "severity": "moderate", "isDirect": false, "via": [ "ms" ], "effects": [ "limitation" ], "range": "*", "nodes": [ "node_modules/wikimedia-kad-fork" ], "fixAvailable": { "name": "service-runner", "version": "3.0.0", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 1, "moderate": 9, "high": 5, "critical": 0, "total": 15 }, "dependencies": { "prod": 257, "dev": 579, "optional": 24, "peer": 1, "peerOptional": 0, "total": 849 } } } --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "body-parser": { "name": "body-parser", "severity": "high", "isDirect": true, "via": [ { "source": 1099520, "name": "body-parser", "dependency": "body-parser", "title": "body-parser vulnerable to denial of service when url encoding is enabled", "url": "https://github.com/advisories/GHSA-qwcr-r2fm-qrc7", "severity": "high", "cwe": [ "CWE-405" ], "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": "<1.20.3" } ], "effects": [ "express" ], "range": "<1.20.3", "nodes": [ "node_modules/body-parser" ], "fixAvailable": true }, "cookie": { "name": "cookie", "severity": "low", "isDirect": false, "via": [ { "source": 1099846, "name": "cookie", "dependency": "cookie", "title": "cookie accepts cookie name, path, and domain with out of bounds characters", "url": "https://github.com/advisories/GHSA-pxg6-pf52-xh8x", "severity": "low", "cwe": [ "CWE-74" ], "cvss": { "score": 0, "vectorString": null }, "range": "<0.7.0" } ], "effects": [ "express", "mock-express-response" ], "range": "<0.7.0", "nodes": [ "node_modules/cookie", "node_modules/mock-express-response/node_modules/cookie" ], "fixAvailable": false }, "express": { "name": "express", "severity": "high", "isDirect": true, "via": [ { "source": 1099529, "name": "express", "dependency": "express", "title": "express vulnerable to XSS via response.redirect()", "url": "https://github.com/advisories/GHSA-qw6h-vgh9-j6wx", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L" }, "range": "<4.20.0" }, "body-parser", "cookie", "path-to-regexp", "send", "serve-static" ], "effects": [], "range": "<=4.21.0 || 5.0.0-alpha.1 - 5.0.0", "nodes": [ "node_modules/express" ], "fixAvailable": true }, "limitation": { "name": "limitation", "severity": "moderate", "isDirect": false, "via": [ "wikimedia-kad-fork" ], "effects": [ "service-runner" ], "range": ">=0.2.3", "nodes": [ "node_modules/limitation" ], "fixAvailable": { "name": "service-runner", "version": "3.0.0", "isSemVerMajor": true } }, "mock-express-response": { "name": "mock-express-response", "severity": "moderate", "isDirect": true, "via": [ "cookie", "send" ], "effects": [], "range": "*", "nodes": [ "node_modules/mock-express-response" ], "fixAvailable": false }, "ms": { "name": "ms", "severity": "moderate", "isDirect": false, "via": [ { "source": 1094419, "name": "ms", "dependency": "ms", "title": "Vercel ms Inefficient Regular Expression Complexity vulnerability", "url": "https://github.com/advisories/GHSA-w9mr-4mfr-499f", "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": "<2.0.0" } ], "effects": [ "wikimedia-kad-fork" ], "range": "<2.0.0", "nodes": [ "node_modules/wikimedia-kad-fork/node_modules/ms" ], "fixAvailable": { "name": "service-runner", "version": "3.0.0", "isSemVerMajor": true } }, "path-to-regexp": { "name": "path-to-regexp", "severity": "high", "isDirect": false, "via": [ { "source": 1099558, "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": ">=4.0.0 <6.3.0" }, { "source": 1099562, "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.1.10" } ], "effects": [ "express" ], "range": "<=0.1.9 || 4.0.0 - 6.2.2", "nodes": [ "node_modules/nise/node_modules/path-to-regexp", "node_modules/path-to-regexp" ], "fixAvailable": true }, "preq": { "name": "preq", "severity": "high", "isDirect": true, "via": [ "request", "requestretry" ], "effects": [], "range": "*", "nodes": [ "node_modules/preq" ], "fixAvailable": false }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" }, "tough-cookie" ], "effects": [ "preq", "requestretry" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": false }, "requestretry": { "name": "requestretry", "severity": "high", "isDirect": false, "via": [ { "source": 1090420, "name": "requestretry", "dependency": "requestretry", "title": "Cookie exposure in requestretry", "url": "https://github.com/advisories/GHSA-hjp8-2cm3-cc45", "severity": "high", "cwe": [ "CWE-200" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" }, "range": "<7.0.0" }, "request" ], "effects": [ "preq" ], "range": "*", "nodes": [ "node_modules/requestretry" ], "fixAvailable": false }, "send": { "name": "send", "severity": "moderate", "isDirect": false, "via": [ { "source": 1099525, "name": "send", "dependency": "send", "title": "send vulnerable to template injection that can lead to XSS", "url": "https://github.com/advisories/GHSA-m6fv-jmcg-4jfg", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L" }, "range": "<0.19.0" } ], "effects": [ "express", "serve-static" ], "range": "<0.19.0", "nodes": [ "node_modules/mock-express-response/node_modules/send", "node_modules/send" ], "fixAvailable": true }, "serve-static": { "name": "serve-static", "severity": "moderate", "isDirect": false, "via": [ { "source": 1099527, "name": "serve-static", "dependency": "serve-static", "title": "serve-static vulnerable to template injection that can lead to XSS", "url": "https://github.com/advisories/GHSA-cm22-4g7w-348p", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L" }, "range": "<1.16.0" }, "send" ], "effects": [], "range": "<=1.16.0", "nodes": [ "node_modules/serve-static" ], "fixAvailable": true }, "service-runner": { "name": "service-runner", "severity": "moderate", "isDirect": true, "via": [ "limitation" ], "effects": [], "range": ">=3.1.0", "nodes": [ "node_modules/service-runner" ], "fixAvailable": { "name": "service-runner", "version": "3.0.0", "isSemVerMajor": true } }, "tough-cookie": { "name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": [ "CWE-1321" ], "cvss": { "score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, "range": "<4.1.3" } ], "effects": [ "request" ], "range": "<4.1.3", "nodes": [ "node_modules/tough-cookie" ], "fixAvailable": false }, "wikimedia-kad-fork": { "name": "wikimedia-kad-fork", "severity": "moderate", "isDirect": false, "via": [ "ms" ], "effects": [ "limitation" ], "range": "*", "nodes": [ "node_modules/wikimedia-kad-fork" ], "fixAvailable": { "name": "service-runner", "version": "3.0.0", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 1, "moderate": 9, "high": 5, "critical": 0, "total": 15 }, "dependencies": { "prod": 257, "dev": 579, "optional": 24, "peer": 1, "peerOptional": 0, "total": 849 } } } --- 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 --- stdout --- { "added": 852, "removed": 0, "changed": 0, "audited": 853, "funding": 124, "audit": { "auditReportVersion": 2, "vulnerabilities": { "body-parser": { "name": "body-parser", "severity": "high", "isDirect": false, "via": [ { "source": 1099520, "name": "body-parser", "dependency": "body-parser", "title": "body-parser vulnerable to denial of service when url encoding is enabled", "url": "https://github.com/advisories/GHSA-qwcr-r2fm-qrc7", "severity": "high", "cwe": [ "CWE-405" ], "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": "<1.20.3" } ], "effects": [ "express" ], "range": "<1.20.3", "nodes": [ "" ], "fixAvailable": true }, "cookie": { "name": "cookie", "severity": "low", "isDirect": false, "via": [ { "source": 1099846, "name": "cookie", "dependency": "cookie", "title": "cookie accepts cookie name, path, and domain with out of bounds characters", "url": "https://github.com/advisories/GHSA-pxg6-pf52-xh8x", "severity": "low", "cwe": [ "CWE-74" ], "cvss": { "score": 0, "vectorString": null }, "range": "<0.7.0" } ], "effects": [ "express", "mock-express-response" ], "range": "<0.7.0", "nodes": [ "", "node_modules/mock-express-response/node_modules/cookie" ], "fixAvailable": false }, "express": { "name": "express", "severity": "high", "isDirect": false, "via": [ { "source": 1099529, "name": "express", "dependency": "express", "title": "express vulnerable to XSS via response.redirect()", "url": "https://github.com/advisories/GHSA-qw6h-vgh9-j6wx", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L" }, "range": "<4.20.0" }, "body-parser", "cookie", "path-to-regexp", "send", "serve-static" ], "effects": [], "range": "<=4.21.0 || 5.0.0-alpha.1 - 5.0.0", "nodes": [ "" ], "fixAvailable": true }, "limitation": { "name": "limitation", "severity": "moderate", "isDirect": false, "via": [ "wikimedia-kad-fork" ], "effects": [ "service-runner" ], "range": ">=0.2.3", "nodes": [ "node_modules/limitation" ], "fixAvailable": { "name": "service-runner", "version": "3.0.0", "isSemVerMajor": true } }, "mock-express-response": { "name": "mock-express-response", "severity": "moderate", "isDirect": true, "via": [ "cookie", "send" ], "effects": [], "range": "*", "nodes": [ "node_modules/mock-express-response" ], "fixAvailable": false }, "ms": { "name": "ms", "severity": "moderate", "isDirect": false, "via": [ { "source": 1094419, "name": "ms", "dependency": "ms", "title": "Vercel ms Inefficient Regular Expression Complexity vulnerability", "url": "https://github.com/advisories/GHSA-w9mr-4mfr-499f", "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": "<2.0.0" } ], "effects": [ "wikimedia-kad-fork" ], "range": "<2.0.0", "nodes": [ "node_modules/wikimedia-kad-fork/node_modules/ms" ], "fixAvailable": { "name": "service-runner", "version": "3.0.0", "isSemVerMajor": true } }, "path-to-regexp": { "name": "path-to-regexp", "severity": "high", "isDirect": false, "via": [ { "source": 1099558, "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": ">=4.0.0 <6.3.0" }, { "source": 1099562, "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.1.10" } ], "effects": [ "express" ], "range": "<=0.1.9 || 4.0.0 - 6.2.2", "nodes": [ "", "" ], "fixAvailable": true }, "preq": { "name": "preq", "severity": "high", "isDirect": true, "via": [ "request", "requestretry" ], "effects": [], "range": "*", "nodes": [ "node_modules/preq" ], "fixAvailable": false }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" }, "tough-cookie" ], "effects": [ "preq", "requestretry" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": false }, "requestretry": { "name": "requestretry", "severity": "high", "isDirect": false, "via": [ { "source": 1090420, "name": "requestretry", "dependency": "requestretry", "title": "Cookie exposure in requestretry", "url": "https://github.com/advisories/GHSA-hjp8-2cm3-cc45", "severity": "high", "cwe": [ "CWE-200" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" }, "range": "<7.0.0" }, "request" ], "effects": [ "preq" ], "range": "*", "nodes": [ "node_modules/requestretry" ], "fixAvailable": false }, "send": { "name": "send", "severity": "moderate", "isDirect": false, "via": [ { "source": 1099525, "name": "send", "dependency": "send", "title": "send vulnerable to template injection that can lead to XSS", "url": "https://github.com/advisories/GHSA-m6fv-jmcg-4jfg", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L" }, "range": "<0.19.0" } ], "effects": [ "express", "serve-static" ], "range": "<0.19.0", "nodes": [ "", "node_modules/mock-express-response/node_modules/send" ], "fixAvailable": true }, "serve-static": { "name": "serve-static", "severity": "moderate", "isDirect": false, "via": [ { "source": 1099527, "name": "serve-static", "dependency": "serve-static", "title": "serve-static vulnerable to template injection that can lead to XSS", "url": "https://github.com/advisories/GHSA-cm22-4g7w-348p", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L" }, "range": "<1.16.0" }, "send" ], "effects": [], "range": "<=1.16.0", "nodes": [ "" ], "fixAvailable": true }, "service-runner": { "name": "service-runner", "severity": "moderate", "isDirect": true, "via": [ "limitation" ], "effects": [], "range": ">=3.1.0", "nodes": [ "node_modules/service-runner" ], "fixAvailable": { "name": "service-runner", "version": "3.0.0", "isSemVerMajor": true } }, "tough-cookie": { "name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": [ "CWE-1321" ], "cvss": { "score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, "range": "<4.1.3" } ], "effects": [ "request" ], "range": "<4.1.3", "nodes": [ "node_modules/tough-cookie" ], "fixAvailable": false }, "wikimedia-kad-fork": { "name": "wikimedia-kad-fork", "severity": "moderate", "isDirect": false, "via": [ "ms" ], "effects": [ "limitation" ], "range": "*", "nodes": [ "node_modules/wikimedia-kad-fork" ], "fixAvailable": { "name": "service-runner", "version": "3.0.0", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 1, "moderate": 9, "high": 5, "critical": 0, "total": 15 }, "dependencies": { "prod": 260, "dev": 579, "optional": 24, "peer": 1, "peerOptional": 0, "total": 852 } } } } --- end --- {"added": 852, "removed": 0, "changed": 0, "audited": 853, "funding": 124, "audit": {"auditReportVersion": 2, "vulnerabilities": {"body-parser": {"name": "body-parser", "severity": "high", "isDirect": false, "via": [{"source": 1099520, "name": "body-parser", "dependency": "body-parser", "title": "body-parser vulnerable to denial of service when url encoding is enabled", "url": "https://github.com/advisories/GHSA-qwcr-r2fm-qrc7", "severity": "high", "cwe": ["CWE-405"], "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": "<1.20.3"}], "effects": ["express"], "range": "<1.20.3", "nodes": [""], "fixAvailable": true}, "cookie": {"name": "cookie", "severity": "low", "isDirect": false, "via": [{"source": 1099846, "name": "cookie", "dependency": "cookie", "title": "cookie accepts cookie name, path, and domain with out of bounds characters", "url": "https://github.com/advisories/GHSA-pxg6-pf52-xh8x", "severity": "low", "cwe": ["CWE-74"], "cvss": {"score": 0, "vectorString": null}, "range": "<0.7.0"}], "effects": ["express", "mock-express-response"], "range": "<0.7.0", "nodes": ["", "node_modules/mock-express-response/node_modules/cookie"], "fixAvailable": false}, "express": {"name": "express", "severity": "high", "isDirect": false, "via": [{"source": 1099529, "name": "express", "dependency": "express", "title": "express vulnerable to XSS via response.redirect()", "url": "https://github.com/advisories/GHSA-qw6h-vgh9-j6wx", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L"}, "range": "<4.20.0"}, "body-parser", "cookie", "path-to-regexp", "send", "serve-static"], "effects": [], "range": "<=4.21.0 || 5.0.0-alpha.1 - 5.0.0", "nodes": [""], "fixAvailable": true}, "limitation": {"name": "limitation", "severity": "moderate", "isDirect": false, "via": ["wikimedia-kad-fork"], "effects": ["service-runner"], "range": ">=0.2.3", "nodes": ["node_modules/limitation"], "fixAvailable": {"name": "service-runner", "version": "3.0.0", "isSemVerMajor": true}}, "mock-express-response": {"name": "mock-express-response", "severity": "moderate", "isDirect": true, "via": ["cookie", "send"], "effects": [], "range": "*", "nodes": ["node_modules/mock-express-response"], "fixAvailable": false}, "ms": {"name": "ms", "severity": "moderate", "isDirect": false, "via": [{"source": 1094419, "name": "ms", "dependency": "ms", "title": "Vercel ms Inefficient Regular Expression Complexity vulnerability", "url": "https://github.com/advisories/GHSA-w9mr-4mfr-499f", "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": "<2.0.0"}], "effects": ["wikimedia-kad-fork"], "range": "<2.0.0", "nodes": ["node_modules/wikimedia-kad-fork/node_modules/ms"], "fixAvailable": {"name": "service-runner", "version": "3.0.0", "isSemVerMajor": true}}, "path-to-regexp": {"name": "path-to-regexp", "severity": "high", "isDirect": false, "via": [{"source": 1099558, "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": ">=4.0.0 <6.3.0"}, {"source": 1099562, "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.1.10"}], "effects": ["express"], "range": "<=0.1.9 || 4.0.0 - 6.2.2", "nodes": ["", ""], "fixAvailable": true}, "preq": {"name": "preq", "severity": "high", "isDirect": true, "via": ["request", "requestretry"], "effects": [], "range": "*", "nodes": ["node_modules/preq"], "fixAvailable": false}, "request": {"name": "request", "severity": "moderate", "isDirect": false, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "tough-cookie"], "effects": ["preq", "requestretry"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": false}, "requestretry": {"name": "requestretry", "severity": "high", "isDirect": false, "via": [{"source": 1090420, "name": "requestretry", "dependency": "requestretry", "title": "Cookie exposure in requestretry", "url": "https://github.com/advisories/GHSA-hjp8-2cm3-cc45", "severity": "high", "cwe": ["CWE-200"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"}, "range": "<7.0.0"}, "request"], "effects": ["preq"], "range": "*", "nodes": ["node_modules/requestretry"], "fixAvailable": false}, "send": {"name": "send", "severity": "moderate", "isDirect": false, "via": [{"source": 1099525, "name": "send", "dependency": "send", "title": "send vulnerable to template injection that can lead to XSS", "url": "https://github.com/advisories/GHSA-m6fv-jmcg-4jfg", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L"}, "range": "<0.19.0"}], "effects": ["express", "serve-static"], "range": "<0.19.0", "nodes": ["", "node_modules/mock-express-response/node_modules/send"], "fixAvailable": true}, "serve-static": {"name": "serve-static", "severity": "moderate", "isDirect": false, "via": [{"source": 1099527, "name": "serve-static", "dependency": "serve-static", "title": "serve-static vulnerable to template injection that can lead to XSS", "url": "https://github.com/advisories/GHSA-cm22-4g7w-348p", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L"}, "range": "<1.16.0"}, "send"], "effects": [], "range": "<=1.16.0", "nodes": [""], "fixAvailable": true}, "service-runner": {"name": "service-runner", "severity": "moderate", "isDirect": true, "via": ["limitation"], "effects": [], "range": ">=3.1.0", "nodes": ["node_modules/service-runner"], "fixAvailable": {"name": "service-runner", "version": "3.0.0", "isSemVerMajor": true}}, "tough-cookie": {"name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [{"source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"}, "range": "<4.1.3"}], "effects": ["request"], "range": "<4.1.3", "nodes": ["node_modules/tough-cookie"], "fixAvailable": false}, "wikimedia-kad-fork": {"name": "wikimedia-kad-fork", "severity": "moderate", "isDirect": false, "via": ["ms"], "effects": ["limitation"], "range": "*", "nodes": ["node_modules/wikimedia-kad-fork"], "fixAvailable": {"name": "service-runner", "version": "3.0.0", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 1, "moderate": 9, "high": 5, "critical": 0, "total": 15}, "dependencies": {"prod": 260, "dev": 579, "optional": 24, "peer": 1, "peerOptional": 0, "total": 852}}}} $ /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 deprecated @types/long@5.0.0: This is a stub types definition. long provides its own type definitions, so you do not need this installed. npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm WARN deprecated kad-fs@0.0.4: This package is no longer maintained. npm WARN deprecated rimraf@2.4.5: Rimraf versions prior to v4 are no longer supported npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated @humanwhocodes/config-array@0.11.14: Use @eslint/config-array instead npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm WARN deprecated kad-memstore@0.0.1: This package is no longer maintained. npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@6.0.4: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@8.1.0: 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 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 --- stdout --- added 851 packages, and audited 852 packages in 12s 124 packages are looking for funding run `npm fund` for details # npm audit report cookie <0.7.0 cookie accepts cookie name, path, and domain with out of bounds characters - https://github.com/advisories/GHSA-pxg6-pf52-xh8x No fix available node_modules/mock-express-response/node_modules/cookie mock-express-response * Depends on vulnerable versions of cookie Depends on vulnerable versions of send node_modules/mock-express-response ms <2.0.0 Severity: moderate Vercel ms Inefficient Regular Expression Complexity vulnerability - https://github.com/advisories/GHSA-w9mr-4mfr-499f fix available via `npm audit fix --force` Will install service-runner@3.0.0, which is a breaking change node_modules/wikimedia-kad-fork/node_modules/ms wikimedia-kad-fork * Depends on vulnerable versions of ms node_modules/wikimedia-kad-fork limitation >=0.2.3 Depends on vulnerable versions of wikimedia-kad-fork node_modules/limitation service-runner >=3.1.0 Depends on vulnerable versions of limitation node_modules/service-runner request * Severity: moderate Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6 Depends on vulnerable versions of tough-cookie No fix available node_modules/request preq * Depends on vulnerable versions of request Depends on vulnerable versions of requestretry node_modules/preq requestretry * Depends on vulnerable versions of request node_modules/requestretry send <0.19.0 Severity: moderate send vulnerable to template injection that can lead to XSS - https://github.com/advisories/GHSA-m6fv-jmcg-4jfg fix available via `npm audit fix` node_modules/mock-express-response/node_modules/send tough-cookie <4.1.3 Severity: moderate tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3 No fix available node_modules/tough-cookie 11 vulnerabilities (1 low, 8 moderate, 2 high) To address issues that do not require attention, run: npm audit fix To address all issues possible (including breaking changes), run: npm audit fix --force Some issues need review, and may require choosing a different dependency. --- end --- Verifying that tests still pass $ /usr/bin/npm ci --- stderr --- npm WARN deprecated @types/long@5.0.0: This is a stub types definition. long provides its own type definitions, so you do not need this installed. npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm WARN deprecated kad-fs@0.0.4: This package is no longer maintained. npm WARN deprecated rimraf@2.4.5: Rimraf versions prior to v4 are no longer supported npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated @humanwhocodes/config-array@0.11.14: Use @eslint/config-array instead npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm WARN deprecated kad-memstore@0.0.1: This package is no longer maintained. npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@6.0.4: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@8.1.0: 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 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 --- stdout --- added 851 packages, and audited 852 packages in 13s 124 packages are looking for funding run `npm fund` for details 11 vulnerabilities (1 low, 8 moderate, 2 high) To address issues that do not require attention, run: npm audit fix To address all issues possible (including breaking changes), run: npm audit fix --force Some issues need review, and may require choosing a different dependency. Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stderr --- (node:440) Warning: "version" is a reserved word. Please do one of the following: - Disable version with `yargs.version(false)` if using "version" as an option - Use the built-in `yargs.version` method instead (if applicable) - Use a different option key https://yargs.js.org/docs/#api-reference-version (Use `node --trace-warnings ...` to show where the warning was created) --- stdout --- > mobileapps@0.3.0 test > PREQ_CONNECT_TIMEOUT=15 mocha 'test/{,!(diff)/**}/*.js' && npm run lint express app ✔ should get robots.txt ✔ should set CORS headers ✔ should set CSP headers ✔ should not follow redirects (544ms) Swagger spec ✔ get the spec ✔ spec validation validate responses against schema ✔ summary response should conform to schema (7209ms) ✔ media-list response should conform to schema (657ms) validate spec examples Expected: true Result: false - Should validate tests Expected: 200 Result: undefined Cache config ✔ should parse config and adapt ca value Cached endpoints ✔ should call cache get for cached summary output ✔ should call cache set for non-cached summary page (436ms) ✔ should call cache get for cached mobile-html output ✔ should call cache set for non-cached mobile-html page (840ms) Caching events ✔ should generate resource change and purge events Caching hooks ✔ should call hit hook on content hit ✔ should call update hook on content update (570ms) definition ✔ missing definitions (62ms) ✔ non-term page (292ms) ✔ unsupported language (109ms) ✔ non-English term on English Wiktionary returns valid results (1932ms) ✔ translingual term (813ms) ✔ sets content-language header (1009ms) description ✔ delete local description (66ms) GET ✔ missing description, enwiki (106ms) ✔ missing description, other wiki (179ms) ✔ ok description, enwiki (144ms) ✔ ok description, ru wiki (189ms) PUT ✔ failed fetching token, central ✔ failed fetching token, local ✔ failed fetching page, local ✔ missing required parameter ✔ set central description: fail ✔ set central description ✔ set central description, variant ✔ set local description DELETE ✔ failed fetching token, central ✔ failed fetching token, local ✔ failed fetching page, local ✔ delete description service information ✔ should get the service name ✔ should get the service version ✔ should redirect to the service home page ✔ should get the service info media ✔ Media-list resources should be the same on mobile-html (364ms) transform/html/to/mobile-html ✔ simple html convertion should work properly (484ms) ✔ single html convertion should work properly (160ms) ✔ empty section with id=0 convertion should work properly (152ms) mobile-html-offline-resources ✔ Response should be array with JS and CSS resources mobile-html ✔ HTML should be sectioned (1032ms) ✔ mobile-html headers not compatible with restbase output (227ms) ✔ mobile-html headers compatible with restbase output (222ms) ✔ mobile-html should have css links + viewport set (224ms) ✔ mobile-html should have lead paragraph moved up (9046ms) ✔ mobile-html should not have navboxes (657ms) ✔ mobile-html should have meta tags indicating page protection (236ms) ✔ mobile-html from parse should have meta tags indicating page protection (318ms) ✔ mobile-html should not enable edit talk page button by default (606ms) mobile-sections-lead ✔ Sections/deep page should have a lead object with expected properties (139ms) ✔ en San Francisco should have a lead object with a geo property (1121ms) ✔ es Savonlinna should have a lead object with a geo property (277ms) ✔ Wikivoyage en Paris should have a lead object with a geo property (572ms) ✔ Mare Tranquillitatis (lunar sea) should not have a geo property (220ms) ✔ Barack Obama should have a pronunciation (16062ms) ✔ Barack Obama infobox is part of the html (1216ms) ✔ Enwiki Uranus loads successfully (no pronunciation parsing TypeErrors) (604ms) - Enwiki Odisha loads successfully (no pronunciation parsing TypeErrors) ✔ Enwiki Yazidis loads successfully (no pronunciation parsing TypeErrors) (598ms) ✔ ' in pronunciation file name does not cause parsing error) (350ms) ✔ Enwiki Lead_paragraph_move has the infobox moved after the lead paragraph (127ms) ✔ Enwiki hatnotes are promoted to the lead object (1298ms) ✔ Enwiki Multiple page issues are promoted to lead (113ms) ✔ Enwiki Pages with single issue have issue promoted to lead (128ms) ✔ Disambiguation pages are flagged. (125ms) - Content model present in response for non-wikitext content mobile-sections ✔ Mismatched title and revision id give 404 (5433ms) ✔ Malformed revision id gives bad request (44ms) ✔ Missing title should respond with 404 (150ms) ✔ Sections/deep page should have a lead object with expected properties (141ms) ✔ en Main page should have a lead object with expected properties (401ms) ✔ Description from local wiki should be used (140ms) ✔ Titles with special chars should not error out when parsing pronunciation files (730ms) ✔ Page with known past 'text-decoration' error should load successfully (1131ms) ✔ Page with irregular Spoken Wikipedia template usage should load correctly (589ms) ✔ Internal links should have title attribute (120ms) - Any sections that contain references should have a reference flag ✔ The last section can be marked as a reference section (164ms) ✔ Page with math formulas should load without error (281ms) summary ✔ should respond with expected properties in payload (713ms) ✔ should respond with content-language header (10818ms) ✔ empty summary should be sent for empty page (268ms) ✔ main page should return empty summary and type should be 'mainpage' (291ms) ✔ main page in non-mainspace should also return type: 'mainpage' (848ms) ✔ summary should come from first real content paragraph (3304ms) ✔ Empty extracts should be returned for a file page ✔ Empty extracts should be returned for a talk page ✔ Empty extracts should be returned for a redirected page Expected: "no-extract" Result: "standard" ✔ timestamp should refer to the requested revision, not the latest revision (2193ms) ✔ 404 for a page that doesn't exist (301ms) - 404 for a page with invalid title ✔ Description from local wiki should be used (246ms) ✔ Summary URLs do not contain un-encoded special characters (T216739) (350ms) ✔ Stray leading citation and template are stripped before parsing intro (T225474) (1239ms) ✔ Non wikitext content model should have timestamp in summary (267ms) lib:apiUtil ✔ checkForQueryPagesInResponse should return 504 when query.pages are absent ✔ batching works correctly ✔ order is preserved when Array.reduce is called on resolved BBPromise.all batches ✔ MW API request expanded from template includes Accept-Language header ✔ Checks header for explicit parsoid backend exists and its false ✔ Checks header for explicit parsoid backend exists and its true ✔ Checks header for explicit parsoid backend true (case insensitive) ✔ Checks header for explicit parsoid backend doesnt exist lib:core-api-compat unit tests ✔ should create a HTTPTitleRedirectError ✔ redirect middleware should redirect if configured ✔ redirect middleware should not redirect if error not matching ✔ redirect middleware should not redirect if not reverse url defined PCS configured to redirect ✔ mobile-html should redirect to the resolved page (204ms) 1) mobile-html should redirect to the resolved page when using action=parse ✔ mobile-html-offline-resources should not redirect to the resolved page PCS configured to redirect with absolute URLs ✔ mobile-html should redirect to the resolved page (210ms) PCS configured to not redirect ✔ mobile-html should not redirect and should parse the resolved response (222ms) ✔ should fixup missing content-language header (437ms) lib:dateUtil ✔ getRequestedDate(2016-04-15) should return a valid Date object ✔ iso8601DateFromYYYYMMDD ✔ addDays positive ✔ addDays zero ✔ addDays negative ✔ addDays immutable ✔ formatYYYYMMDD ✔ isWithinLast3Days ✔ date format validation should reject invalid formats lib:definitions Level 2 headers ✔ extracts them to language code keys parts of speech ✔ is set language ✔ is set on each entry examples parsed formatted with MediaWiki markup (#:/#::) ✔ extracts usage examples formatted with microformats ✔ extracts usage examples unparsed/old format formatted with MediaWiki markup (#:/#::) ✔ extracts usage examples formatted with microformats ✔ extracts usage examples lib:definitions:parseExamples formatted with microformats ✔ extracts usage examples formatted with plain MediaWiki markup ✔ extracts usage examples lib:definitions:parseMicroformats ✔ parses a simple microformat ✔ filters specific formats Local description template editing ✔ Simple param, only template ✔ Simple param, in the beginning ✔ Simple param, in the middle ✔ Named param ✔ Unnamed param, multiple params, unnamed ✔ Unnamed param, multiple params, named ✔ named param, multiple params, unnamed ✔ named param, multiple params, named ✔ Empty wikitext ✔ Respects lowercase ✔ no template lib:domUtil isRTL ✔ isRTL should return false for LTR doc (132ms) ✔ isRTL should return true for RTL doc getBaseUri() ✔ returns URL without protocol getHttpsBaseUri() ✔ returns URL with https protocol getParsoidPlainTitle ✔ getParsoidPlainTitle should return normalized title getParsoidLinkTitle ✔ getParsoidLinkTitle should return DB title ✔ getParsoidLinkTitle should percent-decode title lib:media expected items are included or excluded ✔ items should be found for expected selectors ✔ items should not be found for other selectors ✔ false positives should be filtered lib:media metadata is correctly parsed from HTML ✔ all expected captions are present ✔ all expected data-mw properties are present ✔ all expected derivative properties are present ✔ media file derivative with no codecs in type attribute is parsed correctly ✔ spoken Wikipedia file is correctly identified - pronunciation audio file is correctly identified ✔ section is correctly identified ✔ titles are decoded after parsing from HTML - pronunciation titles are decoded after parsing from HTML ✔ items without imageinfo properties (e.g., deleted items) are filtered lib:media parse structured artist info ✔ all info is parsed from common HTML structure ✔ 'html' and 'name' fields are returned from plain text input ✔ only html returned for site other than Commons ✔ only html returned if additional text is present ✔ only html returned if non-namespace portion of the title !== html.textContent ✔ parses html with lang from metadata object ✔ parses html with lang (non-English) from metadata object ✔ undefined result if input is an empty string lib:media:getCodecs ✔ codecs are parsed from type attributes without errors lib:media:getStructuredSrcSet ✔ should return structured srcset values ✔ should return structured srcset and src values ✔ should return 1x if no scale is present in the srcset values ✔ should return empty array if srcset is empty lib:metadata buildTableOfContents ✔ should have same form as MediaWiki parser-generated TOC lib:metadata ✔ augmentCategories handles undefined categories augmentLangLinks ✔ handles undefined langlinks ✔ bails out if an empty title is found ✔ bails out if an empty title is found (and nonempty title exists) ✔ creates augmented langlink if input is good metadata:preprocessing ✔ strips comments ✔ strips span[typeof=mw:FallbackId] ✔ strips span:empty lib:mobile-util ✔ mwApiTrue handles formatversions 1 and 2 ✔ domainForLangCode swaps in lang code if domain has >2 levels ✔ createDocument should accept an empty string ✔ createDocument should not block the event loop (359ms) setLanguageHeaders ✔ passes through headers (lower-case names in original) ✔ passes through headers (upper-case names in original) ✔ strips 'accept' from vary value with other values present ✔ strips 'Accept' from vary value with other values present ✔ strips vary header if set to 'Accept' only ✔ strips vary header if set to 'accept' only lib:mobile/mobile-request-util ✔ getOutputMode should return defaults when provided nonsense string ✔ getOutputMode should return defaults when provided undefined ✔ getOutputMode should return defaults when provided null ✔ getOutputMode should return the requested item when it is the first member of the array ✔ getOutputMode should return the requested item when it is a non-first member of the array lib:MobileHTML ✔ does not block the event loop (755ms) ✔ detects mwids ✔ detects https ✔ detects header tags ✔ detects single bracket spans ✔ detects inline background styles ✔ detects infobox classes ✔ detects infobox exclusion classes ✔ detects new class ✔ detects images to exclude from widening class ✔ detects reference text ✔ detects forbidden element classes ✔ detects forbidden element class substrings ✔ detects forbidden div classes ✔ detects forbidden span classes ✔ detects forbidden element ids ✔ detects style overriding classes ✔ was worth it to write these regexes (302ms) ✔ truncates reference links properly ✔ detects text under divs with about attribute ✔ detects specific HTML structure when "notheme" class adding is to be skipped from <span> inside <th> ✔ detects all elements inside <div> with class "equation-box-elem" lib:mobileview-html buildSection ✔ section 0 ✔ section 1 ✔ Chinese heading rewriteWikiLinks ✔ single link wrapImagesInSpanElements ✔ single image lib:mwapi:getFlaggedOrLatestRevision ✔ Test de.wikipedia.org with flagged revision extension (99ms) ✔ Test pt.wikipedia.org without flagged revision extension ✔ Test ta.wikinews.org with flagged revision extension (85ms) ✔ Test pl.wikinews.org without flagged revision extension ✔ Test de.wikiquote.org with flagged revision extension (99ms) ✔ Test pl.wikiquote.org without flagged revision extension ✔ Test pl.wikisource.org with flagged revision extension (124ms) ✔ Test en.wikisource.org without flagged revision extension ✔ Test is.wiktionary.org with flagged revision extension (87ms) ✔ Test en.wiktionary.org without flagged revision extension ✔ Test en.wikibooks.org with flagged revision extension (85ms) ✔ Test de.wikibooks.org without flagged revision extension ✔ Test non-flagged article from test2.wikipedia.org (239ms) ✔ Test pending change article from test2.wikipedia.org (139ms) lib:mwapi:getPrimaryEarthCoordinates ✔ gets primary earth coordinates (single coordinate input) ✔ gets primary earth coordinates (multiple coordinate input) ✔ secondary coordinates are ignored ✔ non-earth coordinates are ignored lib:mwapi ✔ scaled thumb URL returned if initial URL is a thumb URL and original width > desired width lib:mwapi buildLeadImageUrls ✔ 2000px thumb should be resized for all widths ✔ 555px thumb should return 320 and 555 for rest ✔ 750px thumb should return 320, 640, and 750 for rest ✔ 200px thumb should return 200px URL for all thumb sizes ✔ should ignore non-thumbnail URLs ✔ should ignore 'thumb' when not a path segment ✔ should create thumb URLs correctly if width regex pattern is in original filename ✔ should handle edge case thumb filename patterns ✔ should handle edge case thumb filename patterns with width regex in original name lib:mwapi:queryForMetadata ✔ ensure that displaytitle is always requested (204ms) lib:mwapi:simplifyProtectionObject ✔ simplifyProtectionObject should simplify ✔ simplifyProtectionObject should remove duplicates ✔ simplifyProtectionObject should keep non-duplicates ✔ simplifyProtectionObject should return empty object for empty list lib:parsePronunciation ✔ has pronunciation file v1 ✔ has pronunciation file v2 ✔ no pronunciation file lib:parseSpokenWikipedia ✔ one spoken file ✔ multiple spoken files ✔ no spoken files lib:parsoid-access etag handling correctly parses and handles etags ✔ gets strong etag with no quotes ✔ strips prefix from weak etags ✔ gets revision from etag ✔ gets revision and tid from etag ✔ getEtagFromHeaders handles undefined input ✔ getRevisionFromEtag handles undefined input ✔ getRevAndTidFromEtag handles undefined input parses modified timestamp ✔ parses timestamp from domino Document lib:parsoid-sections (section elements) ✔ getSectionsText(empty) should produce an empty lead section ✔ getSectionsText() with just text should produce a lead section ✔ getSectionsText() with one h2 should produce two sections ✔ getSectionsText() with one h2 and h3 should produce three sections ✔ getSectionsText() with h2 inside lead should produce one section ✔ getSectionsText() with one h2 inside div should not produce another section ✔ getSectionsText() with one h3 inside div should not produce another section ✔ section inside lead section should not be part of lead section ✔ div/section inside lead section should be part of lead section ✔ should not warn for page containing only a lead section ✔ should warn for non-lead section without heading properties ✔ should not warn if id & anchor are found for all sections after the lead section ✔ should not warn for non-lead non-editable section without heading properties ✔ should not warn if a non-editable section precedes the true lead section ✔ should throw if sectionObj is invalid ✔ validatePreviousSection should log a warning if appropriate ✔ non-editable sections are flagged justLeadSection ✔ should just return the first section ✔ should skip non-editable section ✔ should return empty string if no lead section exists ✔ should skip malformed section tag with no data-mw-section-id ✔ should ignore data-mw-section-id multiples of 10 lib:summary buildExtracts ✔ Applies stripUnneededMarkup ✔ Don't select scribunto errors. getSummaryType ✔ identifies main page ✔ identifies disambig page ✔ defaults to "standard" ✔ type for ns > 0 is no-extract ✔ type for non-wikitext content model is no-extract ✔ type for redirect is no-extract lib:talk parseUserTalkPageDocIntoTopicsWithReplies ✔ two h2 topics return first topic ID 1 ✔ text before first h2 returns separate topic ID 0 ✔ h3 section is given it's own topic ✔ empty h2 with title returns separate topic ✔ empty h2 without title is filtered out ✔ handles empty links ✔ removes figures ✔ does not block the event loop (55ms) lib:escape + unescape parentheses Latin parentheses escaping ✔ properly escapes Latin parentheses ✔ properly unescapes Latin parentheses Non-Latin parentheses escaping ✔ properly escapes non-Latin parentheses ✔ properly unescapes non-Latin parentheses lib:flattenElements ✔ replaces a with span, keeps class attribute ✔ replaces a with span, keeps style attribute ✔ replaces a tag with plain text if no attributes to keep ✔ retains HTML inside elements ✔ does not change the text content of the node ✔ drops `mw-redirect` class ✔ drops `new` class ✔ keeps `foo` class extractHatnotes ✔ .hatnote element ✔ .dablink element ✔ hatnote not in lead section ✔ multiple hatnotes ✔ no hatnotes ✔ dewiki hatnotes extractLeadIntroduction ✔ isEmptyChild ✔ matches the spec ✔ Trailing text content is escaped extractPageIssues ✔ single issue ✔ multiple issues ✔ issue in non-lead section ✔ no issues lib:addPageHeader ✔ addPageHeader should add header element with description (122ms) ✔ addPageHeader handles documents with no section elements lib:pcsHideRedLinks ✔ hideRedLinks should drop <a> elements with class="new" (113ms) lib:moveReferenceListStyles ✔ empty document ✔ one list, one template style ✔ style outside ref list stays ✔ one list, two template styles; +basic deduplication ✔ two lists, two template styles; +basic deduplication lib:sanitizeSummary regular expressions ✔ ANY_REGEX matches ✔ ANY_REGEX does not match ✔ DECIMAL_REGEX matches ✔ DECIMAL_REGEX does not match ✔ CSS_SIZE_REGEX matches ✔ CSS_SIZE_REGEX does not match ✔ SINGLE_STRING_REGEX matches ✔ SINGLE_STRING_REGEX does not match ✔ HEX_REGEX matches ✔ HEX_REGEX does not match ✔ RGB_REGEX matches ✔ RGB_REGEX does not match ✔ HSL_REGEX matches ✔ HSL_REGEX does not match via sanitize-html ✔ removes anchor tags but keeps content (not in allowedTags list) ✔ removes script tags (in nonTextTags list) ✔ keeps blockquote ✔ but removes blockquote.cite attribute ✔ keeps abbr with .alt .aria-hidden and .class ✔ keeps span.style border ✔ removes audio tags ✔ removes video tags ✔ keeps img.src, .srcset, .width and .height attributes ✔ removes disallowed schemes ✔ removes background url" lib:stripGermanIPA ✔ removes German IPA text (outer text) ✔ removes German IPA text (outer text, Placeholder) ✔ removes German IPA text (outer span) lib:summarize follows spec ✔ keeps spaces before closing spans ✔ removes really all double spaces, even the ones caused due to unmatched tags ✔ removes spaces before commas ✔ flattens spans with ` ` -- removes extra spaces around it, too. ✔ flattens spans with multiple ` ` -- removes extra spaces around it, too. ✔ flattening spans before the `(` enables this parenthetical to be removed ✔ removes audio, video, and track tags ✔ ignores parens inside attributes by escaping them earlier ✔ ignores parens inside attributes by escaping them earlier (non-latin parentheses) ✔ reduces multiple spaces to single space ✔ removes problematic elements including their content ✔ removes unwanted attributes ✔ keeps white-listed attributes ✔ removes comments ✔ flattens empty nodes ✔ flattens links ✔ removes .noexcerpt elements ✔ removes .noprint elements ✔ keeps sup elements ✔ removes .mw-ref elements ✔ removes .reference elements - T176519 ✔ removes math elements but any math images are shown ✔ keeps elements with style="display:none;" ✔ removes parentheticals ✔ removes multiple parentheticals ✔ keeps parentheticals without spaces ✔ keeps parentheticals without spaces even if there are spaces in the HTML syntax ✔ keeps parentheticals when they contain more complex formulas or links ✔ keeps all parentheticals when they contain complex formulas or links ✔ removes empty parentheticals also when nested parenthetical stripping is suspended ✔ keeps some nested parentheticals with formulas intact ✔ removes nested parentheticals without spaces ✔ removes nested parentheticals without other characters between the () ✔ removes nested parentheticals with leading (or space) ✔ removes trailing spaces after punctuation before closing tag ✔ flattens nested empty spans ✔ removes some IPAs in nested partentheses ✔ ignores parentheticals inside a data-mw attribute ✔ removes content in parentheticals + double spaces ✔ removes birth and death dates inside parentheticals ✔ removes parentheticals contain '*' symbols ✔ removes content inside Chinese parentheticals ✔ removes content inside Japanese parentheticals ✔ removes content inside Cantonese parentheticals ✔ removes content inside parentheticals written in `wuu` language variant ✔ removes content inside parentheticals written in `gan` language variant ✔ keeps parentheticals if it doesn't include any spaces ✔ keeps parentheticals with single word and leading space inside and out ✔ removes parentheticals with multiple words and leading space inside and out ✔ removes empty parentheticals with leading comma ✔ removes parentheticals beginning and ending with spaces ✔ removes nested parentheticals for non-Latin parens ✔ removes parentheticals with multiple words and leading ✔ parentheticals stripping is not greedy ✔ full stops do not impact the summary length (T173640) ✔ keeps bold elements ✔ reduces multiple spaces to single space ✔ strip space before punctuation followed by tags ✔ keeps bold elementsa and regular text that contain parentheses ✔ keeps bold elements that contain parentheses ✔ keeps bold elements that contain parentheses and single quotes and spaces lib:summarize regex fun ✔ detects complex chemical formulas ✔ detects single character with italic symbols inside parentheses ✔ but skips areas lib:wrapSections ✔ should expand into multiple sections when action=parse (en) (115ms) ✔ should expand into multiple sections when action=parse (zh) (85ms) lib:app-transforms ✔ fixVideoAnchor should skip video tags just holding audio ✔ fixVideoAnchor should transform actual videos lib:size-transforms ✔ rmBracketSpans should remove the spans around brackets ✔ rmElements should remove the spans with style="display:none" lib:transforms ✔ shortenPageInternalLinks should remove the title in the href ✔ shortenPageInternalLinks with single quote and space ✔ shortenPageInternalLinks with colon and single quote ✔ shortenPageInternalLinks with special chars ✔ shortenPageInternalLinks with double quote ✔ shortenPageInternalLinks with single quote and startsWith ./ summary:preprocessing ✔ removes IPA speaker symbols (de): IPA in span ✔ removes IPA speaker symbols (en): IPAc-en in span ✔ removes spans with style display:none rmMwIdAttributes ✔ removes id attribute with - ✔ removes id attribute with _ ✔ does not remove id attribute with id not starting with mw ✔ does not remove id attribute with id too long lib:wikiLanguage ✔ parses accept language headers ✔ parses accept language headers without spaces ✔ parses accept language headers with inconsistent spaces ✔ returns relevant srwiki language codes ✔ returns relevant zhwiki language codes ✔ falls back on the provided language code ✔ removes duplicates ✔ handles invalid input ✔ handles legacy input ✔ identifies languages with variants ✔ parses the language code from a domain ✔ returns the right language variant from request object ✔ falls back to language code when accept-language invalid ✔ falls back to language code when no accept-language header sent 472 passing (2m) 7 pending 1 failing 1) PCS configured to redirect mobile-html should redirect to the resolved page when using action=parse: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/src/repo/test/lib/api-util/core-api-compat.js) at listOnTimeout (node:internal/timers:569:17) at process.processTimers (node:internal/timers:512:7) --- 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.