This run took 62 seconds.
$ date --- stdout --- Sat Aug 16 04:07:32 UTC 2025 --- end --- $ git clone file:///srv/git/mediawiki-extensions-RelatedArticles.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 --- ba47deb649ca836d2edb0a54fa0528fc95cd1322 refs/heads/master --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "@babel/helpers": { "name": "@babel/helpers", "severity": "moderate", "isDirect": false, "via": [ { "source": 1104001, "name": "@babel/helpers", "dependency": "@babel/helpers", "title": "Babel has inefficient RegExp complexity in generated code with .replace when transpiling named capturing groups", "url": "https://github.com/advisories/GHSA-968p-4wvh-cqc8", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 6.2, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, "range": "<7.26.10" } ], "effects": [], "range": "<7.26.10", "nodes": [ "node_modules/@babel/helpers" ], "fixAvailable": true }, "@wdio/cli": { "name": "@wdio/cli", "severity": "high", "isDirect": true, "via": [ "inquirer", "webdriverio", "yarn-install" ], "effects": [ "@wdio/junit-reporter", "@wdio/local-runner", "@wdio/spec-reporter" ], "range": "<=9.0.0-alpha.426", "nodes": [ "node_modules/@wdio/cli" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.19.1", "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.19.1", "isSemVerMajor": true } }, "@wdio/local-runner": { "name": "@wdio/local-runner", "severity": "high", "isDirect": true, "via": [ "@wdio/cli", "@wdio/runner" ], "effects": [], "range": "6.0.4 - 8.46.0", "nodes": [ "node_modules/@wdio/local-runner" ], "fixAvailable": { "name": "@wdio/local-runner", "version": "9.19.1", "isSemVerMajor": true } }, "@wdio/mocha-framework": { "name": "@wdio/mocha-framework", "severity": "moderate", "isDirect": true, "via": [ "mocha" ], "effects": [], "range": "7.7.4 - 7.19.5", "nodes": [ "node_modules/@wdio/mocha-framework" ], "fixAvailable": { "name": "@wdio/mocha-framework", "version": "7.40.0", "isSemVerMajor": false } }, "@wdio/runner": { "name": "@wdio/runner", "severity": "high", "isDirect": false, "via": [ "webdriverio" ], "effects": [ "@wdio/local-runner" ], "range": "7.16.5 - 8.46.0", "nodes": [ "node_modules/@wdio/runner" ], "fixAvailable": { "name": "@wdio/local-runner", "version": "9.19.1", "isSemVerMajor": true } }, "@wdio/spec-reporter": { "name": "@wdio/spec-reporter", "severity": "high", "isDirect": true, "via": [ "@wdio/cli" ], "effects": [], "range": "6.0.4 - 8.0.0-alpha.631", "nodes": [ "node_modules/@wdio/spec-reporter" ], "fixAvailable": { "name": "@wdio/spec-reporter", "version": "9.19.1", "isSemVerMajor": true } }, "brace-expansion": { "name": "brace-expansion", "severity": "low", "isDirect": false, "via": [ { "source": 1105443, "name": "brace-expansion", "dependency": "brace-expansion", "title": "brace-expansion Regular Expression Denial of Service vulnerability", "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw", "severity": "low", "cwe": [ "CWE-400" ], "cvss": { "score": 3.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L" }, "range": ">=1.0.0 <=1.1.11" }, { "source": 1105444, "name": "brace-expansion", "dependency": "brace-expansion", "title": "brace-expansion Regular Expression Denial of Service vulnerability", "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw", "severity": "low", "cwe": [ "CWE-400" ], "cvss": { "score": 3.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L" }, "range": ">=2.0.0 <=2.0.1" } ], "effects": [], "range": "1.0.0 - 1.1.11 || 2.0.0 - 2.0.1", "nodes": [ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion", "node_modules/brace-expansion", "node_modules/eslint-plugin-n/node_modules/brace-expansion", "node_modules/filelist/node_modules/brace-expansion", "node_modules/readdir-glob/node_modules/brace-expansion" ], "fixAvailable": true }, "cross-spawn": { "name": "cross-spawn", "severity": "high", "isDirect": false, "via": [ { "source": 1104663, "name": "cross-spawn", "dependency": "cross-spawn", "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn", "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275", "severity": "high", "cwe": [ "CWE-1333" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, "range": "<6.0.6" }, { "source": 1104664, "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/yarn-install/node_modules/cross-spawn" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.19.1", "isSemVerMajor": true } }, "devtools": { "name": "devtools", "severity": "high", "isDirect": false, "via": [ "puppeteer-core" ], "effects": [], "range": ">=7.16.5", "nodes": [ "node_modules/devtools" ], "fixAvailable": true }, "external-editor": { "name": "external-editor", "severity": "low", "isDirect": false, "via": [ "tmp" ], "effects": [ "inquirer" ], "range": ">=1.1.1", "nodes": [ "node_modules/external-editor" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.19.1", "isSemVerMajor": true } }, "form-data": { "name": "form-data", "severity": "critical", "isDirect": false, "via": [ { "source": 1106507, "name": "form-data", "dependency": "form-data", "title": "form-data uses unsafe random function in form-data for choosing boundary", "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4", "severity": "critical", "cwe": [ "CWE-330" ], "cvss": { "score": 0, "vectorString": null }, "range": ">=4.0.0 <4.0.4" }, { "source": 1106508, "name": "form-data", "dependency": "form-data", "title": "form-data uses unsafe random function in form-data for choosing boundary", "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4", "severity": "critical", "cwe": [ "CWE-330" ], "cvss": { "score": 0, "vectorString": null }, "range": ">=3.0.0 <3.0.4" }, { "source": 1106509, "name": "form-data", "dependency": "form-data", "title": "form-data uses unsafe random function in form-data for choosing boundary", "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4", "severity": "critical", "cwe": [ "CWE-330" ], "cvss": { "score": 0, "vectorString": null }, "range": "<2.5.4" } ], "effects": [ "request" ], "range": "<=2.5.3 || 3.0.0 - 3.0.3 || 4.0.0 - 4.0.3", "nodes": [ "node_modules/form-data", "node_modules/jest-environment-jsdom/node_modules/form-data", "node_modules/request/node_modules/form-data" ], "fixAvailable": false }, "inquirer": { "name": "inquirer", "severity": "low", "isDirect": false, "via": [ "external-editor" ], "effects": [ "@wdio/cli" ], "range": "3.0.0 - 8.2.6 || 9.0.0 - 9.3.7", "nodes": [ "node_modules/inquirer" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.19.1", "isSemVerMajor": true } }, "mocha": { "name": "mocha", "severity": "moderate", "isDirect": false, "via": [ "nanoid", "serialize-javascript" ], "effects": [ "@wdio/mocha-framework" ], "range": "8.2.0 - 10.5.2", "nodes": [ "node_modules/mocha" ], "fixAvailable": { "name": "@wdio/mocha-framework", "version": "7.40.0", "isSemVerMajor": false } }, "mwbot": { "name": "mwbot", "severity": "moderate", "isDirect": false, "via": [ "request" ], "effects": [ "wdio-mediawiki" ], "range": ">=0.1.6", "nodes": [ "node_modules/mwbot" ], "fixAvailable": false }, "nanoid": { "name": "nanoid", "severity": "moderate", "isDirect": false, "via": [ { "source": 1101163, "name": "nanoid", "dependency": "nanoid", "title": "Predictable results in nanoid generation when given non-integer values", "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55", "severity": "moderate", "cwe": [ "CWE-835" ], "cvss": { "score": 4.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N" }, "range": "<3.3.8" } ], "effects": [ "mocha" ], "range": "<3.3.8", "nodes": [ "node_modules/nanoid" ], "fixAvailable": { "name": "@wdio/mocha-framework", "version": "7.40.0", "isSemVerMajor": false } }, "puppeteer-core": { "name": "puppeteer-core", "severity": "high", "isDirect": false, "via": [ "tar-fs", "ws" ], "effects": [ "devtools", "webdriverio" ], "range": "10.0.0 - 22.11.1", "nodes": [ "node_modules/puppeteer-core" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.19.1", "isSemVerMajor": true } }, "request": { "name": "request", "severity": "critical", "isDirect": false, "via": [ { "source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" }, "form-data", "tough-cookie" ], "effects": [ "mwbot" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": false }, "serialize-javascript": { "name": "serialize-javascript", "severity": "moderate", "isDirect": false, "via": [ { "source": 1105261, "name": "serialize-javascript", "dependency": "serialize-javascript", "title": "Cross-site Scripting (XSS) in serialize-javascript", "url": "https://github.com/advisories/GHSA-76p7-773f-r4q5", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 5.4, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N" }, "range": ">=6.0.0 <6.0.2" } ], "effects": [ "mocha" ], "range": "6.0.0 - 6.0.1", "nodes": [ "node_modules/serialize-javascript" ], "fixAvailable": { "name": "@wdio/mocha-framework", "version": "7.40.0", "isSemVerMajor": false } }, "tar-fs": { "name": "tar-fs", "severity": "high", "isDirect": false, "via": [ { "source": 1104677, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File", "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx", "severity": "high", "cwe": [ "CWE-22" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N" }, "range": ">=2.0.0 <2.1.2" }, { "source": 1106930, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs can extract outside the specified dir with a specific tarball", "url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v", "severity": "high", "cwe": [ "CWE-22" ], "cvss": { "score": 0, "vectorString": null }, "range": ">=2.0.0 <2.1.3" } ], "effects": [ "puppeteer-core" ], "range": "2.0.0 - 2.1.2", "nodes": [ "node_modules/tar-fs" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.19.1", "isSemVerMajor": true } }, "tmp": { "name": "tmp", "severity": "low", "isDirect": false, "via": [ { "source": 1106849, "name": "tmp", "dependency": "tmp", "title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter", "url": "https://github.com/advisories/GHSA-52f5-9888-hmc6", "severity": "low", "cwe": [ "CWE-59" ], "cvss": { "score": 2.5, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N" }, "range": "<=0.2.3" } ], "effects": [ "external-editor" ], "range": "<=0.2.3", "nodes": [ "node_modules/tmp" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.19.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" ], "fixAvailable": false }, "wdio-mediawiki": { "name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": [ "mwbot" ], "effects": [], "range": "*", "nodes": [ "node_modules/wdio-mediawiki" ], "fixAvailable": false }, "webdriverio": { "name": "webdriverio", "severity": "high", "isDirect": false, "via": [ "devtools", "puppeteer-core" ], "effects": [ "@wdio/cli", "@wdio/runner" ], "range": "7.16.5 - 8.46.0", "nodes": [ "node_modules/webdriverio" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.19.1", "isSemVerMajor": true } }, "ws": { "name": "ws", "severity": "high", "isDirect": false, "via": [ { "source": 1098392, "name": "ws", "dependency": "ws", "title": "ws affected by a DoS when handling a request with many HTTP headers", "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q", "severity": "high", "cwe": [ "CWE-476" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, "range": ">=8.0.0 <8.17.1" } ], "effects": [ "puppeteer-core" ], "range": "8.0.0 - 8.17.0", "nodes": [ "node_modules/puppeteer-core/node_modules/ws" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.19.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.19.1", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 4, "moderate": 8, "high": 12, "critical": 2, "total": 26 }, "dependencies": { "prod": 1, "dev": 1060, "optional": 3, "peer": 14, "peerOptional": 0, "total": 1060 } } } --- 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: 38 installs, 0 updates, 0 removals - Locking composer/pcre (3.3.2) - Locking composer/semver (3.4.3) - Locking composer/spdx-licenses (1.5.9) - Locking composer/xdebug-handler (3.0.5) - Locking dealerdirect/phpcodesniffer-composer-installer (v1.1.2) - Locking doctrine/deprecations (1.1.5) - Locking felixfbecker/advanced-json-rpc (v3.2.1) - Locking mediawiki/mediawiki-codesniffer (v47.0.0) - Locking mediawiki/mediawiki-phan-config (0.17.0) - Locking mediawiki/minus-x (1.1.3) - Locking mediawiki/phan-taint-check-plugin (7.0.0) - Locking microsoft/tolerant-php-parser (v0.1.2) - Locking netresearch/jsonmapper (v4.5.0) - Locking phan/phan (5.5.1) - Locking php-parallel-lint/php-console-color (v1.0.1) - Locking php-parallel-lint/php-console-highlighter (v1.0.0) - Locking php-parallel-lint/php-parallel-lint (v1.4.0) - Locking phpcsstandards/phpcsextra (1.2.1) - Locking phpcsstandards/phpcsutils (1.0.12) - Locking phpdocumentor/reflection-common (2.2.0) - Locking phpdocumentor/reflection-docblock (5.6.2) - Locking phpdocumentor/type-resolver (1.10.0) - Locking phpstan/phpdoc-parser (2.2.0) - Locking psr/container (2.0.2) - Locking psr/log (3.0.2) - Locking sabre/event (5.1.7) - Locking squizlabs/php_codesniffer (3.12.2) - Locking symfony/console (v7.3.2) - Locking symfony/deprecation-contracts (v3.6.0) - Locking symfony/polyfill-ctype (v1.32.0) - Locking symfony/polyfill-intl-grapheme (v1.32.0) - Locking symfony/polyfill-intl-normalizer (v1.32.0) - Locking symfony/polyfill-mbstring (v1.32.0) - Locking symfony/polyfill-php80 (v1.32.0) - Locking symfony/service-contracts (v3.6.0) - Locking symfony/string (v7.3.2) - Locking tysonandre/var_representation_polyfill (0.1.3) - Locking webmozart/assert (1.11.0) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 38 installs, 0 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] - Installing squizlabs/php_codesniffer (3.12.2): Extracting archive - Installing dealerdirect/phpcodesniffer-composer-installer (v1.1.2): Extracting archive - Installing composer/pcre (3.3.2): Extracting archive - Installing symfony/polyfill-php80 (v1.32.0): Extracting archive - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive - Installing symfony/polyfill-mbstring (v1.32.0): Extracting archive - Installing composer/spdx-licenses (1.5.9): Extracting archive - Installing composer/semver (3.4.3): Extracting archive - Installing mediawiki/mediawiki-codesniffer (v47.0.0): Extracting archive - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.32.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.32.0): Extracting archive - Installing symfony/polyfill-ctype (v1.32.0): Extracting archive - Installing symfony/string (v7.3.2): Extracting archive - Installing symfony/deprecation-contracts (v3.6.0): Extracting archive - Installing psr/container (2.0.2): Extracting archive - Installing symfony/service-contracts (v3.6.0): Extracting archive - Installing symfony/console (v7.3.2): 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.2.0): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing doctrine/deprecations (1.1.5): Extracting archive - Installing phpdocumentor/type-resolver (1.10.0): Extracting archive - Installing phpdocumentor/reflection-docblock (5.6.2): Extracting archive - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive - Installing psr/log (3.0.2): Extracting archive - Installing composer/xdebug-handler (3.0.5): Extracting archive - Installing phan/phan (5.5.1): Extracting archive - Installing mediawiki/phan-taint-check-plugin (7.0.0): Extracting archive - Installing mediawiki/mediawiki-phan-config (0.17.0): Extracting archive - Installing mediawiki/minus-x (1.1.3): Extracting archive - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive 0/36 [>---------------------------] 0% 20/36 [===============>------------] 55% 35/36 [===========================>] 97% 36/36 [============================] 100% 1 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating autoload files 17 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils --- end --- Upgrading n:@wdio/cli from 7.16.13 -> 7.40.0 Upgrading n:@wdio/junit-reporter from 7.16.13 -> 7.40.0 Upgrading n:@wdio/local-runner from 7.16.13 -> 7.40.0 Upgrading n:@wdio/mocha-framework from 7.16.13 -> 7.40.0 Upgrading n:eslint-config-wikimedia from 0.29.1 -> 0.31.0 Upgrading n:jest from 27.4.7 -> 29.7.0 Upgrading n:@wdio/spec-reporter from 7.16.13 -> 7.40.0 Upgrading n:@wikimedia/codex from 1.16.0 -> 2.2.1 Upgrading n:ts-jest from 27.1.3 -> 29.2.5 $ /usr/bin/npm install --- stderr --- npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: RelatedArticles@undefined npm ERR! Found: @wikimedia/codex@1.16.0 npm ERR! node_modules/@wikimedia/codex npm ERR! dev @wikimedia/codex@"2.2.1" from the root project npm ERR! npm ERR! Could not resolve dependency: npm ERR! dev @wikimedia/codex@"2.2.1" from the root project npm ERR! npm ERR! Conflicting peer dependency: vue@3.5.18 npm ERR! node_modules/vue npm ERR! peer vue@"^3.5.13" from @wikimedia/codex@2.2.1 npm ERR! node_modules/@wikimedia/codex npm ERR! dev @wikimedia/codex@"2.2.1" from the root project npm ERR! npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution. npm ERR! npm ERR! npm ERR! For a full report see: npm ERR! /cache/_logs/2025-08-16T04_07_39_034Z-eresolve-report.txt npm ERR! A complete log of this run can be found in: npm ERR! /cache/_logs/2025-08-16T04_07_39_034Z-debug-0.log --- stdout --- --- end --- $ rm -rf package-lock.json node_modules --- stdout --- --- end --- $ /usr/bin/npm install --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@2.2.1', npm WARN EBADENGINE required: { npm: '>=10.8.1', node: '>=20' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.2.1', npm WARN EBADENGINE required: { npm: '>=10.8.1', node: '>=20' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated @types/easy-table@1.2.3: This is a stub types definition. easy-table provides its own type definitions, so you do not need this installed. npm WARN deprecated 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 lodash.get@4.4.2: This package is deprecated. Use the optional chaining (?.) operator instead. npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.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 domexception@4.0.0: Use your platform's native DOMException instead npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated sinon@12.0.1: 16.1.1 npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options. --- stdout --- added 1109 packages, and audited 1110 packages in 42s 166 packages are looking for funding run `npm fund` for details 20 vulnerabilities (3 low, 3 moderate, 12 high, 2 critical) To address issues that do not require attention, run: npm audit fix To address all issues possible (including breaking changes), run: npm audit fix --force Some issues need review, and may require choosing a different dependency. Run `npm audit` for details. --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- $ ./node_modules/.bin/eslint . --fix --- stderr --- Oops! Something went wrong! :( ESLint: 8.57.1 ESLint couldn't find the plugin "@typescript-eslint/eslint-plugin". (The package "@typescript-eslint/eslint-plugin" was not found when loaded as a Node module from the directory "/src/repo".) It's likely that the plugin isn't installed correctly. Try reinstalling by running the following: npm install @typescript-eslint/eslint-plugin@latest --save-dev The plugin "@typescript-eslint/eslint-plugin" was referenced from the config file in ".eslintrc.json » eslint-config-wikimedia/server » ./common#overrides[2] » ./typescript". If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. --- stdout --- --- end --- $ ./node_modules/.bin/eslint . -f json --- stderr --- Oops! Something went wrong! :( ESLint: 8.57.1 ESLint couldn't find the plugin "@typescript-eslint/eslint-plugin". (The package "@typescript-eslint/eslint-plugin" was not found when loaded as a Node module from the directory "/src/repo".) It's likely that the plugin isn't installed correctly. Try reinstalling by running the following: npm install @typescript-eslint/eslint-plugin@latest --save-dev The plugin "@typescript-eslint/eslint-plugin" was referenced from the config file in ".eslintrc.json » eslint-config-wikimedia/server » ./common#overrides[2] » ./typescript". If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. --- stdout --- --- end --- Traceback (most recent call last): File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 2031, 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 1967, in run self.npm_upgrade(plan) File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1253, in npm_upgrade hook(update) File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1647, in _handle_eslint errors = json.loads( ^^^^^^^^^^^ File "/usr/lib/python3.11/json/__init__.py", line 346, in loads return _default_decoder.decode(s) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)