This run took 92 seconds.
From 2ef3a7e8ae160ca2fe1ce00d15ecef7c29c15877 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sat, 28 Feb 2026 13:52:39 +0000
Subject: [PATCH] build: Updating dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
composer:
* mediawiki/minus-x: 1.1.3 → 2.0.1
* mediawiki/mediawiki-codesniffer: 49.0.0 → 50.0.0
The following sniffs are failing and were disabled:
* MediaWiki.Commenting.FunctionComment.MissingParamName
* MediaWiki.Commenting.FunctionComment.MissingParamTag
* mediawiki/mediawiki-phan-config: 0.18.0 → 0.19.0
npm:
* ajv: 6.12.6, 8.17.1 → 6.14.0, 8.18.0
* https://github.com/advisories/GHSA-2g4f-4pwh-qvx6
* diff: 3.5.0, 4.0.4 → 3.5.1, 4.0.4
* https://github.com/advisories/GHSA-73rr-hh4g-fpgx
Change-Id: Ic626d392ed3895656ac05bf2a45f05c4e4436309
---
.phpcs.xml | 5 ++-
composer.json | 6 ++--
package-lock.json | 88 +++++++++++++++++++++++------------------------
3 files changed, 51 insertions(+), 48 deletions(-)
diff --git a/.phpcs.xml b/.phpcs.xml
index faa666c..3d8768a 100644
--- a/.phpcs.xml
+++ b/.phpcs.xml
@@ -1,6 +1,9 @@
<?xml version="1.0"?>
<ruleset>
- <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki" />
+ <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamName" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamTag" />
+ </rule>
<file>.</file>
<arg name="extensions" value="php"/>
diff --git a/composer.json b/composer.json
index ab35a61..a1ff26a 100644
--- a/composer.json
+++ b/composer.json
@@ -17,9 +17,9 @@
"serialization/serialization": "~3.2|~4.0"
},
"require-dev": {
- "mediawiki/mediawiki-codesniffer": "49.0.0",
- "mediawiki/mediawiki-phan-config": "0.18.0",
- "mediawiki/minus-x": "1.1.3",
+ "mediawiki/mediawiki-codesniffer": "50.0.0",
+ "mediawiki/mediawiki-phan-config": "0.19.0",
+ "mediawiki/minus-x": "2.0.1",
"php-parallel-lint/php-console-highlighter": "1.0.0",
"php-parallel-lint/php-parallel-lint": "1.4.0"
},
diff --git a/package-lock.json b/package-lock.json
index bd70fc8..d1e043c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -537,9 +537,9 @@
}
},
"node_modules/@eslint/eslintrc/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
@@ -1116,12 +1116,12 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "brace-expansion": "^2.0.2"
},
"engines": {
"node": ">=16 || 14 >=14.17"
@@ -1266,9 +1266,9 @@
}
},
"node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
@@ -2034,9 +2034,9 @@
}
},
"node_modules/diff": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
- "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.1.tgz",
+ "integrity": "sha512-Z3u54A8qGyqFOSr2pk0ijYs8mOE9Qz8kTvtKeBI+upoG9j04Sq+oI7W8zAJiQybDcESET8/uIdHzs0p3k4fZlw==",
"dev": true,
"engines": {
"node": ">=0.3.1"
@@ -3078,9 +3078,9 @@
}
},
"node_modules/eslint/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
@@ -5879,9 +5879,9 @@
}
},
"node_modules/qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
+ "version": "6.5.5",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.5.tgz",
+ "integrity": "sha512-mzR4sElr1bfCaPJe7m8ilJ6ZXdDaGoObcYR0ZHSsktM/Lt21MVHj5De30GQH2eiZ1qGRTO7LCAzQsUeXTNexWQ==",
"dev": true,
"engines": {
"node": ">=0.6"
@@ -7018,9 +7018,9 @@
}
},
"node_modules/table/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"dev": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
@@ -8137,9 +8137,9 @@
},
"dependencies": {
"minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
@@ -8549,12 +8549,12 @@
}
},
"minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
"requires": {
- "brace-expansion": "^2.0.1"
+ "brace-expansion": "^2.0.2"
}
}
}
@@ -8655,9 +8655,9 @@
}
},
"ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -9223,9 +9223,9 @@
"dev": true
},
"diff": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
- "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.1.tgz",
+ "integrity": "sha512-Z3u54A8qGyqFOSr2pk0ijYs8mOE9Qz8kTvtKeBI+upoG9j04Sq+oI7W8zAJiQybDcESET8/uIdHzs0p3k4fZlw==",
"dev": true
},
"diff-sequences": {
@@ -9578,9 +9578,9 @@
}
},
"minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
@@ -12102,9 +12102,9 @@
"dev": true
},
"qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
+ "version": "6.5.5",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.5.tgz",
+ "integrity": "sha512-mzR4sElr1bfCaPJe7m8ilJ6ZXdDaGoObcYR0ZHSsktM/Lt21MVHj5De30GQH2eiZ1qGRTO7LCAzQsUeXTNexWQ==",
"dev": true
},
"queue-microtask": {
@@ -12897,9 +12897,9 @@
},
"dependencies": {
"ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.3",
--
2.47.3
$ date
--- stdout ---
Sat Feb 28 13:51:12 UTC 2026
--- end ---
$ git clone file:///srv/git/mediawiki-extensions-WikibaseMediaInfo.git /src/repo --depth=1 -b master
--- stderr ---
Cloning into '/src/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 ---
642333e300bc853f6ff496301053023d55e5b922 refs/heads/master
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {
"ajv": {
"name": "ajv",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1113428,
"name": "ajv",
"dependency": "ajv",
"title": "ajv has ReDoS when using `$data` option",
"url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
"severity": "moderate",
"cwe": [
"CWE-400",
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<6.14.0"
},
{
"source": 1113429,
"name": "ajv",
"dependency": "ajv",
"title": "ajv has ReDoS when using `$data` option",
"url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
"severity": "moderate",
"cwe": [
"CWE-400",
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": ">=7.0.0-alpha.0 <8.18.0"
}
],
"effects": [],
"range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0",
"nodes": [
"node_modules/ajv",
"node_modules/table/node_modules/ajv"
],
"fixAvailable": true
},
"diff": {
"name": "diff",
"severity": "low",
"isDirect": false,
"via": [
{
"source": 1112703,
"name": "diff",
"dependency": "diff",
"title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch",
"url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx",
"severity": "low",
"cwe": [
"CWE-400",
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<3.5.1"
}
],
"effects": [],
"range": "<3.5.1",
"nodes": [
"node_modules/diff"
],
"fixAvailable": true
},
"form-data": {
"name": "form-data",
"severity": "critical",
"isDirect": false,
"via": [
{
"source": 1109540,
"name": "form-data",
"dependency": "form-data",
"title": "form-data uses unsafe random function in form-data for choosing boundary",
"url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
"severity": "critical",
"cwe": [
"CWE-330"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<2.5.4"
}
],
"effects": [
"request"
],
"range": "<2.5.4",
"nodes": [
"node_modules/form-data"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"grunt": {
"name": "grunt",
"severity": "high",
"isDirect": true,
"via": [
"minimatch"
],
"effects": [
"grunt-eslint"
],
"range": ">=0.4.0-a",
"nodes": [
"node_modules/grunt"
],
"fixAvailable": {
"name": "grunt",
"version": "0.3.17",
"isSemVerMajor": true
}
},
"grunt-eslint": {
"name": "grunt-eslint",
"severity": "high",
"isDirect": true,
"via": [
"grunt"
],
"effects": [],
"range": "<=1.0.0 || >=18.1.0",
"nodes": [
"node_modules/grunt-eslint"
],
"fixAvailable": {
"name": "grunt-eslint",
"version": "18.0.0",
"isSemVerMajor": true
}
},
"jpeg-js": {
"name": "jpeg-js",
"severity": "high",
"isDirect": true,
"via": [
{
"source": 1088964,
"name": "jpeg-js",
"dependency": "jpeg-js",
"title": "Infinite loop in jpeg-js",
"url": "https://github.com/advisories/GHSA-xvf7-4v9q-58w6",
"severity": "high",
"cwe": [
"CWE-835"
],
"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.4.4"
},
{
"source": 1093580,
"name": "jpeg-js",
"dependency": "jpeg-js",
"title": "Uncontrolled resource consumption in jpeg-js",
"url": "https://github.com/advisories/GHSA-w7q9-p3jq-fmhm",
"severity": "moderate",
"cwe": [
"CWE-400"
],
"cvss": {
"score": 5.5,
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
},
"range": "<0.4.0"
}
],
"effects": [],
"range": "<=0.4.3",
"nodes": [
"node_modules/jpeg-js"
],
"fixAvailable": {
"name": "jpeg-js",
"version": "0.4.4",
"isSemVerMajor": true
}
},
"jquery": {
"name": "jquery",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1102100,
"name": "jquery",
"dependency": "jquery",
"title": "Potential XSS vulnerability in jQuery",
"url": "https://github.com/advisories/GHSA-gxr4-xjj5-5px2",
"severity": "moderate",
"cwe": [
"CWE-79"
],
"cvss": {
"score": 6.9,
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N"
},
"range": ">=1.2.0 <3.5.0"
},
{
"source": 1109145,
"name": "jquery",
"dependency": "jquery",
"title": "Potential XSS vulnerability in jQuery",
"url": "https://github.com/advisories/GHSA-jpcq-cgw6-v4j6",
"severity": "moderate",
"cwe": [
"CWE-79"
],
"cvss": {
"score": 6.9,
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N/E:H"
},
"range": ">=1.0.3 <3.5.0"
}
],
"effects": [
"oojs-ui"
],
"range": "<=3.4.1",
"nodes": [
"node_modules/oojs-ui/node_modules/jquery"
],
"fixAvailable": {
"name": "oojs-ui",
"version": "0.53.1",
"isSemVerMajor": true
}
},
"jsdom": {
"name": "jsdom",
"severity": "moderate",
"isDirect": true,
"via": [
"request",
"request-promise-native",
"tough-cookie"
],
"effects": [],
"range": "0.1.20 || 0.2.0 - 16.5.3",
"nodes": [
"node_modules/jsdom"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"minimatch": {
"name": "minimatch",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1113459,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
"url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<3.1.3"
},
{
"source": 1113465,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
"url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": ">=9.0.0 <9.0.6"
},
{
"source": 1113538,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
"url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
"severity": "high",
"cwe": [
"CWE-407"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "<3.1.3"
},
{
"source": 1113544,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
"url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
"severity": "high",
"cwe": [
"CWE-407"
],
"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": ">=9.0.0 <9.0.7"
},
{
"source": 1113546,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
"url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
"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": "<3.1.4"
},
{
"source": 1113552,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
"url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
"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": ">=9.0.0 <9.0.7"
}
],
"effects": [
"grunt"
],
"range": "<=3.1.3 || 9.0.0 - 9.0.6",
"nodes": [
"node_modules/@eslint/eslintrc/node_modules/minimatch",
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch",
"node_modules/eslint/node_modules/minimatch",
"node_modules/minimatch"
],
"fixAvailable": {
"name": "grunt",
"version": "0.3.17",
"isSemVerMajor": true
}
},
"mockery": {
"name": "mockery",
"severity": "critical",
"isDirect": true,
"via": [
{
"source": 1092753,
"name": "mockery",
"dependency": "mockery",
"title": "mockery is vulnerable to prototype pollution",
"url": "https://github.com/advisories/GHSA-gmwp-3pwc-3j3g",
"severity": "critical",
"cwe": [
"CWE-1321"
],
"cvss": {
"score": 9.8,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
},
"range": "<=2.1.0"
}
],
"effects": [],
"range": "*",
"nodes": [
"node_modules/mockery"
],
"fixAvailable": false
},
"oojs-ui": {
"name": "oojs-ui",
"severity": "moderate",
"isDirect": true,
"via": [
"jquery"
],
"effects": [],
"range": "0.11.0 - 0.38.1",
"nodes": [
"node_modules/oojs-ui"
],
"fixAvailable": {
"name": "oojs-ui",
"version": "0.53.1",
"isSemVerMajor": true
}
},
"qs": {
"name": "qs",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1113132,
"name": "qs",
"dependency": "qs",
"title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
"url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
"severity": "high",
"cwe": [
"CWE-20"
],
"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.14.1"
}
],
"effects": [
"request"
],
"range": "<6.14.1",
"nodes": [
"node_modules/qs"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"request": {
"name": "request",
"severity": "critical",
"isDirect": false,
"via": [
{
"source": 1096727,
"name": "request",
"dependency": "request",
"title": "Server-Side Request Forgery in Request",
"url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
"severity": "moderate",
"cwe": [
"CWE-918"
],
"cvss": {
"score": 6.1,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
},
"range": "<=2.88.2"
},
"form-data",
"qs",
"tough-cookie"
],
"effects": [
"jsdom",
"request-promise-core",
"request-promise-native"
],
"range": "*",
"nodes": [
"node_modules/request"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"request-promise-core": {
"name": "request-promise-core",
"severity": "moderate",
"isDirect": false,
"via": [
"request"
],
"effects": [
"request-promise-native"
],
"range": "*",
"nodes": [
"node_modules/request-promise-core"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"request-promise-native": {
"name": "request-promise-native",
"severity": "moderate",
"isDirect": false,
"via": [
"request",
"request-promise-core",
"tough-cookie"
],
"effects": [
"jsdom"
],
"range": ">=1.0.0",
"nodes": [
"node_modules/request-promise-native"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"tmp": {
"name": "tmp",
"severity": "low",
"isDirect": true,
"via": [
{
"source": 1109537,
"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": [],
"range": "<=0.2.3",
"nodes": [
"node_modules/tmp"
],
"fixAvailable": {
"name": "tmp",
"version": "0.2.5",
"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": [
"jsdom",
"request",
"request-promise-native"
],
"range": "<4.1.3",
"nodes": [
"node_modules/tough-cookie"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 2,
"moderate": 7,
"high": 5,
"critical": 3,
"total": 17
},
"dependencies": {
"prod": 1,
"dev": 657,
"optional": 1,
"peer": 1,
"peerOptional": 0,
"total": 657
}
}
}
--- 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: 39 installs, 0 updates, 0 removals
- Locking composer/pcre (3.3.2)
- Locking composer/semver (3.4.4)
- Locking composer/spdx-licenses (1.5.9)
- Locking composer/xdebug-handler (3.0.5)
- Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.0)
- Locking doctrine/deprecations (1.1.6)
- Locking felixfbecker/advanced-json-rpc (v3.2.1)
- Locking mediawiki/mediawiki-codesniffer (v49.0.0)
- Locking mediawiki/mediawiki-phan-config (0.18.0)
- Locking mediawiki/minus-x (1.1.3)
- Locking mediawiki/phan-taint-check-plugin (8.0.0)
- Locking microsoft/tolerant-php-parser (v0.1.2)
- Locking netresearch/jsonmapper (v4.5.0)
- Locking phan/phan (5.5.2)
- Locking php-parallel-lint/php-console-color (v1.0.1)
- Locking php-parallel-lint/php-console-highlighter (v1.0.0)
- Locking php-parallel-lint/php-parallel-lint (v1.4.0)
- Locking phpcsstandards/phpcsextra (1.4.0)
- Locking phpcsstandards/phpcsutils (1.2.2)
- Locking phpdocumentor/reflection-common (2.2.0)
- Locking phpdocumentor/reflection-docblock (5.6.6)
- Locking phpdocumentor/type-resolver (1.12.0)
- Locking phpstan/phpdoc-parser (2.3.2)
- Locking psr/container (2.0.2)
- Locking psr/log (3.0.2)
- Locking sabre/event (5.1.7)
- Locking serialization/serialization (4.1.0)
- Locking squizlabs/php_codesniffer (3.13.5)
- Locking symfony/console (v7.4.6)
- Locking symfony/deprecation-contracts (v3.6.0)
- Locking symfony/polyfill-ctype (v1.33.0)
- Locking symfony/polyfill-intl-grapheme (v1.33.0)
- Locking symfony/polyfill-intl-normalizer (v1.33.0)
- Locking symfony/polyfill-mbstring (v1.33.0)
- Locking symfony/polyfill-php80 (v1.33.0)
- Locking symfony/service-contracts (v3.6.1)
- Locking symfony/string (v8.0.6)
- Locking tysonandre/var_representation_polyfill (0.1.3)
- Locking webmozart/assert (2.1.6)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 39 installs, 0 updates, 0 removals
0 [>---------------------------] 0 [->--------------------------]
- Installing squizlabs/php_codesniffer (3.13.5): Extracting archive
- Installing dealerdirect/phpcodesniffer-composer-installer (v1.2.0): Extracting archive
- Installing composer/pcre (3.3.2): Extracting archive
- Installing phpcsstandards/phpcsutils (1.2.2): Extracting archive
- Installing phpcsstandards/phpcsextra (1.4.0): Extracting archive
- Installing symfony/polyfill-mbstring (v1.33.0): Extracting archive
- Installing composer/spdx-licenses (1.5.9): Extracting archive
- Installing composer/semver (3.4.4): Extracting archive
- Installing mediawiki/mediawiki-codesniffer (v49.0.0): Extracting archive
- Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
- Installing symfony/polyfill-php80 (v1.33.0): Extracting archive
- Installing symfony/polyfill-intl-normalizer (v1.33.0): Extracting archive
- Installing symfony/polyfill-intl-grapheme (v1.33.0): Extracting archive
- Installing symfony/polyfill-ctype (v1.33.0): Extracting archive
- Installing symfony/string (v8.0.6): 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.1): Extracting archive
- Installing symfony/console (v7.4.6): 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 (2.1.6): Extracting archive
- Installing phpstan/phpdoc-parser (2.3.2): Extracting archive
- Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
- Installing doctrine/deprecations (1.1.6): Extracting archive
- Installing phpdocumentor/type-resolver (1.12.0): Extracting archive
- Installing phpdocumentor/reflection-docblock (5.6.6): 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.2): Extracting archive
- Installing mediawiki/phan-taint-check-plugin (8.0.0): Extracting archive
- Installing mediawiki/mediawiki-phan-config (0.18.0): Extracting archive
- Installing mediawiki/minus-x (1.1.3): Extracting archive
- Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
- Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
- Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
- Installing serialization/serialization (4.1.0): Extracting archive
0/37 [>---------------------------] 0%
29/37 [=====================>------] 78%
37/37 [============================] 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 c:mediawiki/minus-x from 1.1.3 -> 2.0.1
Upgrading c:mediawiki/mediawiki-codesniffer from 49.0.0 -> 50.0.0
Upgrading c:mediawiki/mediawiki-phan-config from 0.18.0 -> 0.19.0
$ /usr/bin/composer update
--- stderr ---
Loading composer repositories with package information
Updating dependencies
Lock file operations: 2 installs, 6 updates, 3 removals
- Removing microsoft/tolerant-php-parser (v0.1.2)
- Removing symfony/polyfill-php80 (v1.33.0)
- Removing tysonandre/var_representation_polyfill (0.1.3)
- Upgrading mediawiki/mediawiki-codesniffer (v49.0.0 => v50.0.0)
- Upgrading mediawiki/mediawiki-phan-config (0.18.0 => 0.19.0)
- Upgrading mediawiki/minus-x (1.1.3 => 2.0.1)
- Upgrading mediawiki/phan-taint-check-plugin (8.0.0 => 9.0.0)
- Upgrading phan/phan (5.5.2 => 6.0.1)
- Locking phan/tolerant-php-parser (v0.2.0)
- Locking phan/var_representation_polyfill (0.1.4)
- Upgrading symfony/console (v7.4.6 => v8.0.6)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 2 installs, 6 updates, 3 removals
0 [>---------------------------] 0 [->--------------------------]
- Removing tysonandre/var_representation_polyfill (0.1.3)
- Removing symfony/polyfill-php80 (v1.33.0)
- Removing microsoft/tolerant-php-parser (v0.1.2)
- Upgrading mediawiki/mediawiki-codesniffer (v49.0.0 => v50.0.0): Extracting archive
- Upgrading symfony/console (v7.4.6 => v8.0.6): Extracting archive
- Installing phan/var_representation_polyfill (0.1.4): Extracting archive
- Installing phan/tolerant-php-parser (v0.2.0): Extracting archive
- Upgrading phan/phan (5.5.2 => 6.0.1): Extracting archive
- Upgrading mediawiki/phan-taint-check-plugin (8.0.0 => 9.0.0): Extracting archive
- Upgrading mediawiki/mediawiki-phan-config (0.18.0 => 0.19.0): Extracting archive
- Upgrading mediawiki/minus-x (1.1.3 => 2.0.1): Extracting archive
0/8 [>---------------------------] 0%
7/8 [========================>---] 87%
8/8 [============================] 100%
Generating autoload files
16 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found.
--- stdout ---
--- end ---
$ vendor/bin/phpcs --report=json
--- stdout ---
{"totals":{"errors":2,"warnings":0,"fixable":0},"files":{"\/src\/repo\/src\/DataAccess\/Scribunto\/WikibaseMediaInfoEntityLibrary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataAccess\/Scribunto\/WikibaseMediaInfoLibrary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/ChangeOp\/Deserialization\/MediaInfoChangeOpDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/FieldQueryBuilderInterface.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/WBMIHooksHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MustacheDomTemplateParser.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MediaInfoWikibaseHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/View\/MediaInfoView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MediaInfoDataForSearchIndex.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/MediaInfoId.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MediaInfoServicesHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataAccess\/Store\/FilePageRedirectHandlingRevisionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Services\/Diff\/MediaInfoDiffer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoEntityQuery.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Serialization\/MediaInfoDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchQueryBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaInfoFieldDefinitions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Diff\/BasicMediaInfoDiffVisualizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchRescoreProfiles.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Services\/Diff\/MediaInfoPatcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataAccess\/Store\/EntityIdFixingRevisionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Content\/MissingMediaInfoHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoIdLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Serialization\/MediaInfoSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoByLinkedTitleLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/FieldIterator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/WikibaseEntitiesHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/ParsedNodeHandlerInterface.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoServiceWiring.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchCachingEntitiesFetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Rdf\/MediaInfoSpecificComponentsRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchMemoryEntitiesFetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/WordsQueryNodeHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MediaInfoWikibaseHookRunner.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoServices.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MatchExplorerQuery.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Scribunto\/WikibaseMediaInfoEntityLibrarySandboxTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/MediaInfo.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Services\/Diff\/MediaInfoDifferTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Scribunto\/WikibaseMediaInfoEntityLibraryTestBase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/PhraseQueryNodeHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchASTEntitiesExtractor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoPrefetchingTermLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchRescoreFunctionChains.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/View\/MediaInfoEntityTermsView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/MediaInfoWikibaseHooksTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/WBMIApiTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchProfiles.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/MultiLingualCaptionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/FilePageLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Rdf\/FileMock.php":{"errors":2,"warnings":0,"messages":[{"message":"Doc comment for parameter \"$params\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":14,"column":5},{"message":"Missing parameter name","source":"MediaWiki.Commenting.FunctionComment.MissingParamName","severity":5,"fixable":false,"type":"ERROR","line":18,"column":8}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchCachingEntitiesFetcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaInfoFieldDefinitionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchMemoryEntitiesFetcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/MediaInfoIdLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchEntitiesFetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Content\/MediaInfoHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/FilePageLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/MediaInfoServicesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Store\/EntityIdFixingRevisionLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Serialization\/MediaInfoDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/View\/MediaInfoViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Services\/Diff\/MediaInfoPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchASTClassifier.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/MediaInfoDataForSearchIndexTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/Feature\/CustomMatchFeature.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Content\/MediaInfoContent.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchASTEntitiesExtractorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Content\/MissingMediaInfoHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/MediaInfoHooksTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Scribunto\/WikibaseMediaInfoEntityLibraryStandaloneTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/WatchlistTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchEntitiesFetcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Rdf\/MediaInfoSpecificComponentsRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchASTQueryBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/EntityTypesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/.phan\/config.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchASTQueryBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/StatementsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/View\/MediaInfoEntityTermsViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/ChangeOp\/Deserialization\/MediaInfoChangeOpDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Serialization\/MediaInfoSerializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/MediaInfoTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Store\/FilePageRedirectHandlingRevisionLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/MediaInfoPrefetchingTermLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/MediaInfoIdTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/Feature\/CustomMatchFeatureTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Rdf\/MediaInfoRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Content\/MediaInfoHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchQueryBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/View\/MediaInfoEntityStatementsView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Rdf\/MediaInfoRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Content\/MediaInfoContentTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MediaInfoHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/View\/MediaInfoEntityStatementsViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/WikibaseMediaInfo.entitytypes.php":{"errors":0,"warnings":0,"messages":[]}}}
--- end ---
PHPCS run failed
$ vendor/bin/phpcs --report=json
--- stdout ---
{"totals":{"errors":2,"warnings":0,"fixable":0},"files":{"\/src\/repo\/src\/DataAccess\/Scribunto\/WikibaseMediaInfoEntityLibrary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/FieldQueryBuilderInterface.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataAccess\/Scribunto\/WikibaseMediaInfoLibrary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/ChangeOp\/Deserialization\/MediaInfoChangeOpDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoEntityQuery.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoByLinkedTitleLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MustacheDomTemplateParser.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MediaInfoWikibaseHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/MediaInfoId.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MediaInfoServicesHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataAccess\/Store\/FilePageRedirectHandlingRevisionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/View\/MediaInfoView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaInfoFieldDefinitions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/WBMIHooksHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Diff\/BasicMediaInfoDiffVisualizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchRescoreProfiles.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Serialization\/MediaInfoDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoIdLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataAccess\/Store\/EntityIdFixingRevisionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Services\/Diff\/MediaInfoPatcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoServiceWiring.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchMemoryEntitiesFetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchQueryBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MediaInfoDataForSearchIndex.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchCachingEntitiesFetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/WordsQueryNodeHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Content\/MissingMediaInfoHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Services\/Diff\/MediaInfoDiffer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MatchExplorerQuery.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchASTEntitiesExtractor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchRescoreFunctionChains.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/WikibaseEntitiesHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoServices.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Serialization\/MediaInfoSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Scribunto\/WikibaseMediaInfoEntityLibrarySandboxTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/MediaInfo.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Scribunto\/WikibaseMediaInfoEntityLibraryTestBase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoPrefetchingTermLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/FilePageLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Rdf\/MediaInfoSpecificComponentsRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/MediaInfoWikibaseHooksTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/FieldIterator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/ParsedNodeHandlerInterface.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MediaInfoWikibaseHookRunner.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/View\/MediaInfoEntityTermsView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchProfiles.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/WBMIApiTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Store\/EntityIdFixingRevisionLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Services\/Diff\/MediaInfoDifferTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/PhraseQueryNodeHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchEntitiesFetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/MediaInfoDataForSearchIndexTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchCachingEntitiesFetcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchMemoryEntitiesFetcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Serialization\/MediaInfoDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/FilePageLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/MediaInfoServicesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/MultiLingualCaptionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/View\/MediaInfoViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaInfoFieldDefinitionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Rdf\/FileMock.php":{"errors":2,"warnings":0,"messages":[{"message":"Doc comment for parameter \"$params\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":14,"column":5},{"message":"Missing parameter name","source":"MediaWiki.Commenting.FunctionComment.MissingParamName","severity":5,"fixable":false,"type":"ERROR","line":18,"column":8}]},"\/src\/repo\/tests\/phpunit\/integration\/WatchlistTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Content\/MediaInfoHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchASTClassifier.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/MediaInfoIdLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Content\/MissingMediaInfoHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Services\/Diff\/MediaInfoPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Store\/FilePageRedirectHandlingRevisionLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchASTEntitiesExtractorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/Feature\/CustomMatchFeature.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Content\/MediaInfoContent.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchEntitiesFetcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Serialization\/MediaInfoSerializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/MediaInfoHooksTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Scribunto\/WikibaseMediaInfoEntityLibraryStandaloneTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/MediaInfoTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/ChangeOp\/Deserialization\/MediaInfoChangeOpDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Rdf\/MediaInfoSpecificComponentsRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/EntityTypesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/.phan\/config.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Content\/MediaInfoHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/View\/MediaInfoEntityTermsViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/Feature\/CustomMatchFeatureTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/StatementsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Rdf\/MediaInfoRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/View\/MediaInfoEntityStatementsView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Rdf\/MediaInfoRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/MediaInfoIdTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchASTQueryBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchASTQueryBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchQueryBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/MediaInfoPrefetchingTermLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/WikibaseMediaInfo.entitytypes.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Content\/MediaInfoContentTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MediaInfoHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/View\/MediaInfoEntityStatementsViewTest.php":{"errors":0,"warnings":0,"messages":[]}}}
--- end ---
* sniff MediaWiki.Commenting.FunctionComment.MissingParamTag is now failing
* sniff MediaWiki.Commenting.FunctionComment.MissingParamName is now failing
$ git checkout /src/repo/.phpcs.xml
--- stderr ---
Updated 0 paths from the index
--- stdout ---
--- end ---
$ /usr/bin/composer install
--- stderr ---
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Generating autoload files
16 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
--- end ---
$ /usr/bin/composer test
--- stderr ---
> phpcs -sp --cache
> parallel-lint . --exclude vendor --exclude node_modules
> minus-x check .
--- stdout ---
................................................ 48 / 48 (100%)
Time: 424ms; Memory: 10MB
PHP 8.4.18 | 10 parallel jobs
............................................................ 60/96 ( 62%)
.................................... 96/96 (100%)
Checked 96 files in 0.4 seconds
No syntax error found
MinusX
======
Processing /src/repo...
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
......................
All good!
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {
"ajv": {
"name": "ajv",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1113428,
"name": "ajv",
"dependency": "ajv",
"title": "ajv has ReDoS when using `$data` option",
"url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
"severity": "moderate",
"cwe": [
"CWE-400",
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<6.14.0"
},
{
"source": 1113429,
"name": "ajv",
"dependency": "ajv",
"title": "ajv has ReDoS when using `$data` option",
"url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
"severity": "moderate",
"cwe": [
"CWE-400",
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": ">=7.0.0-alpha.0 <8.18.0"
}
],
"effects": [],
"range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0",
"nodes": [
"node_modules/ajv",
"node_modules/table/node_modules/ajv"
],
"fixAvailable": true
},
"diff": {
"name": "diff",
"severity": "low",
"isDirect": false,
"via": [
{
"source": 1112703,
"name": "diff",
"dependency": "diff",
"title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch",
"url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx",
"severity": "low",
"cwe": [
"CWE-400",
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<3.5.1"
}
],
"effects": [],
"range": "<3.5.1",
"nodes": [
"node_modules/diff"
],
"fixAvailable": true
},
"form-data": {
"name": "form-data",
"severity": "critical",
"isDirect": false,
"via": [
{
"source": 1109540,
"name": "form-data",
"dependency": "form-data",
"title": "form-data uses unsafe random function in form-data for choosing boundary",
"url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
"severity": "critical",
"cwe": [
"CWE-330"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<2.5.4"
}
],
"effects": [
"request"
],
"range": "<2.5.4",
"nodes": [
"node_modules/form-data"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"grunt": {
"name": "grunt",
"severity": "high",
"isDirect": true,
"via": [
"minimatch"
],
"effects": [
"grunt-eslint"
],
"range": ">=0.4.0-a",
"nodes": [
"node_modules/grunt"
],
"fixAvailable": {
"name": "grunt",
"version": "0.3.17",
"isSemVerMajor": true
}
},
"grunt-eslint": {
"name": "grunt-eslint",
"severity": "high",
"isDirect": true,
"via": [
"grunt"
],
"effects": [],
"range": "<=1.0.0 || >=18.1.0",
"nodes": [
"node_modules/grunt-eslint"
],
"fixAvailable": {
"name": "grunt-eslint",
"version": "18.0.0",
"isSemVerMajor": true
}
},
"jpeg-js": {
"name": "jpeg-js",
"severity": "high",
"isDirect": true,
"via": [
{
"source": 1088964,
"name": "jpeg-js",
"dependency": "jpeg-js",
"title": "Infinite loop in jpeg-js",
"url": "https://github.com/advisories/GHSA-xvf7-4v9q-58w6",
"severity": "high",
"cwe": [
"CWE-835"
],
"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.4.4"
},
{
"source": 1093580,
"name": "jpeg-js",
"dependency": "jpeg-js",
"title": "Uncontrolled resource consumption in jpeg-js",
"url": "https://github.com/advisories/GHSA-w7q9-p3jq-fmhm",
"severity": "moderate",
"cwe": [
"CWE-400"
],
"cvss": {
"score": 5.5,
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
},
"range": "<0.4.0"
}
],
"effects": [],
"range": "<=0.4.3",
"nodes": [
"node_modules/jpeg-js"
],
"fixAvailable": {
"name": "jpeg-js",
"version": "0.4.4",
"isSemVerMajor": true
}
},
"jquery": {
"name": "jquery",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1102100,
"name": "jquery",
"dependency": "jquery",
"title": "Potential XSS vulnerability in jQuery",
"url": "https://github.com/advisories/GHSA-gxr4-xjj5-5px2",
"severity": "moderate",
"cwe": [
"CWE-79"
],
"cvss": {
"score": 6.9,
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N"
},
"range": ">=1.2.0 <3.5.0"
},
{
"source": 1109145,
"name": "jquery",
"dependency": "jquery",
"title": "Potential XSS vulnerability in jQuery",
"url": "https://github.com/advisories/GHSA-jpcq-cgw6-v4j6",
"severity": "moderate",
"cwe": [
"CWE-79"
],
"cvss": {
"score": 6.9,
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N/E:H"
},
"range": ">=1.0.3 <3.5.0"
}
],
"effects": [
"oojs-ui"
],
"range": "<=3.4.1",
"nodes": [
"node_modules/oojs-ui/node_modules/jquery"
],
"fixAvailable": {
"name": "oojs-ui",
"version": "0.53.1",
"isSemVerMajor": true
}
},
"jsdom": {
"name": "jsdom",
"severity": "moderate",
"isDirect": true,
"via": [
"request",
"request-promise-native",
"tough-cookie"
],
"effects": [],
"range": "0.1.20 || 0.2.0 - 16.5.3",
"nodes": [
"node_modules/jsdom"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"minimatch": {
"name": "minimatch",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1113459,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
"url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<3.1.3"
},
{
"source": 1113465,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
"url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": ">=9.0.0 <9.0.6"
},
{
"source": 1113538,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
"url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
"severity": "high",
"cwe": [
"CWE-407"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "<3.1.3"
},
{
"source": 1113544,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
"url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
"severity": "high",
"cwe": [
"CWE-407"
],
"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": ">=9.0.0 <9.0.7"
},
{
"source": 1113546,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
"url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
"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": "<3.1.4"
},
{
"source": 1113552,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
"url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
"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": ">=9.0.0 <9.0.7"
}
],
"effects": [
"grunt"
],
"range": "<=3.1.3 || 9.0.0 - 9.0.6",
"nodes": [
"node_modules/@eslint/eslintrc/node_modules/minimatch",
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch",
"node_modules/eslint/node_modules/minimatch",
"node_modules/minimatch"
],
"fixAvailable": {
"name": "grunt",
"version": "0.3.17",
"isSemVerMajor": true
}
},
"mockery": {
"name": "mockery",
"severity": "critical",
"isDirect": true,
"via": [
{
"source": 1092753,
"name": "mockery",
"dependency": "mockery",
"title": "mockery is vulnerable to prototype pollution",
"url": "https://github.com/advisories/GHSA-gmwp-3pwc-3j3g",
"severity": "critical",
"cwe": [
"CWE-1321"
],
"cvss": {
"score": 9.8,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
},
"range": "<=2.1.0"
}
],
"effects": [],
"range": "*",
"nodes": [
"node_modules/mockery"
],
"fixAvailable": false
},
"oojs-ui": {
"name": "oojs-ui",
"severity": "moderate",
"isDirect": true,
"via": [
"jquery"
],
"effects": [],
"range": "0.11.0 - 0.38.1",
"nodes": [
"node_modules/oojs-ui"
],
"fixAvailable": {
"name": "oojs-ui",
"version": "0.53.1",
"isSemVerMajor": true
}
},
"qs": {
"name": "qs",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1113132,
"name": "qs",
"dependency": "qs",
"title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
"url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
"severity": "high",
"cwe": [
"CWE-20"
],
"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.14.1"
}
],
"effects": [
"request"
],
"range": "<6.14.1",
"nodes": [
"node_modules/qs"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"request": {
"name": "request",
"severity": "critical",
"isDirect": false,
"via": [
{
"source": 1096727,
"name": "request",
"dependency": "request",
"title": "Server-Side Request Forgery in Request",
"url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
"severity": "moderate",
"cwe": [
"CWE-918"
],
"cvss": {
"score": 6.1,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
},
"range": "<=2.88.2"
},
"form-data",
"qs",
"tough-cookie"
],
"effects": [
"jsdom",
"request-promise-core",
"request-promise-native"
],
"range": "*",
"nodes": [
"node_modules/request"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"request-promise-core": {
"name": "request-promise-core",
"severity": "moderate",
"isDirect": false,
"via": [
"request"
],
"effects": [
"request-promise-native"
],
"range": "*",
"nodes": [
"node_modules/request-promise-core"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"request-promise-native": {
"name": "request-promise-native",
"severity": "moderate",
"isDirect": false,
"via": [
"request",
"request-promise-core",
"tough-cookie"
],
"effects": [
"jsdom"
],
"range": ">=1.0.0",
"nodes": [
"node_modules/request-promise-native"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"tmp": {
"name": "tmp",
"severity": "low",
"isDirect": true,
"via": [
{
"source": 1109537,
"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": [],
"range": "<=0.2.3",
"nodes": [
"node_modules/tmp"
],
"fixAvailable": {
"name": "tmp",
"version": "0.2.5",
"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": [
"jsdom",
"request",
"request-promise-native"
],
"range": "<4.1.3",
"nodes": [
"node_modules/tough-cookie"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 2,
"moderate": 7,
"high": 5,
"critical": 3,
"total": 17
},
"dependencies": {
"prod": 1,
"dev": 657,
"optional": 1,
"peer": 1,
"peerOptional": 0,
"total": 657
}
}
}
--- 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": 657,
"removed": 0,
"changed": 0,
"audited": 658,
"funding": 110,
"audit": {
"auditReportVersion": 2,
"vulnerabilities": {
"ajv": {
"name": "ajv",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1113428,
"name": "ajv",
"dependency": "ajv",
"title": "ajv has ReDoS when using `$data` option",
"url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
"severity": "moderate",
"cwe": [
"CWE-400",
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<6.14.0"
},
{
"source": 1113429,
"name": "ajv",
"dependency": "ajv",
"title": "ajv has ReDoS when using `$data` option",
"url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
"severity": "moderate",
"cwe": [
"CWE-400",
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": ">=7.0.0-alpha.0 <8.18.0"
}
],
"effects": [],
"range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0",
"nodes": [
"",
""
],
"fixAvailable": true
},
"diff": {
"name": "diff",
"severity": "low",
"isDirect": false,
"via": [
{
"source": 1112703,
"name": "diff",
"dependency": "diff",
"title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch",
"url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx",
"severity": "low",
"cwe": [
"CWE-400",
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<3.5.1"
}
],
"effects": [],
"range": "<3.5.1",
"nodes": [
""
],
"fixAvailable": true
},
"form-data": {
"name": "form-data",
"severity": "critical",
"isDirect": false,
"via": [
{
"source": 1109540,
"name": "form-data",
"dependency": "form-data",
"title": "form-data uses unsafe random function in form-data for choosing boundary",
"url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
"severity": "critical",
"cwe": [
"CWE-330"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<2.5.4"
}
],
"effects": [
"request"
],
"range": "<2.5.4",
"nodes": [
"node_modules/form-data"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"grunt": {
"name": "grunt",
"severity": "high",
"isDirect": true,
"via": [
"minimatch"
],
"effects": [
"grunt-eslint"
],
"range": ">=0.4.0-a",
"nodes": [
"node_modules/grunt"
],
"fixAvailable": {
"name": "grunt",
"version": "0.3.17",
"isSemVerMajor": true
}
},
"grunt-eslint": {
"name": "grunt-eslint",
"severity": "high",
"isDirect": true,
"via": [
"grunt"
],
"effects": [],
"range": "<=1.0.0 || >=18.1.0",
"nodes": [
"node_modules/grunt-eslint"
],
"fixAvailable": {
"name": "grunt-eslint",
"version": "18.0.0",
"isSemVerMajor": true
}
},
"jpeg-js": {
"name": "jpeg-js",
"severity": "high",
"isDirect": true,
"via": [
{
"source": 1088964,
"name": "jpeg-js",
"dependency": "jpeg-js",
"title": "Infinite loop in jpeg-js",
"url": "https://github.com/advisories/GHSA-xvf7-4v9q-58w6",
"severity": "high",
"cwe": [
"CWE-835"
],
"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.4.4"
},
{
"source": 1093580,
"name": "jpeg-js",
"dependency": "jpeg-js",
"title": "Uncontrolled resource consumption in jpeg-js",
"url": "https://github.com/advisories/GHSA-w7q9-p3jq-fmhm",
"severity": "moderate",
"cwe": [
"CWE-400"
],
"cvss": {
"score": 5.5,
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
},
"range": "<0.4.0"
}
],
"effects": [],
"range": "<=0.4.3",
"nodes": [
"node_modules/jpeg-js"
],
"fixAvailable": {
"name": "jpeg-js",
"version": "0.4.4",
"isSemVerMajor": true
}
},
"jquery": {
"name": "jquery",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1102100,
"name": "jquery",
"dependency": "jquery",
"title": "Potential XSS vulnerability in jQuery",
"url": "https://github.com/advisories/GHSA-gxr4-xjj5-5px2",
"severity": "moderate",
"cwe": [
"CWE-79"
],
"cvss": {
"score": 6.9,
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N"
},
"range": ">=1.2.0 <3.5.0"
},
{
"source": 1109145,
"name": "jquery",
"dependency": "jquery",
"title": "Potential XSS vulnerability in jQuery",
"url": "https://github.com/advisories/GHSA-jpcq-cgw6-v4j6",
"severity": "moderate",
"cwe": [
"CWE-79"
],
"cvss": {
"score": 6.9,
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N/E:H"
},
"range": ">=1.0.3 <3.5.0"
}
],
"effects": [
"oojs-ui"
],
"range": "<=3.4.1",
"nodes": [
"node_modules/oojs-ui/node_modules/jquery"
],
"fixAvailable": {
"name": "oojs-ui",
"version": "0.53.1",
"isSemVerMajor": true
}
},
"jsdom": {
"name": "jsdom",
"severity": "moderate",
"isDirect": true,
"via": [
"request",
"request-promise-native",
"tough-cookie"
],
"effects": [],
"range": "0.1.20 || 0.2.0 - 16.5.3",
"nodes": [
"node_modules/jsdom"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"minimatch": {
"name": "minimatch",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1113459,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
"url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<3.1.3"
},
{
"source": 1113465,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
"url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": ">=9.0.0 <9.0.6"
},
{
"source": 1113538,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
"url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
"severity": "high",
"cwe": [
"CWE-407"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "<3.1.3"
},
{
"source": 1113544,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
"url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
"severity": "high",
"cwe": [
"CWE-407"
],
"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": ">=9.0.0 <9.0.7"
},
{
"source": 1113546,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
"url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
"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": "<3.1.4"
},
{
"source": 1113552,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
"url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
"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": ">=9.0.0 <9.0.7"
}
],
"effects": [
"grunt"
],
"range": "<=3.1.3 || 9.0.0 - 9.0.6",
"nodes": [
"",
"",
"",
"node_modules/minimatch"
],
"fixAvailable": {
"name": "grunt",
"version": "0.3.17",
"isSemVerMajor": true
}
},
"mockery": {
"name": "mockery",
"severity": "critical",
"isDirect": true,
"via": [
{
"source": 1092753,
"name": "mockery",
"dependency": "mockery",
"title": "mockery is vulnerable to prototype pollution",
"url": "https://github.com/advisories/GHSA-gmwp-3pwc-3j3g",
"severity": "critical",
"cwe": [
"CWE-1321"
],
"cvss": {
"score": 9.8,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
},
"range": "<=2.1.0"
}
],
"effects": [],
"range": "*",
"nodes": [
"node_modules/mockery"
],
"fixAvailable": false
},
"oojs-ui": {
"name": "oojs-ui",
"severity": "moderate",
"isDirect": true,
"via": [
"jquery"
],
"effects": [],
"range": "0.11.0 - 0.38.1",
"nodes": [
"node_modules/oojs-ui"
],
"fixAvailable": {
"name": "oojs-ui",
"version": "0.53.1",
"isSemVerMajor": true
}
},
"qs": {
"name": "qs",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1113132,
"name": "qs",
"dependency": "qs",
"title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
"url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
"severity": "high",
"cwe": [
"CWE-20"
],
"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.14.1"
}
],
"effects": [
"request"
],
"range": "<6.14.1",
"nodes": [
""
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"request": {
"name": "request",
"severity": "critical",
"isDirect": false,
"via": [
{
"source": 1096727,
"name": "request",
"dependency": "request",
"title": "Server-Side Request Forgery in Request",
"url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
"severity": "moderate",
"cwe": [
"CWE-918"
],
"cvss": {
"score": 6.1,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
},
"range": "<=2.88.2"
},
"form-data",
"qs",
"tough-cookie"
],
"effects": [
"jsdom",
"request-promise-core",
"request-promise-native"
],
"range": "*",
"nodes": [
"node_modules/request"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"request-promise-core": {
"name": "request-promise-core",
"severity": "moderate",
"isDirect": false,
"via": [
"request"
],
"effects": [
"request-promise-native"
],
"range": "*",
"nodes": [
"node_modules/request-promise-core"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"request-promise-native": {
"name": "request-promise-native",
"severity": "moderate",
"isDirect": false,
"via": [
"request",
"request-promise-core",
"tough-cookie"
],
"effects": [
"jsdom"
],
"range": ">=1.0.0",
"nodes": [
"node_modules/request-promise-native"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
},
"tmp": {
"name": "tmp",
"severity": "low",
"isDirect": true,
"via": [
{
"source": 1109537,
"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": [],
"range": "<=0.2.3",
"nodes": [
"node_modules/tmp"
],
"fixAvailable": {
"name": "tmp",
"version": "0.2.5",
"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": [
"jsdom",
"request",
"request-promise-native"
],
"range": "<4.1.3",
"nodes": [
"node_modules/tough-cookie"
],
"fixAvailable": {
"name": "jsdom",
"version": "28.1.0",
"isSemVerMajor": true
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 2,
"moderate": 7,
"high": 5,
"critical": 3,
"total": 17
},
"dependencies": {
"prod": 1,
"dev": 657,
"optional": 1,
"peer": 1,
"peerOptional": 0,
"total": 657
}
}
}
}
--- end ---
{"added": 657, "removed": 0, "changed": 0, "audited": 658, "funding": 110, "audit": {"auditReportVersion": 2, "vulnerabilities": {"ajv": {"name": "ajv", "severity": "moderate", "isDirect": false, "via": [{"source": 1113428, "name": "ajv", "dependency": "ajv", "title": "ajv has ReDoS when using `$data` option", "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", "severity": "moderate", "cwe": ["CWE-400", "CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": "<6.14.0"}, {"source": 1113429, "name": "ajv", "dependency": "ajv", "title": "ajv has ReDoS when using `$data` option", "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", "severity": "moderate", "cwe": ["CWE-400", "CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": ">=7.0.0-alpha.0 <8.18.0"}], "effects": [], "range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0", "nodes": ["", ""], "fixAvailable": true}, "diff": {"name": "diff", "severity": "low", "isDirect": false, "via": [{"source": 1112703, "name": "diff", "dependency": "diff", "title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch", "url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx", "severity": "low", "cwe": ["CWE-400", "CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": "<3.5.1"}], "effects": [], "range": "<3.5.1", "nodes": [""], "fixAvailable": true}, "form-data": {"name": "form-data", "severity": "critical", "isDirect": false, "via": [{"source": 1109540, "name": "form-data", "dependency": "form-data", "title": "form-data uses unsafe random function in form-data for choosing boundary", "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4", "severity": "critical", "cwe": ["CWE-330"], "cvss": {"score": 0, "vectorString": null}, "range": "<2.5.4"}], "effects": ["request"], "range": "<2.5.4", "nodes": ["node_modules/form-data"], "fixAvailable": {"name": "jsdom", "version": "28.1.0", "isSemVerMajor": true}}, "grunt": {"name": "grunt", "severity": "high", "isDirect": true, "via": ["minimatch"], "effects": ["grunt-eslint"], "range": ">=0.4.0-a", "nodes": ["node_modules/grunt"], "fixAvailable": {"name": "grunt", "version": "0.3.17", "isSemVerMajor": true}}, "grunt-eslint": {"name": "grunt-eslint", "severity": "high", "isDirect": true, "via": ["grunt"], "effects": [], "range": "<=1.0.0 || >=18.1.0", "nodes": ["node_modules/grunt-eslint"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "jpeg-js": {"name": "jpeg-js", "severity": "high", "isDirect": true, "via": [{"source": 1088964, "name": "jpeg-js", "dependency": "jpeg-js", "title": "Infinite loop in jpeg-js", "url": "https://github.com/advisories/GHSA-xvf7-4v9q-58w6", "severity": "high", "cwe": ["CWE-835"], "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.4.4"}, {"source": 1093580, "name": "jpeg-js", "dependency": "jpeg-js", "title": "Uncontrolled resource consumption in jpeg-js", "url": "https://github.com/advisories/GHSA-w7q9-p3jq-fmhm", "severity": "moderate", "cwe": ["CWE-400"], "cvss": {"score": 5.5, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"}, "range": "<0.4.0"}], "effects": [], "range": "<=0.4.3", "nodes": ["node_modules/jpeg-js"], "fixAvailable": {"name": "jpeg-js", "version": "0.4.4", "isSemVerMajor": true}}, "jquery": {"name": "jquery", "severity": "moderate", "isDirect": false, "via": [{"source": 1102100, "name": "jquery", "dependency": "jquery", "title": "Potential XSS vulnerability in jQuery", "url": "https://github.com/advisories/GHSA-gxr4-xjj5-5px2", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 6.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N"}, "range": ">=1.2.0 <3.5.0"}, {"source": 1109145, "name": "jquery", "dependency": "jquery", "title": "Potential XSS vulnerability in jQuery", "url": "https://github.com/advisories/GHSA-jpcq-cgw6-v4j6", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 6.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N/E:H"}, "range": ">=1.0.3 <3.5.0"}], "effects": ["oojs-ui"], "range": "<=3.4.1", "nodes": ["node_modules/oojs-ui/node_modules/jquery"], "fixAvailable": {"name": "oojs-ui", "version": "0.53.1", "isSemVerMajor": true}}, "jsdom": {"name": "jsdom", "severity": "moderate", "isDirect": true, "via": ["request", "request-promise-native", "tough-cookie"], "effects": [], "range": "0.1.20 || 0.2.0 - 16.5.3", "nodes": ["node_modules/jsdom"], "fixAvailable": {"name": "jsdom", "version": "28.1.0", "isSemVerMajor": true}}, "minimatch": {"name": "minimatch", "severity": "high", "isDirect": false, "via": [{"source": 1113459, "name": "minimatch", "dependency": "minimatch", "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern", "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": "<3.1.3"}, {"source": 1113465, "name": "minimatch", "dependency": "minimatch", "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern", "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": ">=9.0.0 <9.0.6"}, {"source": 1113538, "name": "minimatch", "dependency": "minimatch", "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments", "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj", "severity": "high", "cwe": ["CWE-407"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<3.1.3"}, {"source": 1113544, "name": "minimatch", "dependency": "minimatch", "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments", "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj", "severity": "high", "cwe": ["CWE-407"], "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": ">=9.0.0 <9.0.7"}, {"source": 1113546, "name": "minimatch", "dependency": "minimatch", "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions", "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74", "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": "<3.1.4"}, {"source": 1113552, "name": "minimatch", "dependency": "minimatch", "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions", "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74", "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": ">=9.0.0 <9.0.7"}], "effects": ["grunt"], "range": "<=3.1.3 || 9.0.0 - 9.0.6", "nodes": ["", "", "", "node_modules/minimatch"], "fixAvailable": {"name": "grunt", "version": "0.3.17", "isSemVerMajor": true}}, "mockery": {"name": "mockery", "severity": "critical", "isDirect": true, "via": [{"source": 1092753, "name": "mockery", "dependency": "mockery", "title": "mockery is vulnerable to prototype pollution", "url": "https://github.com/advisories/GHSA-gmwp-3pwc-3j3g", "severity": "critical", "cwe": ["CWE-1321"], "cvss": {"score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}, "range": "<=2.1.0"}], "effects": [], "range": "*", "nodes": ["node_modules/mockery"], "fixAvailable": false}, "oojs-ui": {"name": "oojs-ui", "severity": "moderate", "isDirect": true, "via": ["jquery"], "effects": [], "range": "0.11.0 - 0.38.1", "nodes": ["node_modules/oojs-ui"], "fixAvailable": {"name": "oojs-ui", "version": "0.53.1", "isSemVerMajor": true}}, "qs": {"name": "qs", "severity": "high", "isDirect": false, "via": [{"source": 1113132, "name": "qs", "dependency": "qs", "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion", "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p", "severity": "high", "cwe": ["CWE-20"], "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.14.1"}], "effects": ["request"], "range": "<6.14.1", "nodes": [""], "fixAvailable": {"name": "jsdom", "version": "28.1.0", "isSemVerMajor": true}}, "request": {"name": "request", "severity": "critical", "isDirect": false, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "form-data", "qs", "tough-cookie"], "effects": ["jsdom", "request-promise-core", "request-promise-native"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": {"name": "jsdom", "version": "28.1.0", "isSemVerMajor": true}}, "request-promise-core": {"name": "request-promise-core", "severity": "moderate", "isDirect": false, "via": ["request"], "effects": ["request-promise-native"], "range": "*", "nodes": ["node_modules/request-promise-core"], "fixAvailable": {"name": "jsdom", "version": "28.1.0", "isSemVerMajor": true}}, "request-promise-native": {"name": "request-promise-native", "severity": "moderate", "isDirect": false, "via": ["request", "request-promise-core", "tough-cookie"], "effects": ["jsdom"], "range": ">=1.0.0", "nodes": ["node_modules/request-promise-native"], "fixAvailable": {"name": "jsdom", "version": "28.1.0", "isSemVerMajor": true}}, "tmp": {"name": "tmp", "severity": "low", "isDirect": true, "via": [{"source": 1109537, "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": [], "range": "<=0.2.3", "nodes": ["node_modules/tmp"], "fixAvailable": {"name": "tmp", "version": "0.2.5", "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": ["jsdom", "request", "request-promise-native"], "range": "<4.1.3", "nodes": ["node_modules/tough-cookie"], "fixAvailable": {"name": "jsdom", "version": "28.1.0", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 2, "moderate": 7, "high": 5, "critical": 3, "total": 17}, "dependencies": {"prod": 1, "dev": 657, "optional": 1, "peer": 1, "peerOptional": 0, "total": 657}}}}
$ /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 request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is 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 657 packages, and audited 658 packages in 8s
110 packages are looking for funding
run `npm fund` for details
# npm audit report
form-data <2.5.4
Severity: critical
form-data uses unsafe random function in form-data for choosing boundary - https://github.com/advisories/GHSA-fjxv-7rqg-78g4
fix available via `npm audit fix --force`
Will install jsdom@28.1.0, which is a breaking change
node_modules/form-data
request *
Depends on vulnerable versions of form-data
Depends on vulnerable versions of qs
Depends on vulnerable versions of tough-cookie
node_modules/request
jsdom 0.1.20 || 0.2.0 - 16.5.3
Depends on vulnerable versions of request
Depends on vulnerable versions of request-promise-native
Depends on vulnerable versions of tough-cookie
node_modules/jsdom
request-promise-core *
Depends on vulnerable versions of request
node_modules/request-promise-core
request-promise-native >=1.0.0
Depends on vulnerable versions of request
Depends on vulnerable versions of request-promise-core
Depends on vulnerable versions of tough-cookie
node_modules/request-promise-native
jpeg-js <=0.4.3
Severity: high
Infinite loop in jpeg-js - https://github.com/advisories/GHSA-xvf7-4v9q-58w6
Uncontrolled resource consumption in jpeg-js - https://github.com/advisories/GHSA-w7q9-p3jq-fmhm
fix available via `npm audit fix --force`
Will install jpeg-js@0.4.4, which is a breaking change
node_modules/jpeg-js
jquery <=3.4.1
Severity: moderate
Potential XSS vulnerability in jQuery - https://github.com/advisories/GHSA-gxr4-xjj5-5px2
Potential XSS vulnerability in jQuery - https://github.com/advisories/GHSA-jpcq-cgw6-v4j6
fix available via `npm audit fix --force`
Will install oojs-ui@0.53.1, which is a breaking change
node_modules/oojs-ui/node_modules/jquery
oojs-ui 0.11.0 - 0.38.1
Depends on vulnerable versions of jquery
node_modules/oojs-ui
minimatch <=3.1.3
Severity: high
minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern - https://github.com/advisories/GHSA-3ppc-4f35-3m26
minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments - https://github.com/advisories/GHSA-7r86-cg39-jmmj
minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions - https://github.com/advisories/GHSA-23c5-xmqv-rm74
fix available via `npm audit fix --force`
Will install grunt@0.3.17, which is a breaking change
node_modules/minimatch
grunt >=0.4.0-a
Depends on vulnerable versions of minimatch
node_modules/grunt
grunt-eslint <=1.0.0 || >=18.1.0
Depends on vulnerable versions of grunt
node_modules/grunt-eslint
mockery *
Severity: critical
mockery is vulnerable to prototype pollution - https://github.com/advisories/GHSA-gmwp-3pwc-3j3g
No fix available
node_modules/mockery
qs <6.14.1
Severity: high
qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion - https://github.com/advisories/GHSA-6rw7-vpxm-498p
fix available via `npm audit fix --force`
Will install jsdom@28.1.0, which is a breaking change
node_modules/qs
tmp <=0.2.3
tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter - https://github.com/advisories/GHSA-52f5-9888-hmc6
fix available via `npm audit fix --force`
Will install tmp@0.2.5, which is a breaking change
node_modules/tmp
tough-cookie <4.1.3
Severity: moderate
tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3
fix available via `npm audit fix --force`
Will install jsdom@28.1.0, which is a breaking change
node_modules/tough-cookie
15 vulnerabilities (1 low, 6 moderate, 5 high, 3 critical)
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 request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is 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 ---
> wikibase-media-info@0.1.0 install
> rm -rf node_modules/mediawiki && git clone -q --depth=1 https://gerrit.wikimedia.org/r/mediawiki/core node_modules/mediawiki
added 657 packages, and audited 658 packages in 19s
110 packages are looking for funding
run `npm fund` for details
15 vulnerabilities (1 low, 6 moderate, 5 high, 3 critical)
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 ---
[baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: `npm i baseline-browser-mapping@latest -D`
jQuery.Deferred exception: navigator is not defined ReferenceError: navigator is not defined
at OO.ui.WindowManager.togglePreventIosScrolling (/src/repo/node_modules/oojs-ui/dist/oojs-ui.js:24215:37)
at /src/repo/node_modules/oojs-ui/dist/oojs-ui.js:23931:15
at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3489:29)
at Window.process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
at Timeout.callback [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:665:19)
at listOnTimeout (node:internal/timers:581:17)
at process.processTimers (node:internal/timers:519:7) undefined
--- stdout ---
> wikibase-media-info@0.1.0 test
> grunt test && npm run test:unit
Running "eslint:all" (eslint) task
/src/repo/resources/README/2.TemplatingFeatures.js
53:11 warning OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true mediawiki/no-unlabeled-buttonwidget
/src/repo/resources/datamodel/MediaInfo.js
11:1 warning The type 'datamodel.Entity' is undefined jsdoc/no-undefined-types
18:1 warning The type 'datamodel.TermMap' is undefined jsdoc/no-undefined-types
19:1 warning The type 'datamodel.TermMap' is undefined jsdoc/no-undefined-types
20:1 warning The type 'datamodel.StatementGroupSet' is undefined jsdoc/no-undefined-types
49:1 warning The type 'datamodel.StatementGroupSet' is undefined jsdoc/no-undefined-types
55:1 warning The type 'datamodel.StatementGroupSet' is undefined jsdoc/no-undefined-types
/src/repo/resources/filepage/CaptionDataEditor.js
50:4 warning Prefer .then to .done no-jquery/no-done-fail
50:4 warning Prefer .then to .fail no-jquery/no-done-fail
98:17 warning OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true mediawiki/no-unlabeled-buttonwidget
/src/repo/resources/filepage/CaptionsPanel.js
39:1 warning The type 'datamodel.MediaInfo' is undefined jsdoc/no-undefined-types
106:1 warning The type 'datamodel.MediaInfo' is undefined jsdoc/no-undefined-types
613:3 warning Prefer .then to .done no-jquery/no-done-fail
613:3 warning Prefer .then to .fail no-jquery/no-done-fail
687:34 warning Prefer .then to .done no-jquery/no-done-fail
687:34 warning Prefer .then to .fail no-jquery/no-done-fail
717:34 warning Prefer .then to .done no-jquery/no-done-fail
717:34 warning Prefer .then to .fail no-jquery/no-done-fail
/src/repo/resources/filepage/StatementPanel.js
26:1 warning The type 'dataLoadedReadOnly' is undefined jsdoc/no-undefined-types
76:1 warning The type 'datamodel.StatementList' is undefined jsdoc/no-undefined-types
240:1 warning The type 'widgetRemoved' is undefined jsdoc/no-undefined-types
/src/repo/resources/serialization/MediaInfoDeserializer.js
10:1 warning The type 'SERIALIZER.Deserializer' is undefined jsdoc/no-undefined-types
/src/repo/resources/statements/AddPropertyWidget.js
53:23 warning OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true mediawiki/no-unlabeled-buttonwidget
/src/repo/resources/statements/ConstraintsReportHandlerElement.js
123:17 warning OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true mediawiki/no-unlabeled-buttonwidget
/src/repo/resources/statements/ItemWidget.js
135:24 warning OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true mediawiki/no-unlabeled-buttonwidget
/src/repo/resources/statements/SnakWidget.js
93:22 warning OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true mediawiki/no-unlabeled-buttonwidget
/src/repo/resources/statements/StatementWidget.js
186:1 warning The type 'change' is undefined jsdoc/no-undefined-types
675:2 warning Prefer .then to .done no-jquery/no-done-fail
/src/repo/resources/statements/inputs/QuantityInputWidget.js
90:27 warning OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true mediawiki/no-unlabeled-buttonwidget
/src/repo/tests/node-qunit/mediainfo/README/3.BestPractices.test.js
14:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/filepage/CaptionsPanel.test.js
44:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/filepage/LicenseDialogWidget.test.js
14:3 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/filepage/ProtectionMsgWidget.test.js
15:3 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/filepage/StatementPanel.test.js
42:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/AddPropertyWidget.test.js
16:5 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
21:5 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/ItemWidget.test.js
23:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/LinkNoticeWidget.test.js
27:3 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/SnakListWidget.test.js
21:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
91:5 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/SnakWidget.test.js
19:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
198:5 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
218:5 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/StatementWidget.test.js
30:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/inputs/EntityInputWidget.test.js
16:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/inputs/GlobeCoordinateInputWidget.test.js
26:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/inputs/MonolingualTextInputWidget.test.js
15:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/inputs/MultiTypeInputWrapperWidget.test.js
23:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
36:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
49:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
62:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
81:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
100:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
113:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
223:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
224:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
225:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
226:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
227:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
228:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
229:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
305:5 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
323:5 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
343:5 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/inputs/QuantityInputWidget.test.js
15:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/inputs/StringInputWidget.test.js
15:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/mediainfo/statements/inputs/TimeInputWidget.test.js
27:4 warning Unexpected assert.ok. Use assert.strictEqual, assert.notStrictEqual, assert.deepEqual, or assert.propEqual qunit/no-loose-assertions
/src/repo/tests/node-qunit/support/helpers.js
26:9 warning Found non-literal argument in require security/detect-non-literal-require
39:19 warning Found readFileSync from package "fs" with non literal argument at index 0 security/detect-non-literal-fs-filename
40:10 warning Found non-literal argument in require security/detect-non-literal-require
54:21 warning Found readFileSync from package "fs" with non literal argument at index 0 security/detect-non-literal-fs-filename
305:38 warning Found non-literal argument in require security/detect-non-literal-require
325:21 warning Found readFileSync from package "fs" with non literal argument at index 0 security/detect-non-literal-fs-filename
✖ 73 problems (0 errors, 73 warnings)
Running "banana:WikibaseMediaInfo" (banana) task
>> 1 message directory checked.
Running "stylelint:all" (stylelint) task
>> Linted 19 files without errors
Done.
> wikibase-media-info@0.1.0 test:unit
> qunit "tests/node-qunit/**/*.test.js"
TAP version 13
ok 1 ExampleComponentWidget > Edit mode enabled
ok 2 ExampleComponentWidget > Edit mode disabled
ok 3 TemplatingFeatures > Toggle edit mode
ok 4 BestPractices > Valid data roundtrip
ok 5 Setting other data triggers a change event
ok 6 Setting same data does not trigger a change event
ok 7 ComponentWidget > Widget renders with default state
ok 8 ComponentWidget > Widget rerenders with new state
ok 9 ComponentWidget > Widget renders with changed template data
ok 10 ComponentWidget > Widget renders with async changed template data
ok 11 ComponentWidget > Widget will not rerender on state change if stopped
ok 12 ComponentWidget > Widget will only rerender once when multiple state changes happen during previous render
ok 13 DOMLessGroupWidget > Test item is added to group
ok 14 DOMLessGroupWidget > Test item DOM is not changed after inserting into group
ok 15 CaptionsPanel > When pre-existing statements are present on page > initialization works without errors
ok 16 CaptionsPanel > When pre-existing statements are present on page > user languages are added to DOM
ok 17 LicenseDialogWidget > constructor
ok 18 LicenseDialogWidget > User is not logged in and has not accepted license > getLicenseConfirmation returns zero
ok 19 LicenseDialogWidget > User is not logged in and has not accepted license > storeLicenseConfirmation sets value of the appropriate key to 1
ok 20 LicenseDialogWidget > User is logged in and has not accepted license > getLicenseConfirmation returns zero
ok 21 LicenseDialogWidget > User is logged in and has not accepted license > storeLicenseConfirmation saves to user preferences
ok 22 ProtectionMsgWidget > constructor
ok 23 ProtectionMsgWidget > Page is not protected > Protection message widget does not display
ok 24 ProtectionMsgWidget > Page is protected > Protection message widget displays
ok 25 StatementPanel > When no pre-existing statements are present on page > constructor
ok 26 StatementPanel > When no pre-existing statements are present on page > isEditable() is false by default
ok 27 StatementPanel > When no pre-existing statements are present on page > User is not logged in and has not accepted license > LicenseDialogWidget is displayed when user attempts to edit
ok 28 mediainfo.template.mustache+dom > Render mustache templates
ok 29 mediainfo.template.mustache+dom > Mustache templates with HTMLElement > Nodes are parsed into template
ok 30 mediainfo.template.mustache+dom > Mustache templates with HTMLElement > Events triggered from template-based HTML propagate to original element handlers
ok 31 mediainfo.template.mustache+dom > Mustache templates with HTMLElement > Changes to node later on propagate into DOM rendered by template
ok 32 mediainfo.template.mustache+dom > Mustache templates with jQuery nodes > Nodes are parsed into template
ok 33 mediainfo.template.mustache+dom > Mustache templates with jQuery nodes > Events triggered from template-based HTML propagate to original element handlers
ok 34 mediainfo.template.mustache+dom > Mustache templates with jQuery nodes > Changes to node later on propagate into DOM rendered by template
ok 35 mediainfo.template.mustache+dom > Mustache templates with OOUI widgets > Nodes are parsed into template
ok 36 mediainfo.template.mustache+dom > Mustache templates with OOUI widgets > Events triggered from template-based HTML propagate to original element handlers
ok 37 mediainfo.template.mustache+dom > Mustache templates with OOUI widgets > Changes to node later on propagate into DOM rendered by template
ok 38 AddPropertyWidget > Adding property ids changes the filters
ok 39 AddPropertyWidget > Property input widget & remove are only visible in edit mode
ok 40 ItemWidget > Valid data roundtrip
ok 41 ItemWidget > Setting other data triggers a change event
ok 42 ItemWidget > Setting same data does not trigger a change event
ok 43 ItemWidget > Widget updates snak widgets with new data
ok 44 ItemWidget > Test enabling edit state
ok 45 ItemWidget > Test disabling edit state
ok 46 ItemWidget > Toggling item prominence changes item rank
ok 47 ItemWidget > Valid data roundtrip with somevalue snak
ok 48 ItemWidget > Valid data roundtrip with novalue snak
ok 49 LinkNoticeWidget > constructor
ok 50 LinkNoticeWidget > User is not logged in. > Widget should be visible if not previously dismissed
ok 51 LinkNoticeWidget > User is not logged in. > Widget should not be visible if previously dismissed
ok 52 LinkNoticeWidget > User is not logged in. > dismiss method should store data in local storage for anon users
ok 53 LinkNoticeWidget > User is not logged in. > dismiss method should dismiss the widget
ok 54 LinkNoticeWidget > User is logged-in > Widget should be visible if not previously dismissed
ok 55 LinkNoticeWidget > User is logged-in > Widget should not be visible if previously dismissed
ok 56 LinkNoticeWidget > User is logged-in > dismiss method should store data in user preferences for logged in users
ok 57 SnakListWidget > Valid data roundtrip
ok 58 SnakListWidget > Setting other data triggers a change event
ok 59 SnakListWidget > Setting same data does not trigger a change event
ok 60 SnakListWidget > createWidget() returns a new SnakWidget
ok 61 SnakListWidget > createWidget sets SnakWidget data when snak is provided
ok 62 SnakListWidget > addWidget creates a new SnakWidget every time it is called
ok 63 SnakListWidget > Valid data roundtrip with somevalue snak
ok 64 SnakListWidget > Valid data roundtrip with novalue snak
ok 65 SnakWidget > Valid data roundtrip
ok 66 SnakWidget > Setting other data triggers a change event
ok 67 SnakWidget > Setting same data does not trigger a change event
ok 68 SnakWidget > setData() sets property ID in the PropertyInput widget
ok 69 SnakWidget > setData() sets value data in the valueInput widget
ok 70 SnakWidget > Property labels are available after API calls complete
ok 71 SnakWidget > Test enabling edit state
ok 72 SnakWidget > Test disabling edit state
ok 73 SnakWidget > Valid data roundtrip with somevalue snak
ok 74 SnakWidget > Valid data roundtrip with novalue snak
ok 75 StatementWidget > Valid data roundtrip
ok 76 StatementWidget > Setting other data triggers a change event
ok 77 StatementWidget > Setting same data does not trigger a change event
ok 78 StatementWidget > Test detection of changes
ok 79 StatementWidget > Test enabling edit state
ok 80 StatementWidget > Test disabling edit state
ok 81 StatementWidget > Widget can handle multiple errors
ok 82 EntityInputWidget > Valid data roundtrip
ok 83 EntityInputWidget > Setting other data triggers a change event
ok 84 EntityInputWidget > Setting same data does not trigger a change event
ok 85 GlobeCoordinateInputWidget > Valid data roundtrip
ok 86 GlobeCoordinateInputWidget > Setting other data triggers a change event
ok 87 GlobeCoordinateInputWidget > Setting same data does not trigger a change event
ok 88 MonolingualText > Valid data roundtrip
ok 89 MonolingualText > Setting other data triggers a change event
ok 90 MonolingualText > Setting same data does not trigger a change event
ok 91 MonolingualText > Widget has no button in qualifier mode
ok 92 MonolingualText > Widget has button in statement mode
ok 93 MultiTypeInputWrapperWidget > Valid data roundtrip (wikibase-entityid)
ok 94 MultiTypeInputWrapperWidget > Valid data roundtrip (string)
ok 95 MultiTypeInputWrapperWidget > Valid data roundtrip (monolingualtext)
ok 96 MultiTypeInputWrapperWidget > Valid data roundtrip (quantity)
ok 97 MultiTypeInputWrapperWidget > Valid data roundtrip (time)
ok 98 MultiTypeInputWrapperWidget > Valid data roundtrip (globecoordinate)
ok 99 MultiTypeInputWrapperWidget > Valid data roundtrip (unsupported)
ok 100 MultiTypeInputWrapperWidget > Setting other data triggers a change event
ok 101 MultiTypeInputWrapperWidget > Setting same data does not trigger a change event
ok 102 MultiTypeInputWrapperWidget > Changing to same input type leaves existing value unaltered
ok 103 MultiTypeInputWrapperWidget > Changing to other input type (and back) wipes out existing data
ok 104 MultiTypeInputWrapperWidget > Widget creates the correct input type
ok 105 MultiTypeInputWrapperWidget > add event is fired when child input emits add
ok 106 MultiTypeInputWrapperWidget > setErrors adds MessageWidget to UI and flags string input as invalid
ok 107 MultiTypeInputWrapperWidget > Widget can handle multiple errors
ok 108 MultiTypeInputWrapperWidget > Setting snak type to somevalue changes input to disabled string input
ok 109 MultiTypeInputWrapperWidget > Setting snak type to novalue changes input to disabled string input
ok 110 MultiTypeInputWrapperWidget > Setting snak type to value changes input to original type
ok 111 MultiTypeInputWrapperWidget > Datatype can be set explicitly
ok 112 QuantityInputWidget > Valid data roundtrip
ok 113 QuantityInputWidget > Setting other data triggers a change event
ok 114 QuantityInputWidget > Setting same data does not trigger a change event
ok 115 QuantityInputWidget > Widget has no button in qualifier mode
ok 116 QuantityInputWidget > Widget has button in statement mode
ok 117 QuantityInputWidget > Widget displays no options by default
ok 118 QuantityInputWidget > Widget displays button to add unit when focused
ok 119 QuantityInputWidget > Widget displays custom unit when it has one
ok 120 StringInputWidget > Valid data roundtrip
ok 121 StringInputWidget > Setting other data triggers a change event
ok 122 StringInputWidget > Setting same data does not trigger a change event
ok 123 StringInputWidget > Widget has no button in qualifier mode
ok 124 StringInputWidget > Widget has button in statement mode
ok 125 TimeInputWidget > Valid data roundtrip
ok 126 TimeInputWidget > Setting other data triggers a change event
ok 127 TimeInputWidget > Setting same data does not trigger a change event
ok 128 TimeInputWidget > Widget has no button in qualifier mode
ok 129 TimeInputWidget > Widget has button in statement mode
1..129
# pass 129
# skip 0
# todo 0
# fail 0
--- end ---
{"1113428": {"source": 1113428, "name": "ajv", "dependency": "ajv", "title": "ajv has ReDoS when using `$data` option", "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", "severity": "moderate", "cwe": ["CWE-400", "CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": "<6.14.0"}, "1113429": {"source": 1113429, "name": "ajv", "dependency": "ajv", "title": "ajv has ReDoS when using `$data` option", "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", "severity": "moderate", "cwe": ["CWE-400", "CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": ">=7.0.0-alpha.0 <8.18.0"}}
Upgrading n:ajv from 6.12.6, 8.17.1 -> 6.14.0, 8.18.0
{"1112703": {"source": 1112703, "name": "diff", "dependency": "diff", "title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch", "url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx", "severity": "low", "cwe": ["CWE-400", "CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": "<3.5.1"}}
Upgrading n:diff from 3.5.0, 4.0.4 -> 3.5.1, 4.0.4
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json
--- end ---
build: Updating dependencies
composer:
* mediawiki/minus-x: 1.1.3 → 2.0.1
* mediawiki/mediawiki-codesniffer: 49.0.0 → 50.0.0
The following sniffs are failing and were disabled:
* MediaWiki.Commenting.FunctionComment.MissingParamName
* MediaWiki.Commenting.FunctionComment.MissingParamTag
* mediawiki/mediawiki-phan-config: 0.18.0 → 0.19.0
npm:
* ajv: 6.12.6, 8.17.1 → 6.14.0, 8.18.0
* https://github.com/advisories/GHSA-2g4f-4pwh-qvx6
* diff: 3.5.0, 4.0.4 → 3.5.1, 4.0.4
* https://github.com/advisories/GHSA-73rr-hh4g-fpgx
$ git add .
--- stdout ---
--- end ---
$ git commit -F /tmp/tmpart_c69y
--- stdout ---
[master 2ef3a7e] build: Updating dependencies
3 files changed, 51 insertions(+), 48 deletions(-)
--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From 2ef3a7e8ae160ca2fe1ce00d15ecef7c29c15877 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sat, 28 Feb 2026 13:52:39 +0000
Subject: [PATCH] build: Updating dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
composer:
* mediawiki/minus-x: 1.1.3 → 2.0.1
* mediawiki/mediawiki-codesniffer: 49.0.0 → 50.0.0
The following sniffs are failing and were disabled:
* MediaWiki.Commenting.FunctionComment.MissingParamName
* MediaWiki.Commenting.FunctionComment.MissingParamTag
* mediawiki/mediawiki-phan-config: 0.18.0 → 0.19.0
npm:
* ajv: 6.12.6, 8.17.1 → 6.14.0, 8.18.0
* https://github.com/advisories/GHSA-2g4f-4pwh-qvx6
* diff: 3.5.0, 4.0.4 → 3.5.1, 4.0.4
* https://github.com/advisories/GHSA-73rr-hh4g-fpgx
Change-Id: Ic626d392ed3895656ac05bf2a45f05c4e4436309
---
.phpcs.xml | 5 ++-
composer.json | 6 ++--
package-lock.json | 88 +++++++++++++++++++++++------------------------
3 files changed, 51 insertions(+), 48 deletions(-)
diff --git a/.phpcs.xml b/.phpcs.xml
index faa666c..3d8768a 100644
--- a/.phpcs.xml
+++ b/.phpcs.xml
@@ -1,6 +1,9 @@
<?xml version="1.0"?>
<ruleset>
- <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki" />
+ <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamName" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamTag" />
+ </rule>
<file>.</file>
<arg name="extensions" value="php"/>
diff --git a/composer.json b/composer.json
index ab35a61..a1ff26a 100644
--- a/composer.json
+++ b/composer.json
@@ -17,9 +17,9 @@
"serialization/serialization": "~3.2|~4.0"
},
"require-dev": {
- "mediawiki/mediawiki-codesniffer": "49.0.0",
- "mediawiki/mediawiki-phan-config": "0.18.0",
- "mediawiki/minus-x": "1.1.3",
+ "mediawiki/mediawiki-codesniffer": "50.0.0",
+ "mediawiki/mediawiki-phan-config": "0.19.0",
+ "mediawiki/minus-x": "2.0.1",
"php-parallel-lint/php-console-highlighter": "1.0.0",
"php-parallel-lint/php-parallel-lint": "1.4.0"
},
diff --git a/package-lock.json b/package-lock.json
index bd70fc8..d1e043c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -537,9 +537,9 @@
}
},
"node_modules/@eslint/eslintrc/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
@@ -1116,12 +1116,12 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "brace-expansion": "^2.0.2"
},
"engines": {
"node": ">=16 || 14 >=14.17"
@@ -1266,9 +1266,9 @@
}
},
"node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
@@ -2034,9 +2034,9 @@
}
},
"node_modules/diff": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
- "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.1.tgz",
+ "integrity": "sha512-Z3u54A8qGyqFOSr2pk0ijYs8mOE9Qz8kTvtKeBI+upoG9j04Sq+oI7W8zAJiQybDcESET8/uIdHzs0p3k4fZlw==",
"dev": true,
"engines": {
"node": ">=0.3.1"
@@ -3078,9 +3078,9 @@
}
},
"node_modules/eslint/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
@@ -5879,9 +5879,9 @@
}
},
"node_modules/qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
+ "version": "6.5.5",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.5.tgz",
+ "integrity": "sha512-mzR4sElr1bfCaPJe7m8ilJ6ZXdDaGoObcYR0ZHSsktM/Lt21MVHj5De30GQH2eiZ1qGRTO7LCAzQsUeXTNexWQ==",
"dev": true,
"engines": {
"node": ">=0.6"
@@ -7018,9 +7018,9 @@
}
},
"node_modules/table/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"dev": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
@@ -8137,9 +8137,9 @@
},
"dependencies": {
"minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
@@ -8549,12 +8549,12 @@
}
},
"minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
"requires": {
- "brace-expansion": "^2.0.1"
+ "brace-expansion": "^2.0.2"
}
}
}
@@ -8655,9 +8655,9 @@
}
},
"ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -9223,9 +9223,9 @@
"dev": true
},
"diff": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
- "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.1.tgz",
+ "integrity": "sha512-Z3u54A8qGyqFOSr2pk0ijYs8mOE9Qz8kTvtKeBI+upoG9j04Sq+oI7W8zAJiQybDcESET8/uIdHzs0p3k4fZlw==",
"dev": true
},
"diff-sequences": {
@@ -9578,9 +9578,9 @@
}
},
"minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
@@ -12102,9 +12102,9 @@
"dev": true
},
"qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
+ "version": "6.5.5",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.5.tgz",
+ "integrity": "sha512-mzR4sElr1bfCaPJe7m8ilJ6ZXdDaGoObcYR0ZHSsktM/Lt21MVHj5De30GQH2eiZ1qGRTO7LCAzQsUeXTNexWQ==",
"dev": true
},
"queue-microtask": {
@@ -12897,9 +12897,9 @@
},
"dependencies": {
"ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.3",
--
2.47.3
--- end ---