mediawiki/core: main (log #1938391)

sourcepatches

This run took 237 seconds.

From 814f56851a70e5e81dbca9d5b4a6690e1dd42d3a Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Wed, 11 Jun 2025 00:16:43 +0000
Subject: [PATCH] [DNM] there are no updates

Change-Id: I7d841007291a4a9d7ca6bdb60bb76b3325f03033
---
 package-lock.json | 513 +++++++++++++++++++++++++++++++++++++---------
 1 file changed, 418 insertions(+), 95 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 6d25130..4cbd5a0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2426,24 +2426,27 @@
 			}
 		},
 		"node_modules/@eslint-community/eslint-utils": {
-			"version": "4.4.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-			"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+			"version": "4.7.0",
+			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+			"integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
 			"dev": true,
 			"dependencies": {
-				"eslint-visitor-keys": "^3.3.0"
+				"eslint-visitor-keys": "^3.4.3"
 			},
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
 			},
+			"funding": {
+				"url": "https://opencollective.com/eslint"
+			},
 			"peerDependencies": {
 				"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
 			}
 		},
 		"node_modules/@eslint-community/regexpp": {
-			"version": "4.6.2",
-			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz",
-			"integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==",
+			"version": "4.12.1",
+			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+			"integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
 			"dev": true,
 			"engines": {
 				"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -4038,6 +4041,40 @@
 				"@types/node": "*"
 			}
 		},
+		"node_modules/@typescript-eslint/project-service": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
+			"integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/tsconfig-utils": "^8.34.0",
+				"@typescript-eslint/types": "^8.34.0",
+				"debug": "^4.3.4"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+			"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
 		"node_modules/@typescript-eslint/scope-manager": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz",
@@ -4055,6 +4092,22 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			}
 		},
+		"node_modules/@typescript-eslint/tsconfig-utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
+			"integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
 		"node_modules/@typescript-eslint/types": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz",
@@ -8253,9 +8306,9 @@
 			}
 		},
 		"node_modules/enhanced-resolve": {
-			"version": "5.17.0",
-			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
-			"integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
+			"version": "5.18.1",
+			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+			"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
 			"dev": true,
 			"dependencies": {
 				"graceful-fs": "^4.2.4",
@@ -8577,9 +8630,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-es-x": {
-			"version": "7.7.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.7.0.tgz",
-			"integrity": "sha512-aP3qj8BwiEDPttxQkZdI221DLKq9sI/qHolE2YSQL1/9+xk7dTV+tB1Fz8/IaCA+lnLA1bDEnvaS2LKs0k2Uig==",
+			"version": "7.8.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
+			"integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
 			"dev": true,
 			"funding": [
 				"https://github.com/sponsors/ota-meshi",
@@ -8587,7 +8640,7 @@
 			],
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.1.2",
-				"@eslint-community/regexpp": "^4.6.0",
+				"@eslint-community/regexpp": "^4.11.0",
 				"eslint-compat-utils": "^0.5.1"
 			},
 			"engines": {
@@ -8699,19 +8752,21 @@
 			}
 		},
 		"node_modules/eslint-plugin-n": {
-			"version": "17.8.1",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.8.1.tgz",
-			"integrity": "sha512-KdG0h0voZms8UhndNu8DeWx1eM4sY+A4iXtsNo6kOfJLYHNeTGPacGalJ9GcvrbmOL3r/7QOMwVZDSw+1SqsrA==",
+			"version": "17.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.19.0.tgz",
+			"integrity": "sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==",
 			"dev": true,
 			"dependencies": {
-				"@eslint-community/eslint-utils": "^4.4.0",
-				"enhanced-resolve": "^5.17.0",
-				"eslint-plugin-es-x": "^7.5.0",
-				"get-tsconfig": "^4.7.0",
-				"globals": "^15.0.0",
-				"ignore": "^5.2.4",
-				"minimatch": "^9.0.0",
-				"semver": "^7.5.3"
+				"@eslint-community/eslint-utils": "^4.5.0",
+				"@typescript-eslint/utils": "^8.26.1",
+				"enhanced-resolve": "^5.17.1",
+				"eslint-plugin-es-x": "^7.8.0",
+				"get-tsconfig": "^4.8.1",
+				"globals": "^15.11.0",
+				"ignore": "^5.3.2",
+				"minimatch": "^9.0.5",
+				"semver": "^7.6.3",
+				"ts-declaration-location": "^1.0.6"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -8723,6 +8778,104 @@
 				"eslint": ">=8.23.0"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/scope-manager": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
+			"integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/visitor-keys": "8.34.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/types": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+			"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/typescript-estree": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
+			"integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/project-service": "8.34.0",
+				"@typescript-eslint/tsconfig-utils": "8.34.0",
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/visitor-keys": "8.34.0",
+				"debug": "^4.3.4",
+				"fast-glob": "^3.3.2",
+				"is-glob": "^4.0.3",
+				"minimatch": "^9.0.4",
+				"semver": "^7.6.0",
+				"ts-api-utils": "^2.1.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
+			"integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
+			"dev": true,
+			"dependencies": {
+				"@eslint-community/eslint-utils": "^4.7.0",
+				"@typescript-eslint/scope-manager": "8.34.0",
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/typescript-estree": "8.34.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"eslint": "^8.57.0 || ^9.0.0",
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/visitor-keys": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
+			"integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/types": "8.34.0",
+				"eslint-visitor-keys": "^4.2.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
 		"node_modules/eslint-plugin-n/node_modules/brace-expansion": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -8732,6 +8885,18 @@
 				"balanced-match": "^1.0.0"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/eslint-visitor-keys": {
+			"version": "4.2.1",
+			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+			"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"url": "https://opencollective.com/eslint"
+			}
+		},
 		"node_modules/eslint-plugin-n/node_modules/globals": {
 			"version": "15.15.0",
 			"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
@@ -8760,6 +8925,18 @@
 				"url": "https://github.com/sponsors/isaacs"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/ts-api-utils": {
+			"version": "2.1.0",
+			"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+			"integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=18.12"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4"
+			}
+		},
 		"node_modules/eslint-plugin-no-jquery": {
 			"version": "3.1.1",
 			"resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.1.1.tgz",
@@ -9228,12 +9405,12 @@
 			}
 		},
 		"node_modules/expect-webdriverio": {
-			"version": "5.2.1",
-			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.2.1.tgz",
-			"integrity": "sha512-rjTiQ8ztIsrRYH4sVrDjAGi/XWUN1LuTtJ+yr3OlWs6sgYx57mrI0Cn3rDAavCVU6eqZ1oBAcBZL583sY3mx2Q==",
+			"version": "5.3.0",
+			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.3.0.tgz",
+			"integrity": "sha512-EUiibBYXWzSn9mJFuF914yeKUxvRxrhR9nImfe0YttG+wVg0v5jY1DPPnRz8sE0wlmoLHyLr155b5/d1+oZmxg==",
 			"dev": true,
 			"dependencies": {
-				"@vitest/snapshot": "^3.2.0",
+				"@vitest/snapshot": "^3.2.1",
 				"expect": "^29.7.0",
 				"jest-matcher-utils": "^29.7.0",
 				"lodash.isequal": "^4.5.0"
@@ -10078,9 +10255,9 @@
 			}
 		},
 		"node_modules/get-tsconfig": {
-			"version": "4.7.5",
-			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz",
-			"integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
+			"version": "4.10.1",
+			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
+			"integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
 			"dev": true,
 			"dependencies": {
 				"resolve-pkg-maps": "^1.0.0"
@@ -12091,16 +12268,16 @@
 			}
 		},
 		"node_modules/js-beautify": {
-			"version": "1.15.1",
-			"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz",
-			"integrity": "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==",
+			"version": "1.15.4",
+			"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz",
+			"integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==",
 			"dev": true,
 			"dependencies": {
 				"config-chain": "^1.1.13",
 				"editorconfig": "^1.0.4",
-				"glob": "^10.3.3",
+				"glob": "^10.4.2",
 				"js-cookie": "^3.0.5",
-				"nopt": "^7.2.0"
+				"nopt": "^7.2.1"
 			},
 			"bin": {
 				"css-beautify": "js/bin/css-beautify.js",
@@ -16842,9 +17019,9 @@
 			"license": "MIT"
 		},
 		"node_modules/tapable": {
-			"version": "2.2.1",
-			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
-			"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+			"version": "2.2.2",
+			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
+			"integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==",
 			"dev": true,
 			"engines": {
 				"node": ">=6"
@@ -17017,6 +17194,40 @@
 				"typescript": ">=4.2.0"
 			}
 		},
+		"node_modules/ts-declaration-location": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz",
+			"integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "ko-fi",
+					"url": "https://ko-fi.com/rebeccastevens"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/ts-declaration-location"
+				}
+			],
+			"dependencies": {
+				"picomatch": "^4.0.2"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.0.0"
+			}
+		},
+		"node_modules/ts-declaration-location/node_modules/picomatch": {
+			"version": "4.0.2",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+			"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/jonschlinkert"
+			}
+		},
 		"node_modules/tsconfig": {
 			"version": "7.0.0",
 			"resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz",
@@ -17576,8 +17787,13 @@
 			}
 		},
 		"node_modules/wdio-mediawiki": {
-			"resolved": "tests/selenium/wdio-mediawiki",
-			"link": true
+			"version": "4.0.0",
+			"resolved": "file:tests/selenium/wdio-mediawiki",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"mwbot": "2.1.3"
+			}
 		},
 		"node_modules/web-streams-polyfill": {
 			"version": "3.3.3",
@@ -18160,14 +18376,6 @@
 			"dependencies": {
 				"safe-buffer": "~5.2.0"
 			}
-		},
-		"tests/selenium/wdio-mediawiki": {
-			"version": "4.0.0",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"mwbot": "2.1.3"
-			}
 		}
 	},
 	"dependencies": {
@@ -19702,18 +19910,18 @@
 			"optional": true
 		},
 		"@eslint-community/eslint-utils": {
-			"version": "4.4.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-			"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+			"version": "4.7.0",
+			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+			"integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
 			"dev": true,
 			"requires": {
-				"eslint-visitor-keys": "^3.3.0"
+				"eslint-visitor-keys": "^3.4.3"
 			}
 		},
 		"@eslint-community/regexpp": {
-			"version": "4.6.2",
-			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz",
-			"integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==",
+			"version": "4.12.1",
+			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+			"integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
 			"dev": true
 		},
 		"@eslint/eslintrc": {
@@ -20971,6 +21179,25 @@
 				"@types/node": "*"
 			}
 		},
+		"@typescript-eslint/project-service": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
+			"integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
+			"dev": true,
+			"requires": {
+				"@typescript-eslint/tsconfig-utils": "^8.34.0",
+				"@typescript-eslint/types": "^8.34.0",
+				"debug": "^4.3.4"
+			},
+			"dependencies": {
+				"@typescript-eslint/types": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+					"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+					"dev": true
+				}
+			}
+		},
 		"@typescript-eslint/scope-manager": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz",
@@ -20981,6 +21208,13 @@
 				"@typescript-eslint/visitor-keys": "7.13.0"
 			}
 		},
+		"@typescript-eslint/tsconfig-utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
+			"integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
+			"dev": true,
+			"requires": {}
+		},
 		"@typescript-eslint/types": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz",
@@ -24117,9 +24351,9 @@
 			"dev": true
 		},
 		"enhanced-resolve": {
-			"version": "5.17.0",
-			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
-			"integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
+			"version": "5.18.1",
+			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+			"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
 			"dev": true,
 			"requires": {
 				"graceful-fs": "^4.2.4",
@@ -24389,13 +24623,13 @@
 			}
 		},
 		"eslint-plugin-es-x": {
-			"version": "7.7.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.7.0.tgz",
-			"integrity": "sha512-aP3qj8BwiEDPttxQkZdI221DLKq9sI/qHolE2YSQL1/9+xk7dTV+tB1Fz8/IaCA+lnLA1bDEnvaS2LKs0k2Uig==",
+			"version": "7.8.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
+			"integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
 			"dev": true,
 			"requires": {
 				"@eslint-community/eslint-utils": "^4.1.2",
-				"@eslint-community/regexpp": "^4.6.0",
+				"@eslint-community/regexpp": "^4.11.0",
 				"eslint-compat-utils": "^0.5.1"
 			}
 		},
@@ -24469,21 +24703,79 @@
 			}
 		},
 		"eslint-plugin-n": {
-			"version": "17.8.1",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.8.1.tgz",
-			"integrity": "sha512-KdG0h0voZms8UhndNu8DeWx1eM4sY+A4iXtsNo6kOfJLYHNeTGPacGalJ9GcvrbmOL3r/7QOMwVZDSw+1SqsrA==",
-			"dev": true,
-			"requires": {
-				"@eslint-community/eslint-utils": "^4.4.0",
-				"enhanced-resolve": "^5.17.0",
-				"eslint-plugin-es-x": "^7.5.0",
-				"get-tsconfig": "^4.7.0",
-				"globals": "^15.0.0",
-				"ignore": "^5.2.4",
-				"minimatch": "^9.0.0",
-				"semver": "^7.5.3"
-			},
-			"dependencies": {
+			"version": "17.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.19.0.tgz",
+			"integrity": "sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==",
+			"dev": true,
+			"requires": {
+				"@eslint-community/eslint-utils": "^4.5.0",
+				"@typescript-eslint/utils": "^8.26.1",
+				"enhanced-resolve": "^5.17.1",
+				"eslint-plugin-es-x": "^7.8.0",
+				"get-tsconfig": "^4.8.1",
+				"globals": "^15.11.0",
+				"ignore": "^5.3.2",
+				"minimatch": "^9.0.5",
+				"semver": "^7.6.3",
+				"ts-declaration-location": "^1.0.6"
+			},
+			"dependencies": {
+				"@typescript-eslint/scope-manager": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
+					"integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
+					"dev": true,
+					"requires": {
+						"@typescript-eslint/types": "8.34.0",
+						"@typescript-eslint/visitor-keys": "8.34.0"
+					}
+				},
+				"@typescript-eslint/types": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+					"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+					"dev": true
+				},
+				"@typescript-eslint/typescript-estree": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
+					"integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
+					"dev": true,
+					"requires": {
+						"@typescript-eslint/project-service": "8.34.0",
+						"@typescript-eslint/tsconfig-utils": "8.34.0",
+						"@typescript-eslint/types": "8.34.0",
+						"@typescript-eslint/visitor-keys": "8.34.0",
+						"debug": "^4.3.4",
+						"fast-glob": "^3.3.2",
+						"is-glob": "^4.0.3",
+						"minimatch": "^9.0.4",
+						"semver": "^7.6.0",
+						"ts-api-utils": "^2.1.0"
+					}
+				},
+				"@typescript-eslint/utils": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
+					"integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
+					"dev": true,
+					"requires": {
+						"@eslint-community/eslint-utils": "^4.7.0",
+						"@typescript-eslint/scope-manager": "8.34.0",
+						"@typescript-eslint/types": "8.34.0",
+						"@typescript-eslint/typescript-estree": "8.34.0"
+					}
+				},
+				"@typescript-eslint/visitor-keys": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
+					"integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
+					"dev": true,
+					"requires": {
+						"@typescript-eslint/types": "8.34.0",
+						"eslint-visitor-keys": "^4.2.0"
+					}
+				},
 				"brace-expansion": {
 					"version": "2.0.1",
 					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -24493,6 +24785,12 @@
 						"balanced-match": "^1.0.0"
 					}
 				},
+				"eslint-visitor-keys": {
+					"version": "4.2.1",
+					"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+					"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+					"dev": true
+				},
 				"globals": {
 					"version": "15.15.0",
 					"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
@@ -24507,6 +24805,13 @@
 					"requires": {
 						"brace-expansion": "^2.0.1"
 					}
+				},
+				"ts-api-utils": {
+					"version": "2.1.0",
+					"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+					"integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
+					"dev": true,
+					"requires": {}
 				}
 			}
 		},
@@ -24816,12 +25121,12 @@
 			}
 		},
 		"expect-webdriverio": {
-			"version": "5.2.1",
-			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.2.1.tgz",
-			"integrity": "sha512-rjTiQ8ztIsrRYH4sVrDjAGi/XWUN1LuTtJ+yr3OlWs6sgYx57mrI0Cn3rDAavCVU6eqZ1oBAcBZL583sY3mx2Q==",
+			"version": "5.3.0",
+			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.3.0.tgz",
+			"integrity": "sha512-EUiibBYXWzSn9mJFuF914yeKUxvRxrhR9nImfe0YttG+wVg0v5jY1DPPnRz8sE0wlmoLHyLr155b5/d1+oZmxg==",
 			"dev": true,
 			"requires": {
-				"@vitest/snapshot": "^3.2.0",
+				"@vitest/snapshot": "^3.2.1",
 				"expect": "^29.7.0",
 				"jest-matcher-utils": "^29.7.0",
 				"lodash.isequal": "^4.5.0"
@@ -25426,9 +25731,9 @@
 			}
 		},
 		"get-tsconfig": {
-			"version": "4.7.5",
-			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz",
-			"integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
+			"version": "4.10.1",
+			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
+			"integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
 			"dev": true,
 			"requires": {
 				"resolve-pkg-maps": "^1.0.0"
@@ -26925,16 +27230,16 @@
 			}
 		},
 		"js-beautify": {
-			"version": "1.15.1",
-			"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz",
-			"integrity": "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==",
+			"version": "1.15.4",
+			"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz",
+			"integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==",
 			"dev": true,
 			"requires": {
 				"config-chain": "^1.1.13",
 				"editorconfig": "^1.0.4",
-				"glob": "^10.3.3",
+				"glob": "^10.4.2",
 				"js-cookie": "^3.0.5",
-				"nopt": "^7.2.0"
+				"nopt": "^7.2.1"
 			},
 			"dependencies": {
 				"abbrev": {
@@ -30512,9 +30817,9 @@
 			}
 		},
 		"tapable": {
-			"version": "2.2.1",
-			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
-			"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+			"version": "2.2.2",
+			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
+			"integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==",
 			"dev": true
 		},
 		"tar-fs": {
@@ -30660,6 +30965,23 @@
 			"dev": true,
 			"requires": {}
 		},
+		"ts-declaration-location": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz",
+			"integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==",
+			"dev": true,
+			"requires": {
+				"picomatch": "^4.0.2"
+			},
+			"dependencies": {
+				"picomatch": {
+					"version": "4.0.2",
+					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+					"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+					"dev": true
+				}
+			}
+		},
 		"tsconfig": {
 			"version": "7.0.0",
 			"resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz",
@@ -31056,7 +31378,8 @@
 			}
 		},
 		"wdio-mediawiki": {
-			"version": "file:tests/selenium/wdio-mediawiki",
+			"version": "4.0.0",
+			"dev": true,
 			"requires": {
 				"mwbot": "2.1.3"
 			}
-- 
2.39.5

$ date
--- stdout ---
Wed Jun 11 00:13:04 UTC 2025

--- end ---
$ git clone file:///srv/git/mediawiki-core.git repo --depth=1 -b master
--- stderr ---
Cloning into 'repo'...
Updating files:  67% (7486/11166)
Updating files:  68% (7593/11166)
Updating files:  69% (7705/11166)
Updating files:  70% (7817/11166)
Updating files:  71% (7928/11166)
Updating files:  72% (8040/11166)
Updating files:  73% (8152/11166)
Updating files:  74% (8263/11166)
Updating files:  75% (8375/11166)
Updating files:  76% (8487/11166)
Updating files:  77% (8598/11166)
Updating files:  78% (8710/11166)
Updating files:  79% (8822/11166)
Updating files:  80% (8933/11166)
Updating files:  81% (9045/11166)
Updating files:  82% (9157/11166)
Updating files:  83% (9268/11166)
Updating files:  84% (9380/11166)
Updating files:  85% (9492/11166)
Updating files:  86% (9603/11166)
Updating files:  87% (9715/11166)
Updating files:  88% (9827/11166)
Updating files:  89% (9938/11166)
Updating files:  90% (10050/11166)
Updating files:  91% (10162/11166)
Updating files:  92% (10273/11166)
Updating files:  93% (10385/11166)
Updating files:  94% (10497/11166)
Updating files:  95% (10608/11166)
Updating files:  96% (10720/11166)
Updating files:  97% (10832/11166)
Updating files:  98% (10943/11166)
Updating files:  99% (11055/11166)
Updating files: 100% (11166/11166)
Updating files: 100% (11166/11166), done.
--- 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 ---
a480cf9448b0280fc6c1b4eb9f609b8ffbdab57a refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/utils"
      ],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/utils": {
      "name": "@typescript-eslint/utils",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree"
      ],
      "effects": [],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": true
    },
    "@vue/test-utils": {
      "name": "@vue/test-utils",
      "severity": "low",
      "isDirect": true,
      "via": [
        "js-beautify"
      ],
      "effects": [],
      "range": ">=2.2.8",
      "nodes": [
        "node_modules/@vue/test-utils"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.2.7",
        "isSemVerMajor": true
      }
    },
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "low",
      "isDirect": true,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "webdriverio"
      ],
      "effects": [],
      "range": ">=7.20.0",
      "nodes": [
        "node_modules/@wdio/cli"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "@wdio/config": {
      "name": "@wdio/config",
      "severity": "low",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner",
        "webdriver",
        "webdriverio"
      ],
      "range": ">=7.20.0",
      "nodes": [
        "node_modules/@wdio/config"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "@wdio/globals": {
      "name": "@wdio/globals",
      "severity": "low",
      "isDirect": false,
      "via": [
        "expect-webdriverio",
        "webdriverio"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/globals"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "@wdio/local-runner": {
      "name": "@wdio/local-runner",
      "severity": "low",
      "isDirect": true,
      "via": [
        "@wdio/runner"
      ],
      "effects": [],
      "range": ">=7.20.0",
      "nodes": [
        "node_modules/@wdio/local-runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "@wdio/mocha-framework": {
      "name": "@wdio/mocha-framework",
      "severity": "low",
      "isDirect": true,
      "via": [
        "mocha"
      ],
      "effects": [],
      "range": ">=7.19.7",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.19.5",
        "isSemVerMajor": true
      }
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "expect-webdriverio",
        "webdriver",
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": ">=7.20.0",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "archiver": {
      "name": "archiver",
      "severity": "low",
      "isDirect": false,
      "via": [
        "archiver-utils",
        "readdir-glob",
        "zip-stream"
      ],
      "effects": [
        "webdriverio"
      ],
      "range": ">=5.3.2",
      "nodes": [
        "node_modules/archiver"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "archiver-utils": {
      "name": "archiver-utils",
      "severity": "low",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "archiver",
        "zip-stream"
      ],
      "range": ">=4.0.0",
      "nodes": [
        "node_modules/archiver-utils"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "axios": {
      "name": "axios",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1097679,
          "name": "axios",
          "dependency": "axios",
          "title": "Axios Cross-Site Request Forgery Vulnerability",
          "url": "https://github.com/advisories/GHSA-wf5p-g6vw-rhxx",
          "severity": "moderate",
          "cwe": [
            "CWE-352"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N"
          },
          "range": ">=0.8.1 <0.28.0"
        },
        {
          "source": 1103617,
          "name": "axios",
          "dependency": "axios",
          "title": "axios Requests Vulnerable To Possible SSRF and Credential Leakage via Absolute URL",
          "url": "https://github.com/advisories/GHSA-jr5f-v2jv-69x6",
          "severity": "high",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<0.30.0"
        }
      ],
      "effects": [
        "openapi-validator"
      ],
      "range": "<=0.29.0",
      "nodes": [
        "node_modules/axios"
      ],
      "fixAvailable": {
        "name": "chai-openapi-response-validator",
        "version": "0.14.1",
        "isSemVerMajor": true
      }
    },
    "brace-expansion": {
      "name": "brace-expansion",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1105422,
          "name": "brace-expansion",
          "dependency": "brace-expansion",
          "title": "brace-expansion Regular Expression Denial of Service vulnerability",
          "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
          "severity": "low",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 3.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=2.0.1 <=4.0.0"
        }
      ],
      "effects": [
        "minimatch"
      ],
      "range": ">=2.0.1",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion",
        "node_modules/@wdio/config/node_modules/brace-expansion",
        "node_modules/archiver-utils/node_modules/brace-expansion",
        "node_modules/editorconfig/node_modules/brace-expansion",
        "node_modules/eslint-plugin-n/node_modules/brace-expansion",
        "node_modules/filelist/node_modules/brace-expansion",
        "node_modules/js-beautify/node_modules/brace-expansion",
        "node_modules/mocha/node_modules/brace-expansion",
        "node_modules/readdir-glob/node_modules/brace-expansion"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "chai-openapi-response-validator": {
      "name": "chai-openapi-response-validator",
      "severity": "high",
      "isDirect": true,
      "via": [
        "openapi-validator"
      ],
      "effects": [],
      "range": "0.11.2 || >=0.14.2-alpha.0",
      "nodes": [
        "node_modules/chai-openapi-response-validator"
      ],
      "fixAvailable": {
        "name": "chai-openapi-response-validator",
        "version": "0.14.1",
        "isSemVerMajor": true
      }
    },
    "editorconfig": {
      "name": "editorconfig",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "js-beautify"
      ],
      "range": ">=1.0.0",
      "nodes": [
        "node_modules/editorconfig"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.2.7",
        "isSemVerMajor": true
      }
    },
    "eslint-config-wikimedia": {
      "name": "eslint-config-wikimedia",
      "severity": "low",
      "isDirect": true,
      "via": [
        "eslint-plugin-n"
      ],
      "effects": [],
      "range": ">=0.28.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-n": {
      "name": "eslint-plugin-n",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": ">=17.0.0-0",
      "nodes": [
        "node_modules/eslint-plugin-n"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "expect-webdriverio": {
      "name": "expect-webdriverio",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@wdio/globals",
        "webdriverio"
      ],
      "effects": [
        "@wdio/globals",
        "@wdio/runner"
      ],
      "range": "4.0.0-alpha.0 - 4.0.0-alpha.6 || >=4.0.1",
      "nodes": [
        "node_modules/expect-webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "filelist": {
      "name": "filelist",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [],
      "range": ">=1.0.3",
      "nodes": [
        "node_modules/filelist"
      ],
      "fixAvailable": true
    },
    "glob": {
      "name": "glob",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@wdio/config",
        "archiver-utils",
        "js-beautify",
        "mocha"
      ],
      "range": ">=8.0.1",
      "nodes": [
        "node_modules/@wdio/config/node_modules/glob",
        "node_modules/archiver-utils/node_modules/glob",
        "node_modules/js-beautify/node_modules/glob",
        "node_modules/mocha/node_modules/glob"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.19.5",
        "isSemVerMajor": true
      }
    },
    "js-beautify": {
      "name": "js-beautify",
      "severity": "low",
      "isDirect": false,
      "via": [
        "editorconfig",
        "glob"
      ],
      "effects": [
        "@vue/test-utils"
      ],
      "range": ">=1.14.5",
      "nodes": [
        "node_modules/js-beautify"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.2.7",
        "isSemVerMajor": true
      }
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "low",
      "isDirect": false,
      "via": [
        "brace-expansion"
      ],
      "effects": [
        "@typescript-eslint/typescript-estree",
        "editorconfig",
        "eslint-plugin-n",
        "filelist",
        "glob",
        "mocha",
        "readdir-glob"
      ],
      "range": ">=5.0.0",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch",
        "node_modules/@wdio/config/node_modules/minimatch",
        "node_modules/archiver-utils/node_modules/minimatch",
        "node_modules/editorconfig/node_modules/minimatch",
        "node_modules/eslint-plugin-n/node_modules/minimatch",
        "node_modules/filelist/node_modules/minimatch",
        "node_modules/js-beautify/node_modules/minimatch",
        "node_modules/mocha/node_modules/minimatch",
        "node_modules/readdir-glob/node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "mocha": {
      "name": "mocha",
      "severity": "low",
      "isDirect": false,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "@wdio/mocha-framework"
      ],
      "range": ">=10.0.0",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.19.5",
        "isSemVerMajor": true
      }
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "0.1.5",
        "isSemVerMajor": true
      }
    },
    "openapi-validator": {
      "name": "openapi-validator",
      "severity": "high",
      "isDirect": false,
      "via": [
        "axios"
      ],
      "effects": [
        "chai-openapi-response-validator"
      ],
      "range": ">=0.14.2-alpha.0",
      "nodes": [
        "node_modules/openapi-validator"
      ],
      "fixAvailable": {
        "name": "chai-openapi-response-validator",
        "version": "0.14.1",
        "isSemVerMajor": true
      }
    },
    "readdir-glob": {
      "name": "readdir-glob",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "archiver"
      ],
      "range": ">=1.1.2",
      "nodes": [
        "node_modules/readdir-glob"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "request": {
      "name": "request",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "tough-cookie"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "0.1.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": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/tough-cookie"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "0.1.5",
        "isSemVerMajor": true
      }
    },
    "webdriver": {
      "name": "webdriver",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@wdio/config"
      ],
      "effects": [],
      "range": ">=7.20.0",
      "nodes": [
        "node_modules/webdriver"
      ],
      "fixAvailable": true
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "archiver",
        "webdriver"
      ],
      "effects": [
        "@wdio/globals",
        "expect-webdriverio"
      ],
      "range": ">=7.20.0",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "zip-stream": {
      "name": "zip-stream",
      "severity": "low",
      "isDirect": false,
      "via": [
        "archiver-utils"
      ],
      "effects": [],
      "range": "5.0.1 - 6.0.1",
      "nodes": [
        "node_modules/zip-stream"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 25,
      "moderate": 3,
      "high": 3,
      "critical": 0,
      "total": 31
    },
    "dependencies": {
      "prod": 1,
      "dev": 1465,
      "optional": 37,
      "peer": 1,
      "peerOptional": 0,
      "total": 1465
    }
  }
}

--- 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.
> MediaWiki\Composer\VersionChecker::onEvent
Loading composer repositories with package information
Updating dependencies
Lock file operations: 136 installs, 0 updates, 0 removals
  - Locking composer/pcre (3.3.2)
  - Locking composer/semver (3.4.3)
  - Locking composer/spdx-licenses (1.5.8)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking cssjanus/cssjanus (v2.3.0)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0)
  - Locking doctrine/cache (2.2.0)
  - Locking doctrine/dbal (3.9.4)
  - Locking doctrine/deprecations (1.1.5)
  - Locking doctrine/event-manager (2.0.1)
  - Locking doctrine/instantiator (2.0.0)
  - Locking doctrine/sql-formatter (1.3.0)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking giorgiosironi/eris (0.14.1)
  - Locking guzzlehttp/guzzle (7.9.3)
  - Locking guzzlehttp/promises (2.2.0)
  - Locking guzzlehttp/psr7 (2.7.1)
  - Locking hamcrest/hamcrest-php (v2.1.1)
  - Locking johnkary/phpunit-speedtrap (v4.0.1)
  - Locking justinrainbow/json-schema (5.3.0)
  - Locking liuggio/statsd-php-client (v1.0.18)
  - Locking mck89/peast (v1.17.0)
  - Locking mediawiki/mediawiki-codesniffer (v47.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.15.1)
  - Locking mediawiki/minus-x (1.1.3)
  - Locking mediawiki/phan-taint-check-plugin (6.1.0)
  - Locking microsoft/tolerant-php-parser (v0.1.2)
  - Locking monolog/monolog (2.9.3)
  - Locking myclabs/deep-copy (1.13.1)
  - Locking netresearch/jsonmapper (v4.5.0)
  - Locking nikic/php-parser (v5.5.0)
  - Locking oojs/oojs-ui (v0.51.7)
  - Locking pear/console_getopt (v1.4.3)
  - Locking pear/mail (v2.0.0)
  - Locking pear/mail_mime (1.10.12)
  - Locking pear/net_smtp (1.12.1)
  - Locking pear/net_socket (v1.2.2)
  - Locking pear/net_url2 (v2.2.3)
  - Locking pear/pear-core-minimal (v1.10.16)
  - Locking pear/pear_exception (v1.0.2)
  - Locking phan/phan (5.4.5)
  - Locking phar-io/manifest (2.0.4)
  - Locking phar-io/version (3.2.1)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking php-parallel-lint/php-parallel-lint (v1.4.0)
  - Locking phpcsstandards/phpcsextra (1.2.1)
  - Locking phpcsstandards/phpcsutils (1.0.12)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.6.2)
  - Locking phpdocumentor/type-resolver (1.10.0)
  - Locking phpstan/phpdoc-parser (2.1.0)
  - Locking phpunit/php-code-coverage (9.2.32)
  - Locking phpunit/php-file-iterator (3.0.6)
  - Locking phpunit/php-invoker (3.1.1)
  - Locking phpunit/php-text-template (2.0.4)
  - Locking phpunit/php-timer (5.0.3)
  - Locking phpunit/phpunit (9.6.21)
  - Locking psr/cache (3.0.0)
  - Locking psr/container (2.0.2)
  - Locking psr/http-client (1.0.3)
  - Locking psr/http-factory (1.1.0)
  - Locking psr/http-message (1.1)
  - Locking psr/log (1.1.4)
  - Locking psy/psysh (v0.12.8)
  - Locking ralouphie/getallheaders (3.0.3)
  - Locking sabre/event (5.1.7)
  - Locking sebastian/cli-parser (1.0.2)
  - Locking sebastian/code-unit (1.0.8)
  - Locking sebastian/code-unit-reverse-lookup (2.0.3)
  - Locking sebastian/comparator (4.0.8)
  - Locking sebastian/complexity (2.0.3)
  - Locking sebastian/diff (4.0.6)
  - Locking sebastian/environment (5.1.5)
  - Locking sebastian/exporter (4.0.6)
  - Locking sebastian/global-state (5.0.7)
  - Locking sebastian/lines-of-code (1.0.4)
  - Locking sebastian/object-enumerator (4.0.4)
  - Locking sebastian/object-reflector (2.0.4)
  - Locking sebastian/recursion-context (4.0.5)
  - Locking sebastian/resource-operations (3.0.4)
  - Locking sebastian/type (3.2.1)
  - Locking sebastian/version (3.0.2)
  - Locking seld/jsonlint (1.11.0)
  - Locking squizlabs/php_codesniffer (3.12.2)
  - Locking symfony/console (v7.3.0)
  - Locking symfony/deprecation-contracts (v3.6.0)
  - Locking symfony/polyfill-php80 (v1.32.0)
  - Locking symfony/polyfill-php81 (v1.32.0)
  - Locking symfony/polyfill-php82 (v1.32.0)
  - Locking symfony/polyfill-php83 (v1.32.0)
  - Locking symfony/service-contracts (v3.6.0)
  - Locking symfony/string (v7.3.0)
  - Locking symfony/var-dumper (v7.3.0)
  - Locking symfony/yaml (v6.4.21)
  - Locking theseer/tokenizer (1.2.3)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (1.11.0)
  - Locking wikimedia/alea (1.0.0)
  - Locking wikimedia/assert (v0.5.1)
  - Locking wikimedia/at-ease (v3.0.0)
  - Locking wikimedia/base-convert (v2.0.2)
  - Locking wikimedia/bcp-47-code (v2.0.1)
  - Locking wikimedia/cdb (3.0.0)
  - Locking wikimedia/cldr-plural-rule-parser (v2.0.0)
  - Locking wikimedia/common-passwords (v0.5.1)
  - Locking wikimedia/composer-merge-plugin (v2.1.0)
  - Locking wikimedia/html-formatter (4.1.0)
  - Locking wikimedia/idle-dom (v2.0.1)
  - Locking wikimedia/ip-utils (5.0.0)
  - Locking wikimedia/json-codec (v3.0.3)
  - Locking wikimedia/langconv (0.5.0)
  - Locking wikimedia/less.php (v5.2.1)
  - Locking wikimedia/minify (2.9.0)
  - Locking wikimedia/normalized-exception (v2.1.1)
  - Locking wikimedia/object-factory (v5.0.1)
  - Locking wikimedia/parsoid (v0.22.0-a6)
  - Locking wikimedia/php-session-serializer (3.0.1)
  - Locking wikimedia/purtle (v2.0.0)
  - Locking wikimedia/relpath (4.0.2)
  - Locking wikimedia/remex-html (4.1.2)
  - Locking wikimedia/request-timeout (v2.0.2)
  - Locking wikimedia/running-stat (v2.1.0)
  - Locking wikimedia/scoped-callback (v5.0.0)
  - Locking wikimedia/services (4.0.0)
  - Locking wikimedia/shellbox (4.3.0)
  - Locking wikimedia/testing-access-wrapper (3.0.0)
  - Locking wikimedia/timestamp (v4.2.0)
  - Locking wikimedia/utfnormal (4.0.0)
  - Locking wikimedia/wait-condition-loop (v2.0.2)
  - Locking wikimedia/wikipeg (5.0.0)
  - Locking wikimedia/wrappedstring (v4.0.1)
  - Locking wikimedia/xmp-reader (0.9.4)
  - Locking wikimedia/zest-css (3.0.4)
  - Locking wmde/hamcrest-html-matchers (v1.1.0)
  - Locking zordius/lightncandy (v1.2.6)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 136 installs, 0 updates, 0 removals
  - Downloading wikimedia/composer-merge-plugin (v2.1.0)
  - Downloading cssjanus/cssjanus (v2.3.0)
  - Downloading doctrine/event-manager (2.0.1)
  - Downloading doctrine/cache (2.2.0)
  - Downloading doctrine/dbal (3.9.4)
  - Downloading doctrine/sql-formatter (1.3.0)
  - Downloading johnkary/phpunit-speedtrap (v4.0.1)
  - Downloading composer/spdx-licenses (1.5.8)
  - Downloading oojs/oojs-ui (v0.51.7)
  - Downloading pear/pear_exception (v1.0.2)
  - Downloading pear/console_getopt (v1.4.3)
  - Downloading pear/pear-core-minimal (v1.10.16)
  - Downloading pear/mail (v2.0.0)
  - Downloading pear/mail_mime (1.10.12)
  - Downloading pear/net_socket (v1.2.2)
  - Downloading pear/net_smtp (1.12.1)
  - Downloading symfony/var-dumper (v7.3.0)
  - Downloading psy/psysh (v0.12.8)
  - Downloading symfony/polyfill-php82 (v1.32.0)
  - Downloading wikimedia/cldr-plural-rule-parser (v2.0.0)
  - Downloading wikimedia/common-passwords (v0.5.1)
  - Downloading wikimedia/html-formatter (4.1.0)
  - Downloading wikimedia/langconv (0.5.0)
  - Downloading wikimedia/less.php (v5.2.1)
  - Downloading wikimedia/minify (2.9.0)
  - Downloading wikimedia/parsoid (v0.22.0-a6)
  - Downloading wikimedia/php-session-serializer (3.0.1)
  - Downloading wikimedia/relpath (4.0.2)
  - Downloading wikimedia/request-timeout (v2.0.2)
  - Downloading wikimedia/running-stat (v2.1.0)
  - Downloading monolog/monolog (2.9.3)
  - Downloading wikimedia/shellbox (4.3.0)
  - Downloading wikimedia/wait-condition-loop (v2.0.2)
  - Downloading wikimedia/wrappedstring (v4.0.1)
  - Downloading wikimedia/xmp-reader (0.9.4)
  - Downloading wmde/hamcrest-html-matchers (v1.1.0)
  0/36 [>---------------------------]   0%
  7/36 [=====>----------------------]  19%
 17/36 [=============>--------------]  47%
 25/36 [===================>--------]  69%
 30/36 [=======================>----]  83%
 34/36 [==========================>-]  94%
 35/36 [===========================>]  97%
 36/36 [============================] 100%
  - Installing wikimedia/composer-merge-plugin (v2.1.0): Extracting archive
  - Installing squizlabs/php_codesniffer (3.12.2): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive
  - Installing composer/pcre (3.3.2): Extracting archive
  - Installing cssjanus/cssjanus (v2.3.0): Extracting archive
  - Installing psr/log (1.1.4): Extracting archive
  - Installing psr/cache (3.0.0): Extracting archive
  - Installing doctrine/event-manager (2.0.1): Extracting archive
  - Installing doctrine/deprecations (1.1.5): Extracting archive
  - Installing doctrine/cache (2.2.0): Extracting archive
  - Installing doctrine/dbal (3.9.4): Extracting archive
  - Installing doctrine/sql-formatter (1.3.0): Extracting archive
  - Installing giorgiosironi/eris (0.14.1): Extracting archive
  - Installing guzzlehttp/promises (2.2.0): Extracting archive
  - Installing ralouphie/getallheaders (3.0.3): Extracting archive
  - Installing psr/http-message (1.1): Extracting archive
  - Installing psr/http-factory (1.1.0): Extracting archive
  - Installing guzzlehttp/psr7 (2.7.1): Extracting archive
  - Installing sebastian/version (3.0.2): Extracting archive
  - Installing sebastian/type (3.2.1): Extracting archive
  - Installing sebastian/resource-operations (3.0.4): Extracting archive
  - Installing sebastian/recursion-context (4.0.5): Extracting archive
  - Installing sebastian/object-reflector (2.0.4): Extracting archive
  - Installing sebastian/object-enumerator (4.0.4): Extracting archive
  - Installing sebastian/global-state (5.0.7): Extracting archive
  - Installing sebastian/exporter (4.0.6): Extracting archive
  - Installing sebastian/environment (5.1.5): Extracting archive
  - Installing sebastian/diff (4.0.6): Extracting archive
  - Installing sebastian/comparator (4.0.8): Extracting archive
  - Installing sebastian/code-unit (1.0.8): Extracting archive
  - Installing sebastian/cli-parser (1.0.2): Extracting archive
  - Installing phpunit/php-timer (5.0.3): Extracting archive
  - Installing phpunit/php-text-template (2.0.4): Extracting archive
  - Installing phpunit/php-invoker (3.1.1): Extracting archive
  - Installing phpunit/php-file-iterator (3.0.6): Extracting archive
  - Installing theseer/tokenizer (1.2.3): Extracting archive
  - Installing nikic/php-parser (v5.5.0): Extracting archive
  - Installing sebastian/lines-of-code (1.0.4): Extracting archive
  - Installing sebastian/complexity (2.0.3): Extracting archive
  - Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive
  - Installing phpunit/php-code-coverage (9.2.32): Extracting archive
  - Installing phar-io/version (3.2.1): Extracting archive
  - Installing phar-io/manifest (2.0.4): Extracting archive
  - Installing myclabs/deep-copy (1.13.1): Extracting archive
  - Installing doctrine/instantiator (2.0.0): Extracting archive
  - Installing phpunit/phpunit (9.6.21): Extracting archive
  - Installing johnkary/phpunit-speedtrap (v4.0.1): Extracting archive
  - Installing mck89/peast (v1.17.0): Extracting archive
  - Installing symfony/polyfill-php80 (v1.32.0): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive
  - Installing composer/spdx-licenses (1.5.8): Extracting archive
  - Installing composer/semver (3.4.3): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v47.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/string (v7.3.0): Extracting archive
  - Installing symfony/deprecation-contracts (v3.6.0): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.6.0): Extracting archive
  - Installing symfony/console (v7.3.0): Extracting archive
  - Installing sabre/event (5.1.7): Extracting archive
  - Installing netresearch/jsonmapper (v4.5.0): Extracting archive
  - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive
  - Installing webmozart/assert (1.11.0): Extracting archive
  - Installing phpstan/phpdoc-parser (2.1.0): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing phpdocumentor/type-resolver (1.10.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.6.2): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (5.4.5): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (6.1.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.15.1): Extracting archive
  - Installing mediawiki/minus-x (1.1.3): Extracting archive
  - Installing oojs/oojs-ui (v0.51.7): Extracting archive
  - Installing pear/pear_exception (v1.0.2): Extracting archive
  - Installing pear/console_getopt (v1.4.3): Extracting archive
  - Installing pear/pear-core-minimal (v1.10.16): Extracting archive
  - Installing pear/mail (v2.0.0): Extracting archive
  - Installing pear/mail_mime (1.10.12): Extracting archive
  - Installing pear/net_socket (v1.2.2): Extracting archive
  - Installing pear/net_smtp (1.12.1): 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 psr/http-client (1.0.3): Extracting archive
  - Installing symfony/var-dumper (v7.3.0): Extracting archive
  - Installing psy/psysh (v0.12.8): Extracting archive
  - Installing seld/jsonlint (1.11.0): Extracting archive
  - Installing symfony/polyfill-php81 (v1.32.0): Extracting archive
  - Installing symfony/polyfill-php82 (v1.32.0): Extracting archive
  - Installing symfony/polyfill-php83 (v1.32.0): Extracting archive
  - Installing symfony/yaml (v6.4.21): Extracting archive
  - Installing wikimedia/alea (1.0.0): Extracting archive
  - Installing wikimedia/at-ease (v3.0.0): Extracting archive
  - Installing wikimedia/cdb (3.0.0): Extracting archive
  - Installing wikimedia/cldr-plural-rule-parser (v2.0.0): Extracting archive
  - Installing wikimedia/common-passwords (v0.5.1): Extracting archive
  - Installing wikimedia/html-formatter (4.1.0): Extracting archive
  - Installing wikimedia/assert (v0.5.1): Extracting archive
  - Installing wikimedia/langconv (0.5.0): Extracting archive
  - Installing wikimedia/less.php (v5.2.1): Extracting archive
  - Installing pear/net_url2 (v2.2.3): Extracting archive
  - Installing wikimedia/minify (2.9.0): Extracting archive
  - Installing wikimedia/zest-css (3.0.4): Extracting archive
  - Installing wikimedia/wikipeg (5.0.0): Extracting archive
  - Installing wikimedia/scoped-callback (v5.0.0): Extracting archive
  - Installing wikimedia/utfnormal (4.0.0): Extracting archive
  - Installing wikimedia/remex-html (4.1.2): Extracting archive
  - Installing wikimedia/object-factory (v5.0.1): Extracting archive
  - Installing wikimedia/json-codec (v3.0.3): Extracting archive
  - Installing wikimedia/base-convert (v2.0.2): Extracting archive
  - Installing wikimedia/ip-utils (5.0.0): Extracting archive
  - Installing wikimedia/idle-dom (v2.0.1): Extracting archive
  - Installing wikimedia/bcp-47-code (v2.0.1): Extracting archive
  - Installing liuggio/statsd-php-client (v1.0.18): Extracting archive
  - Installing justinrainbow/json-schema (5.3.0): Extracting archive
  - Installing wikimedia/parsoid (v0.22.0-a6): Extracting archive
  - Installing wikimedia/php-session-serializer (3.0.1): Extracting archive
  - Installing wikimedia/purtle (v2.0.0): Extracting archive
  - Installing wikimedia/relpath (4.0.2): Extracting archive
  - Installing wikimedia/normalized-exception (v2.1.1): Extracting archive
  - Installing wikimedia/request-timeout (v2.0.2): Extracting archive
  - Installing wikimedia/running-stat (v2.1.0): Extracting archive
  - Installing wikimedia/services (4.0.0): Extracting archive
  - Installing monolog/monolog (2.9.3): Extracting archive
  - Installing guzzlehttp/guzzle (7.9.3): Extracting archive
  - Installing wikimedia/shellbox (4.3.0): Extracting archive
  - Installing wikimedia/testing-access-wrapper (3.0.0): Extracting archive
  - Installing wikimedia/wait-condition-loop (v2.0.2): Extracting archive
  - Installing wikimedia/wrappedstring (v4.0.1): Extracting archive
  - Installing wikimedia/timestamp (v4.2.0): Extracting archive
  - Installing wikimedia/xmp-reader (0.9.4): Extracting archive
  - Installing hamcrest/hamcrest-php (v2.1.1): Extracting archive
  - Installing wmde/hamcrest-html-matchers (v1.1.0): Extracting archive
  - Installing zordius/lightncandy (v1.2.6): Extracting archive
   0/133 [>---------------------------]   0%
  20/133 [====>-----------------------]  15%
  30/133 [======>---------------------]  22%
  44/133 [=========>------------------]  33%
  54/133 [===========>----------------]  40%
  72/133 [===============>------------]  54%
  82/133 [=================>----------]  61%
  98/133 [====================>-------]  73%
 109/133 [======================>-----]  81%
 121/133 [=========================>--]  90%
 133/133 [============================] 100%
27 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files
51 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> MediaWiki\Composer\ComposerVendorHtaccessCreator::onEvent
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/utils"
      ],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/utils": {
      "name": "@typescript-eslint/utils",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree"
      ],
      "effects": [],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": true
    },
    "@vue/test-utils": {
      "name": "@vue/test-utils",
      "severity": "low",
      "isDirect": true,
      "via": [
        "js-beautify"
      ],
      "effects": [],
      "range": ">=2.4.1",
      "nodes": [
        "node_modules/@vue/test-utils"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.4.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "low",
      "isDirect": true,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "webdriverio"
      ],
      "effects": [],
      "range": ">=7.20.0",
      "nodes": [
        "node_modules/@wdio/cli"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "@wdio/config": {
      "name": "@wdio/config",
      "severity": "low",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner",
        "webdriver",
        "webdriverio"
      ],
      "range": ">=7.20.0",
      "nodes": [
        "node_modules/@wdio/config"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "@wdio/globals": {
      "name": "@wdio/globals",
      "severity": "low",
      "isDirect": false,
      "via": [
        "expect-webdriverio",
        "webdriverio"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/globals"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "@wdio/local-runner": {
      "name": "@wdio/local-runner",
      "severity": "low",
      "isDirect": true,
      "via": [
        "@wdio/runner"
      ],
      "effects": [],
      "range": ">=7.20.0",
      "nodes": [
        "node_modules/@wdio/local-runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "@wdio/mocha-framework": {
      "name": "@wdio/mocha-framework",
      "severity": "low",
      "isDirect": true,
      "via": [
        "mocha"
      ],
      "effects": [],
      "range": ">=7.19.7",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.19.5",
        "isSemVerMajor": true
      }
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "expect-webdriverio",
        "webdriver",
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": ">=7.20.0",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "archiver": {
      "name": "archiver",
      "severity": "low",
      "isDirect": false,
      "via": [
        "archiver-utils",
        "readdir-glob",
        "zip-stream"
      ],
      "effects": [
        "webdriverio"
      ],
      "range": ">=5.3.2",
      "nodes": [
        "node_modules/archiver"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "archiver-utils": {
      "name": "archiver-utils",
      "severity": "low",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "archiver",
        "zip-stream"
      ],
      "range": ">=4.0.0",
      "nodes": [
        "node_modules/archiver-utils"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "axios": {
      "name": "axios",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1097679,
          "name": "axios",
          "dependency": "axios",
          "title": "Axios Cross-Site Request Forgery Vulnerability",
          "url": "https://github.com/advisories/GHSA-wf5p-g6vw-rhxx",
          "severity": "moderate",
          "cwe": [
            "CWE-352"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N"
          },
          "range": ">=0.8.1 <0.28.0"
        },
        {
          "source": 1103617,
          "name": "axios",
          "dependency": "axios",
          "title": "axios Requests Vulnerable To Possible SSRF and Credential Leakage via Absolute URL",
          "url": "https://github.com/advisories/GHSA-jr5f-v2jv-69x6",
          "severity": "high",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<0.30.0"
        }
      ],
      "effects": [
        "openapi-validator"
      ],
      "range": "<=0.29.0",
      "nodes": [
        "node_modules/axios"
      ],
      "fixAvailable": {
        "name": "chai-openapi-response-validator",
        "version": "0.14.1",
        "isSemVerMajor": true
      }
    },
    "brace-expansion": {
      "name": "brace-expansion",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1105422,
          "name": "brace-expansion",
          "dependency": "brace-expansion",
          "title": "brace-expansion Regular Expression Denial of Service vulnerability",
          "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
          "severity": "low",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 3.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=2.0.1 <=4.0.0"
        }
      ],
      "effects": [
        "minimatch"
      ],
      "range": ">=2.0.1",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion",
        "node_modules/@wdio/config/node_modules/brace-expansion",
        "node_modules/archiver-utils/node_modules/brace-expansion",
        "node_modules/editorconfig/node_modules/brace-expansion",
        "node_modules/eslint-plugin-n/node_modules/brace-expansion",
        "node_modules/filelist/node_modules/brace-expansion",
        "node_modules/js-beautify/node_modules/brace-expansion",
        "node_modules/mocha/node_modules/brace-expansion",
        "node_modules/readdir-glob/node_modules/brace-expansion"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.19.5",
        "isSemVerMajor": true
      }
    },
    "chai-openapi-response-validator": {
      "name": "chai-openapi-response-validator",
      "severity": "high",
      "isDirect": true,
      "via": [
        "openapi-validator"
      ],
      "effects": [],
      "range": "0.11.2 || >=0.14.2-alpha.0",
      "nodes": [
        "node_modules/chai-openapi-response-validator"
      ],
      "fixAvailable": {
        "name": "chai-openapi-response-validator",
        "version": "0.14.1",
        "isSemVerMajor": true
      }
    },
    "editorconfig": {
      "name": "editorconfig",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "js-beautify"
      ],
      "range": ">=1.0.0",
      "nodes": [
        "node_modules/editorconfig"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.4.0",
        "isSemVerMajor": true
      }
    },
    "eslint-config-wikimedia": {
      "name": "eslint-config-wikimedia",
      "severity": "low",
      "isDirect": true,
      "via": [
        "eslint-plugin-n"
      ],
      "effects": [],
      "range": ">=0.28.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-n": {
      "name": "eslint-plugin-n",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": ">=17.0.0-0",
      "nodes": [
        "node_modules/eslint-plugin-n"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "expect-webdriverio": {
      "name": "expect-webdriverio",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@wdio/globals",
        "webdriverio"
      ],
      "effects": [
        "@wdio/globals",
        "@wdio/runner"
      ],
      "range": "4.0.0-alpha.0 - 4.0.0-alpha.6 || >=4.0.1",
      "nodes": [
        "node_modules/expect-webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "filelist": {
      "name": "filelist",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [],
      "range": ">=1.0.3",
      "nodes": [
        "node_modules/filelist"
      ],
      "fixAvailable": true
    },
    "glob": {
      "name": "glob",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@wdio/config",
        "archiver-utils",
        "js-beautify",
        "mocha"
      ],
      "range": ">=8.0.1",
      "nodes": [
        "node_modules/@wdio/config/node_modules/glob",
        "node_modules/archiver-utils/node_modules/glob",
        "node_modules/js-beautify/node_modules/glob",
        "node_modules/mocha/node_modules/glob"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.19.5",
        "isSemVerMajor": true
      }
    },
    "js-beautify": {
      "name": "js-beautify",
      "severity": "low",
      "isDirect": false,
      "via": [
        "editorconfig",
        "glob"
      ],
      "effects": [
        "@vue/test-utils"
      ],
      "range": ">=1.14.5",
      "nodes": [
        "node_modules/js-beautify"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.4.0",
        "isSemVerMajor": true
      }
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "low",
      "isDirect": false,
      "via": [
        "brace-expansion"
      ],
      "effects": [
        "@typescript-eslint/typescript-estree",
        "editorconfig",
        "eslint-plugin-n",
        "filelist",
        "glob",
        "mocha",
        "readdir-glob"
      ],
      "range": ">=5.0.0",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch",
        "node_modules/@wdio/config/node_modules/minimatch",
        "node_modules/archiver-utils/node_modules/minimatch",
        "node_modules/editorconfig/node_modules/minimatch",
        "node_modules/eslint-plugin-n/node_modules/minimatch",
        "node_modules/filelist/node_modules/minimatch",
        "node_modules/js-beautify/node_modules/minimatch",
        "node_modules/mocha/node_modules/minimatch",
        "node_modules/readdir-glob/node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.19.5",
        "isSemVerMajor": true
      }
    },
    "mocha": {
      "name": "mocha",
      "severity": "low",
      "isDirect": false,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "@wdio/mocha-framework"
      ],
      "range": ">=10.0.0",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.19.5",
        "isSemVerMajor": true
      }
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "0.1.5",
        "isSemVerMajor": true
      }
    },
    "openapi-validator": {
      "name": "openapi-validator",
      "severity": "high",
      "isDirect": false,
      "via": [
        "axios"
      ],
      "effects": [
        "chai-openapi-response-validator"
      ],
      "range": ">=0.14.2-alpha.0",
      "nodes": [
        "node_modules/openapi-validator"
      ],
      "fixAvailable": {
        "name": "chai-openapi-response-validator",
        "version": "0.14.1",
        "isSemVerMajor": true
      }
    },
    "readdir-glob": {
      "name": "readdir-glob",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "archiver"
      ],
      "range": ">=1.1.2",
      "nodes": [
        "node_modules/readdir-glob"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "request": {
      "name": "request",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "tough-cookie"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "0.1.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": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/tough-cookie"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "0.1.5",
        "isSemVerMajor": true
      }
    },
    "webdriver": {
      "name": "webdriver",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@wdio/config"
      ],
      "effects": [],
      "range": ">=7.20.0",
      "nodes": [
        "node_modules/webdriver"
      ],
      "fixAvailable": true
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "archiver",
        "webdriver"
      ],
      "effects": [
        "@wdio/globals",
        "expect-webdriverio"
      ],
      "range": ">=7.20.0",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "7.19.7",
        "isSemVerMajor": true
      }
    },
    "zip-stream": {
      "name": "zip-stream",
      "severity": "low",
      "isDirect": false,
      "via": [
        "archiver-utils"
      ],
      "effects": [],
      "range": "5.0.1 - 6.0.1",
      "nodes": [
        "node_modules/zip-stream"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 25,
      "moderate": 3,
      "high": 3,
      "critical": 0,
      "total": 31
    },
    "dependencies": {
      "prod": 1,
      "dev": 1465,
      "optional": 37,
      "peer": 1,
      "peerOptional": 0,
      "total": 1465
    }
  }
}

--- end ---
Attempting to npm audit fix
$ /usr/bin/npm audit fix --dry-run --only=dev --json
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/cli@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/config@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/dot-reporter@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/globals@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/junit-reporter@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/local-runner@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/logger@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/mocha-framework@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/repl@9.4.4',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/reporter@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/runner@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/spec-reporter@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/types@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/utils@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.0.0',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.0.0',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'webdriver@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'webdriverio@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
{
  "added": 1476,
  "removed": 0,
  "changed": 0,
  "audited": 1477,
  "funding": 217,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@typescript-eslint/typescript-estree": {
        "name": "@typescript-eslint/typescript-estree",
        "severity": "low",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "@typescript-eslint/utils"
        ],
        "range": ">=6.16.0",
        "nodes": [
          "node_modules/@typescript-eslint/typescript-estree"
        ],
        "fixAvailable": true
      },
      "@typescript-eslint/utils": {
        "name": "@typescript-eslint/utils",
        "severity": "low",
        "isDirect": false,
        "via": [
          "@typescript-eslint/typescript-estree"
        ],
        "effects": [],
        "range": ">=6.16.0",
        "nodes": [
          "node_modules/@typescript-eslint/utils"
        ],
        "fixAvailable": true
      },
      "@vue/test-utils": {
        "name": "@vue/test-utils",
        "severity": "low",
        "isDirect": true,
        "via": [
          "js-beautify"
        ],
        "effects": [],
        "range": ">=2.2.8",
        "nodes": [
          "node_modules/@vue/test-utils"
        ],
        "fixAvailable": {
          "name": "@vue/test-utils",
          "version": "2.2.7",
          "isSemVerMajor": true
        }
      },
      "@wdio/cli": {
        "name": "@wdio/cli",
        "severity": "low",
        "isDirect": true,
        "via": [
          "@wdio/config",
          "@wdio/globals",
          "webdriverio"
        ],
        "effects": [],
        "range": ">=7.20.0",
        "nodes": [
          "node_modules/@wdio/cli"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "7.19.7",
          "isSemVerMajor": true
        }
      },
      "@wdio/config": {
        "name": "@wdio/config",
        "severity": "low",
        "isDirect": false,
        "via": [
          "glob"
        ],
        "effects": [
          "@wdio/cli",
          "@wdio/runner",
          "webdriver",
          "webdriverio"
        ],
        "range": ">=7.20.0",
        "nodes": [
          "node_modules/@wdio/config"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "7.19.7",
          "isSemVerMajor": true
        }
      },
      "@wdio/globals": {
        "name": "@wdio/globals",
        "severity": "low",
        "isDirect": false,
        "via": [
          "expect-webdriverio",
          "webdriverio"
        ],
        "effects": [
          "@wdio/cli",
          "@wdio/runner"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@wdio/globals"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "7.19.7",
          "isSemVerMajor": true
        }
      },
      "@wdio/local-runner": {
        "name": "@wdio/local-runner",
        "severity": "low",
        "isDirect": true,
        "via": [
          "@wdio/runner"
        ],
        "effects": [],
        "range": ">=7.20.0",
        "nodes": [
          "node_modules/@wdio/local-runner"
        ],
        "fixAvailable": {
          "name": "@wdio/local-runner",
          "version": "7.19.7",
          "isSemVerMajor": true
        }
      },
      "@wdio/mocha-framework": {
        "name": "@wdio/mocha-framework",
        "severity": "low",
        "isDirect": true,
        "via": [
          "mocha"
        ],
        "effects": [],
        "range": ">=7.19.7",
        "nodes": [
          "node_modules/@wdio/mocha-framework"
        ],
        "fixAvailable": {
          "name": "@wdio/mocha-framework",
          "version": "7.19.5",
          "isSemVerMajor": true
        }
      },
      "@wdio/runner": {
        "name": "@wdio/runner",
        "severity": "low",
        "isDirect": false,
        "via": [
          "@wdio/config",
          "@wdio/globals",
          "expect-webdriverio",
          "webdriver",
          "webdriverio"
        ],
        "effects": [
          "@wdio/local-runner"
        ],
        "range": ">=7.20.0",
        "nodes": [
          "node_modules/@wdio/runner"
        ],
        "fixAvailable": {
          "name": "@wdio/local-runner",
          "version": "7.19.7",
          "isSemVerMajor": true
        }
      },
      "archiver": {
        "name": "archiver",
        "severity": "low",
        "isDirect": false,
        "via": [
          "archiver-utils",
          "readdir-glob",
          "zip-stream"
        ],
        "effects": [
          "webdriverio"
        ],
        "range": ">=5.3.2",
        "nodes": [
          "node_modules/archiver"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "7.19.7",
          "isSemVerMajor": true
        }
      },
      "archiver-utils": {
        "name": "archiver-utils",
        "severity": "low",
        "isDirect": false,
        "via": [
          "glob"
        ],
        "effects": [
          "archiver",
          "zip-stream"
        ],
        "range": ">=4.0.0",
        "nodes": [
          "node_modules/archiver-utils"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "7.19.7",
          "isSemVerMajor": true
        }
      },
      "axios": {
        "name": "axios",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1097679,
            "name": "axios",
            "dependency": "axios",
            "title": "Axios Cross-Site Request Forgery Vulnerability",
            "url": "https://github.com/advisories/GHSA-wf5p-g6vw-rhxx",
            "severity": "moderate",
            "cwe": [
              "CWE-352"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N"
            },
            "range": ">=0.8.1 <0.28.0"
          },
          {
            "source": 1103617,
            "name": "axios",
            "dependency": "axios",
            "title": "axios Requests Vulnerable To Possible SSRF and Credential Leakage via Absolute URL",
            "url": "https://github.com/advisories/GHSA-jr5f-v2jv-69x6",
            "severity": "high",
            "cwe": [
              "CWE-918"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<0.30.0"
          }
        ],
        "effects": [
          "openapi-validator"
        ],
        "range": "<=0.29.0",
        "nodes": [
          "node_modules/axios"
        ],
        "fixAvailable": {
          "name": "chai-openapi-response-validator",
          "version": "0.14.1",
          "isSemVerMajor": true
        }
      },
      "brace-expansion": {
        "name": "brace-expansion",
        "severity": "low",
        "isDirect": false,
        "via": [
          {
            "source": 1105422,
            "name": "brace-expansion",
            "dependency": "brace-expansion",
            "title": "brace-expansion Regular Expression Denial of Service vulnerability",
            "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
            "severity": "low",
            "cwe": [
              "CWE-400"
            ],
            "cvss": {
              "score": 3.1,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": ">=2.0.1 <=4.0.0"
          }
        ],
        "effects": [
          "minimatch"
        ],
        "range": ">=2.0.1",
        "nodes": [
          "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion",
          "node_modules/@wdio/config/node_modules/brace-expansion",
          "node_modules/archiver-utils/node_modules/brace-expansion",
          "node_modules/editorconfig/node_modules/brace-expansion",
          "node_modules/eslint-plugin-n/node_modules/brace-expansion",
          "node_modules/filelist/node_modules/brace-expansion",
          "node_modules/js-beautify/node_modules/brace-expansion",
          "node_modules/mocha/node_modules/brace-expansion",
          "node_modules/readdir-glob/node_modules/brace-expansion"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.27.0",
          "isSemVerMajor": true
        }
      },
      "chai-openapi-response-validator": {
        "name": "chai-openapi-response-validator",
        "severity": "high",
        "isDirect": true,
        "via": [
          "openapi-validator"
        ],
        "effects": [],
        "range": "0.11.2 || >=0.14.2-alpha.0",
        "nodes": [
          "node_modules/chai-openapi-response-validator"
        ],
        "fixAvailable": {
          "name": "chai-openapi-response-validator",
          "version": "0.14.1",
          "isSemVerMajor": true
        }
      },
      "editorconfig": {
        "name": "editorconfig",
        "severity": "low",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "js-beautify"
        ],
        "range": ">=1.0.0",
        "nodes": [
          "node_modules/editorconfig"
        ],
        "fixAvailable": {
          "name": "@vue/test-utils",
          "version": "2.2.7",
          "isSemVerMajor": true
        }
      },
      "eslint-config-wikimedia": {
        "name": "eslint-config-wikimedia",
        "severity": "low",
        "isDirect": true,
        "via": [
          "eslint-plugin-n"
        ],
        "effects": [],
        "range": ">=0.28.0",
        "nodes": [
          "node_modules/eslint-config-wikimedia"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.27.0",
          "isSemVerMajor": true
        }
      },
      "eslint-plugin-n": {
        "name": "eslint-plugin-n",
        "severity": "low",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "eslint-config-wikimedia"
        ],
        "range": ">=17.0.0-0",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.27.0",
          "isSemVerMajor": true
        }
      },
      "expect-webdriverio": {
        "name": "expect-webdriverio",
        "severity": "low",
        "isDirect": false,
        "via": [
          "@wdio/globals",
          "webdriverio"
        ],
        "effects": [
          "@wdio/globals",
          "@wdio/runner"
        ],
        "range": "4.0.0-alpha.0 - 4.0.0-alpha.6 || >=4.0.1",
        "nodes": [
          "",
          "node_modules/expect-webdriverio"
        ],
        "fixAvailable": {
          "name": "@wdio/local-runner",
          "version": "7.19.7",
          "isSemVerMajor": true
        }
      },
      "filelist": {
        "name": "filelist",
        "severity": "low",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [],
        "range": ">=1.0.3",
        "nodes": [
          "node_modules/filelist"
        ],
        "fixAvailable": true
      },
      "glob": {
        "name": "glob",
        "severity": "low",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "@wdio/config",
          "archiver-utils",
          "js-beautify",
          "mocha"
        ],
        "range": ">=8.0.1",
        "nodes": [
          "node_modules/@wdio/config/node_modules/glob",
          "node_modules/archiver-utils/node_modules/glob",
          "node_modules/js-beautify/node_modules/glob",
          "node_modules/mocha/node_modules/glob"
        ],
        "fixAvailable": {
          "name": "@wdio/mocha-framework",
          "version": "7.19.5",
          "isSemVerMajor": true
        }
      },
      "js-beautify": {
        "name": "js-beautify",
        "severity": "low",
        "isDirect": false,
        "via": [
          "editorconfig",
          "glob"
        ],
        "effects": [
          "@vue/test-utils"
        ],
        "range": ">=1.14.5",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "@vue/test-utils",
          "version": "2.2.7",
          "isSemVerMajor": true
        }
      },
      "minimatch": {
        "name": "minimatch",
        "severity": "low",
        "isDirect": false,
        "via": [
          "brace-expansion"
        ],
        "effects": [
          "@typescript-eslint/typescript-estree",
          "editorconfig",
          "eslint-plugin-n",
          "filelist",
          "glob",
          "mocha",
          "readdir-glob"
        ],
        "range": ">=5.0.0",
        "nodes": [
          "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch",
          "node_modules/@wdio/config/node_modules/minimatch",
          "node_modules/archiver-utils/node_modules/minimatch",
          "node_modules/editorconfig/node_modules/minimatch",
          "node_modules/eslint-plugin-n/node_modules/minimatch",
          "node_modules/filelist/node_modules/minimatch",
          "node_modules/js-beautify/node_modules/minimatch",
          "node_modules/mocha/node_modules/minimatch",
          "node_modules/readdir-glob/node_modules/minimatch"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.27.0",
          "isSemVerMajor": true
        }
      },
      "mocha": {
        "name": "mocha",
        "severity": "low",
        "isDirect": false,
        "via": [
          "glob",
          "minimatch"
        ],
        "effects": [
          "@wdio/mocha-framework"
        ],
        "range": ">=10.0.0",
        "nodes": [
          "node_modules/mocha"
        ],
        "fixAvailable": {
          "name": "@wdio/mocha-framework",
          "version": "7.19.5",
          "isSemVerMajor": true
        }
      },
      "mwbot": {
        "name": "mwbot",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "request"
        ],
        "effects": [],
        "range": ">=0.1.6",
        "nodes": [
          "node_modules/mwbot"
        ],
        "fixAvailable": {
          "name": "mwbot",
          "version": "0.1.5",
          "isSemVerMajor": true
        }
      },
      "openapi-validator": {
        "name": "openapi-validator",
        "severity": "high",
        "isDirect": false,
        "via": [
          "axios"
        ],
        "effects": [
          "chai-openapi-response-validator"
        ],
        "range": ">=0.14.2-alpha.0",
        "nodes": [
          "node_modules/openapi-validator"
        ],
        "fixAvailable": {
          "name": "chai-openapi-response-validator",
          "version": "0.14.1",
          "isSemVerMajor": true
        }
      },
      "readdir-glob": {
        "name": "readdir-glob",
        "severity": "low",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "archiver"
        ],
        "range": ">=1.1.2",
        "nodes": [
          "node_modules/readdir-glob"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "7.19.7",
          "isSemVerMajor": true
        }
      },
      "request": {
        "name": "request",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1096727,
            "name": "request",
            "dependency": "request",
            "title": "Server-Side Request Forgery in Request",
            "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
            "severity": "moderate",
            "cwe": [
              "CWE-918"
            ],
            "cvss": {
              "score": 6.1,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
            },
            "range": "<=2.88.2"
          },
          "tough-cookie"
        ],
        "effects": [
          "mwbot"
        ],
        "range": "*",
        "nodes": [
          "node_modules/request"
        ],
        "fixAvailable": {
          "name": "mwbot",
          "version": "0.1.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": [
          "request"
        ],
        "range": "<4.1.3",
        "nodes": [
          "node_modules/tough-cookie"
        ],
        "fixAvailable": {
          "name": "mwbot",
          "version": "0.1.5",
          "isSemVerMajor": true
        }
      },
      "webdriver": {
        "name": "webdriver",
        "severity": "low",
        "isDirect": false,
        "via": [
          "@wdio/config"
        ],
        "effects": [],
        "range": ">=7.20.0",
        "nodes": [
          "node_modules/webdriver"
        ],
        "fixAvailable": true
      },
      "webdriverio": {
        "name": "webdriverio",
        "severity": "low",
        "isDirect": false,
        "via": [
          "@wdio/config",
          "archiver",
          "webdriver"
        ],
        "effects": [
          "@wdio/globals",
          "expect-webdriverio"
        ],
        "range": ">=7.20.0",
        "nodes": [
          "node_modules/webdriverio"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "7.19.7",
          "isSemVerMajor": true
        }
      },
      "zip-stream": {
        "name": "zip-stream",
        "severity": "low",
        "isDirect": false,
        "via": [
          "archiver-utils"
        ],
        "effects": [],
        "range": "5.0.1 - 6.0.1",
        "nodes": [
          "node_modules/zip-stream"
        ],
        "fixAvailable": true
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 25,
        "moderate": 3,
        "high": 3,
        "critical": 0,
        "total": 31
      },
      "dependencies": {
        "prod": 1,
        "dev": 1476,
        "optional": 37,
        "peer": 1,
        "peerOptional": 0,
        "total": 1476
      }
    }
  }
}

--- end ---
{"added": 1476, "removed": 0, "changed": 0, "audited": 1477, "funding": 217, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@typescript-eslint/typescript-estree": {"name": "@typescript-eslint/typescript-estree", "severity": "low", "isDirect": false, "via": ["minimatch"], "effects": ["@typescript-eslint/utils"], "range": ">=6.16.0", "nodes": ["node_modules/@typescript-eslint/typescript-estree"], "fixAvailable": true}, "@typescript-eslint/utils": {"name": "@typescript-eslint/utils", "severity": "low", "isDirect": false, "via": ["@typescript-eslint/typescript-estree"], "effects": [], "range": ">=6.16.0", "nodes": ["node_modules/@typescript-eslint/utils"], "fixAvailable": true}, "@vue/test-utils": {"name": "@vue/test-utils", "severity": "low", "isDirect": true, "via": ["js-beautify"], "effects": [], "range": ">=2.2.8", "nodes": ["node_modules/@vue/test-utils"], "fixAvailable": {"name": "@vue/test-utils", "version": "2.2.7", "isSemVerMajor": true}}, "@wdio/cli": {"name": "@wdio/cli", "severity": "low", "isDirect": true, "via": ["@wdio/config", "@wdio/globals", "webdriverio"], "effects": [], "range": ">=7.20.0", "nodes": ["node_modules/@wdio/cli"], "fixAvailable": {"name": "@wdio/cli", "version": "7.19.7", "isSemVerMajor": true}}, "@wdio/config": {"name": "@wdio/config", "severity": "low", "isDirect": false, "via": ["glob"], "effects": ["@wdio/cli", "@wdio/runner", "webdriver", "webdriverio"], "range": ">=7.20.0", "nodes": ["node_modules/@wdio/config"], "fixAvailable": {"name": "@wdio/cli", "version": "7.19.7", "isSemVerMajor": true}}, "@wdio/globals": {"name": "@wdio/globals", "severity": "low", "isDirect": false, "via": ["expect-webdriverio", "webdriverio"], "effects": ["@wdio/cli", "@wdio/runner"], "range": "*", "nodes": ["node_modules/@wdio/globals"], "fixAvailable": {"name": "@wdio/cli", "version": "7.19.7", "isSemVerMajor": true}}, "@wdio/local-runner": {"name": "@wdio/local-runner", "severity": "low", "isDirect": true, "via": ["@wdio/runner"], "effects": [], "range": ">=7.20.0", "nodes": ["node_modules/@wdio/local-runner"], "fixAvailable": {"name": "@wdio/local-runner", "version": "7.19.7", "isSemVerMajor": true}}, "@wdio/mocha-framework": {"name": "@wdio/mocha-framework", "severity": "low", "isDirect": true, "via": ["mocha"], "effects": [], "range": ">=7.19.7", "nodes": ["node_modules/@wdio/mocha-framework"], "fixAvailable": {"name": "@wdio/mocha-framework", "version": "7.19.5", "isSemVerMajor": true}}, "@wdio/runner": {"name": "@wdio/runner", "severity": "low", "isDirect": false, "via": ["@wdio/config", "@wdio/globals", "expect-webdriverio", "webdriver", "webdriverio"], "effects": ["@wdio/local-runner"], "range": ">=7.20.0", "nodes": ["node_modules/@wdio/runner"], "fixAvailable": {"name": "@wdio/local-runner", "version": "7.19.7", "isSemVerMajor": true}}, "archiver": {"name": "archiver", "severity": "low", "isDirect": false, "via": ["archiver-utils", "readdir-glob", "zip-stream"], "effects": ["webdriverio"], "range": ">=5.3.2", "nodes": ["node_modules/archiver"], "fixAvailable": {"name": "@wdio/cli", "version": "7.19.7", "isSemVerMajor": true}}, "archiver-utils": {"name": "archiver-utils", "severity": "low", "isDirect": false, "via": ["glob"], "effects": ["archiver", "zip-stream"], "range": ">=4.0.0", "nodes": ["node_modules/archiver-utils"], "fixAvailable": {"name": "@wdio/cli", "version": "7.19.7", "isSemVerMajor": true}}, "axios": {"name": "axios", "severity": "high", "isDirect": false, "via": [{"source": 1097679, "name": "axios", "dependency": "axios", "title": "Axios Cross-Site Request Forgery Vulnerability", "url": "https://github.com/advisories/GHSA-wf5p-g6vw-rhxx", "severity": "moderate", "cwe": ["CWE-352"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N"}, "range": ">=0.8.1 <0.28.0"}, {"source": 1103617, "name": "axios", "dependency": "axios", "title": "axios Requests Vulnerable To Possible SSRF and Credential Leakage via Absolute URL", "url": "https://github.com/advisories/GHSA-jr5f-v2jv-69x6", "severity": "high", "cwe": ["CWE-918"], "cvss": {"score": 0, "vectorString": null}, "range": "<0.30.0"}], "effects": ["openapi-validator"], "range": "<=0.29.0", "nodes": ["node_modules/axios"], "fixAvailable": {"name": "chai-openapi-response-validator", "version": "0.14.1", "isSemVerMajor": true}}, "brace-expansion": {"name": "brace-expansion", "severity": "low", "isDirect": false, "via": [{"source": 1105422, "name": "brace-expansion", "dependency": "brace-expansion", "title": "brace-expansion Regular Expression Denial of Service vulnerability", "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw", "severity": "low", "cwe": ["CWE-400"], "cvss": {"score": 3.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=2.0.1 <=4.0.0"}], "effects": ["minimatch"], "range": ">=2.0.1", "nodes": ["node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion", "node_modules/@wdio/config/node_modules/brace-expansion", "node_modules/archiver-utils/node_modules/brace-expansion", "node_modules/editorconfig/node_modules/brace-expansion", "node_modules/eslint-plugin-n/node_modules/brace-expansion", "node_modules/filelist/node_modules/brace-expansion", "node_modules/js-beautify/node_modules/brace-expansion", "node_modules/mocha/node_modules/brace-expansion", "node_modules/readdir-glob/node_modules/brace-expansion"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.27.0", "isSemVerMajor": true}}, "chai-openapi-response-validator": {"name": "chai-openapi-response-validator", "severity": "high", "isDirect": true, "via": ["openapi-validator"], "effects": [], "range": "0.11.2 || >=0.14.2-alpha.0", "nodes": ["node_modules/chai-openapi-response-validator"], "fixAvailable": {"name": "chai-openapi-response-validator", "version": "0.14.1", "isSemVerMajor": true}}, "editorconfig": {"name": "editorconfig", "severity": "low", "isDirect": false, "via": ["minimatch"], "effects": ["js-beautify"], "range": ">=1.0.0", "nodes": ["node_modules/editorconfig"], "fixAvailable": {"name": "@vue/test-utils", "version": "2.2.7", "isSemVerMajor": true}}, "eslint-config-wikimedia": {"name": "eslint-config-wikimedia", "severity": "low", "isDirect": true, "via": ["eslint-plugin-n"], "effects": [], "range": ">=0.28.0", "nodes": ["node_modules/eslint-config-wikimedia"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.27.0", "isSemVerMajor": true}}, "eslint-plugin-n": {"name": "eslint-plugin-n", "severity": "low", "isDirect": false, "via": ["minimatch"], "effects": ["eslint-config-wikimedia"], "range": ">=17.0.0-0", "nodes": [""], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.27.0", "isSemVerMajor": true}}, "expect-webdriverio": {"name": "expect-webdriverio", "severity": "low", "isDirect": false, "via": ["@wdio/globals", "webdriverio"], "effects": ["@wdio/globals", "@wdio/runner"], "range": "4.0.0-alpha.0 - 4.0.0-alpha.6 || >=4.0.1", "nodes": ["", "node_modules/expect-webdriverio"], "fixAvailable": {"name": "@wdio/local-runner", "version": "7.19.7", "isSemVerMajor": true}}, "filelist": {"name": "filelist", "severity": "low", "isDirect": false, "via": ["minimatch"], "effects": [], "range": ">=1.0.3", "nodes": ["node_modules/filelist"], "fixAvailable": true}, "glob": {"name": "glob", "severity": "low", "isDirect": false, "via": ["minimatch"], "effects": ["@wdio/config", "archiver-utils", "js-beautify", "mocha"], "range": ">=8.0.1", "nodes": ["node_modules/@wdio/config/node_modules/glob", "node_modules/archiver-utils/node_modules/glob", "node_modules/js-beautify/node_modules/glob", "node_modules/mocha/node_modules/glob"], "fixAvailable": {"name": "@wdio/mocha-framework", "version": "7.19.5", "isSemVerMajor": true}}, "js-beautify": {"name": "js-beautify", "severity": "low", "isDirect": false, "via": ["editorconfig", "glob"], "effects": ["@vue/test-utils"], "range": ">=1.14.5", "nodes": [""], "fixAvailable": {"name": "@vue/test-utils", "version": "2.2.7", "isSemVerMajor": true}}, "minimatch": {"name": "minimatch", "severity": "low", "isDirect": false, "via": ["brace-expansion"], "effects": ["@typescript-eslint/typescript-estree", "editorconfig", "eslint-plugin-n", "filelist", "glob", "mocha", "readdir-glob"], "range": ">=5.0.0", "nodes": ["node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch", "node_modules/@wdio/config/node_modules/minimatch", "node_modules/archiver-utils/node_modules/minimatch", "node_modules/editorconfig/node_modules/minimatch", "node_modules/eslint-plugin-n/node_modules/minimatch", "node_modules/filelist/node_modules/minimatch", "node_modules/js-beautify/node_modules/minimatch", "node_modules/mocha/node_modules/minimatch", "node_modules/readdir-glob/node_modules/minimatch"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.27.0", "isSemVerMajor": true}}, "mocha": {"name": "mocha", "severity": "low", "isDirect": false, "via": ["glob", "minimatch"], "effects": ["@wdio/mocha-framework"], "range": ">=10.0.0", "nodes": ["node_modules/mocha"], "fixAvailable": {"name": "@wdio/mocha-framework", "version": "7.19.5", "isSemVerMajor": true}}, "mwbot": {"name": "mwbot", "severity": "moderate", "isDirect": false, "via": ["request"], "effects": [], "range": ">=0.1.6", "nodes": ["node_modules/mwbot"], "fixAvailable": {"name": "mwbot", "version": "0.1.5", "isSemVerMajor": true}}, "openapi-validator": {"name": "openapi-validator", "severity": "high", "isDirect": false, "via": ["axios"], "effects": ["chai-openapi-response-validator"], "range": ">=0.14.2-alpha.0", "nodes": ["node_modules/openapi-validator"], "fixAvailable": {"name": "chai-openapi-response-validator", "version": "0.14.1", "isSemVerMajor": true}}, "readdir-glob": {"name": "readdir-glob", "severity": "low", "isDirect": false, "via": ["minimatch"], "effects": ["archiver"], "range": ">=1.1.2", "nodes": ["node_modules/readdir-glob"], "fixAvailable": {"name": "@wdio/cli", "version": "7.19.7", "isSemVerMajor": true}}, "request": {"name": "request", "severity": "moderate", "isDirect": false, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "tough-cookie"], "effects": ["mwbot"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": {"name": "mwbot", "version": "0.1.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": ["request"], "range": "<4.1.3", "nodes": ["node_modules/tough-cookie"], "fixAvailable": {"name": "mwbot", "version": "0.1.5", "isSemVerMajor": true}}, "webdriver": {"name": "webdriver", "severity": "low", "isDirect": false, "via": ["@wdio/config"], "effects": [], "range": ">=7.20.0", "nodes": ["node_modules/webdriver"], "fixAvailable": true}, "webdriverio": {"name": "webdriverio", "severity": "low", "isDirect": false, "via": ["@wdio/config", "archiver", "webdriver"], "effects": ["@wdio/globals", "expect-webdriverio"], "range": ">=7.20.0", "nodes": ["node_modules/webdriverio"], "fixAvailable": {"name": "@wdio/cli", "version": "7.19.7", "isSemVerMajor": true}}, "zip-stream": {"name": "zip-stream", "severity": "low", "isDirect": false, "via": ["archiver-utils"], "effects": [], "range": "5.0.1 - 6.0.1", "nodes": ["node_modules/zip-stream"], "fixAvailable": true}}, "metadata": {"vulnerabilities": {"info": 0, "low": 25, "moderate": 3, "high": 3, "critical": 0, "total": 31}, "dependencies": {"prod": 1, "dev": 1476, "optional": 37, "peer": 1, "peerOptional": 0, "total": 1476}}}}
$ /usr/bin/npm audit fix --only=dev
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/cli@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/config@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/dot-reporter@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/globals@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/junit-reporter@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/local-runner@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/logger@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/mocha-framework@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/repl@9.4.4',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/reporter@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/runner@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/spec-reporter@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/types@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/utils@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.0.0',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.0.0',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'webdriver@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'webdriverio@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated lodash.isequal@4.5.0: This package is deprecated. Use require('node:util').isDeepStrictEqual instead.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
--- stdout ---

added 1451 packages, and audited 1452 packages in 24s

217 packages are looking for funding
  run `npm fund` for details

# npm audit report

axios  <=0.29.0
Severity: high
Axios Cross-Site Request Forgery Vulnerability - https://github.com/advisories/GHSA-wf5p-g6vw-rhxx
axios Requests Vulnerable To Possible SSRF and Credential Leakage via Absolute URL - https://github.com/advisories/GHSA-jr5f-v2jv-69x6
fix available via `npm audit fix --force`
Will install chai-openapi-response-validator@0.14.1, which is a breaking change
node_modules/axios
  openapi-validator  >=0.14.2-alpha.0
  Depends on vulnerable versions of axios
  node_modules/openapi-validator
    chai-openapi-response-validator  0.11.2 || >=0.14.2-alpha.0
    Depends on vulnerable versions of openapi-validator
    node_modules/chai-openapi-response-validator

brace-expansion  >=2.0.1
brace-expansion Regular Expression Denial of Service vulnerability - https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
fix available via `npm audit fix --force`
Will install @wdio/mocha-framework@7.19.5, which is a breaking change
node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion
node_modules/@wdio/config/node_modules/brace-expansion
node_modules/archiver-utils/node_modules/brace-expansion
node_modules/editorconfig/node_modules/brace-expansion
node_modules/eslint-plugin-n/node_modules/brace-expansion
node_modules/filelist/node_modules/brace-expansion
node_modules/js-beautify/node_modules/brace-expansion
node_modules/mocha/node_modules/brace-expansion
node_modules/readdir-glob/node_modules/brace-expansion
  minimatch  >=5.0.0
  Depends on vulnerable versions of brace-expansion
  node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch
  node_modules/@wdio/config/node_modules/minimatch
  node_modules/archiver-utils/node_modules/minimatch
  node_modules/editorconfig/node_modules/minimatch
  node_modules/eslint-plugin-n/node_modules/minimatch
  node_modules/filelist/node_modules/minimatch
  node_modules/js-beautify/node_modules/minimatch
  node_modules/mocha/node_modules/minimatch
  node_modules/readdir-glob/node_modules/minimatch
    @typescript-eslint/typescript-estree  >=6.16.0
    Depends on vulnerable versions of minimatch
    node_modules/@typescript-eslint/typescript-estree
    node_modules/eslint-plugin-n/node_modules/@typescript-eslint/typescript-estree
      @typescript-eslint/utils  >=6.16.0
      Depends on vulnerable versions of @typescript-eslint/typescript-estree
      node_modules/@typescript-eslint/utils
      node_modules/eslint-plugin-n/node_modules/@typescript-eslint/utils
        eslint-plugin-n  >=17.0.0-0
        Depends on vulnerable versions of @typescript-eslint/utils
        Depends on vulnerable versions of minimatch
        node_modules/eslint-plugin-n
          eslint-config-wikimedia  >=0.28.0
          Depends on vulnerable versions of eslint-plugin-n
          node_modules/eslint-config-wikimedia
    editorconfig  >=1.0.0
    Depends on vulnerable versions of minimatch
    node_modules/editorconfig
      js-beautify  >=1.14.5
      Depends on vulnerable versions of editorconfig
      Depends on vulnerable versions of glob
      node_modules/js-beautify
        @vue/test-utils  >=2.4.1
        Depends on vulnerable versions of js-beautify
        node_modules/@vue/test-utils
    filelist  >=1.0.3
    Depends on vulnerable versions of minimatch
    node_modules/filelist
    glob  >=8.0.1
    Depends on vulnerable versions of minimatch
    node_modules/@wdio/config/node_modules/glob
    node_modules/archiver-utils/node_modules/glob
    node_modules/js-beautify/node_modules/glob
    node_modules/mocha/node_modules/glob
      @wdio/config  >=7.20.0
      Depends on vulnerable versions of glob
      node_modules/@wdio/config
        @wdio/cli  >=7.20.0
        Depends on vulnerable versions of @wdio/config
        Depends on vulnerable versions of @wdio/globals
        Depends on vulnerable versions of webdriverio
        node_modules/@wdio/cli
        @wdio/runner  >=7.20.0
        Depends on vulnerable versions of @wdio/config
        Depends on vulnerable versions of @wdio/globals
        Depends on vulnerable versions of expect-webdriverio
        Depends on vulnerable versions of webdriver
        Depends on vulnerable versions of webdriverio
        node_modules/@wdio/runner
          @wdio/local-runner  >=7.20.0
          Depends on vulnerable versions of @wdio/runner
          node_modules/@wdio/local-runner
        webdriver  >=7.20.0
        Depends on vulnerable versions of @wdio/config
        node_modules/webdriver
        webdriverio  >=7.20.0
        Depends on vulnerable versions of @wdio/config
        Depends on vulnerable versions of archiver
        Depends on vulnerable versions of webdriver
        node_modules/webdriverio
          @wdio/globals  *
          Depends on vulnerable versions of expect-webdriverio
          Depends on vulnerable versions of webdriverio
          node_modules/@wdio/globals
          expect-webdriverio  4.0.0-alpha.0 - 4.0.0-alpha.6 || >=4.0.1
          Depends on vulnerable versions of @wdio/globals
          Depends on vulnerable versions of webdriverio
          node_modules/expect-webdriverio
      archiver-utils  >=4.0.0
      Depends on vulnerable versions of glob
      node_modules/archiver-utils
        archiver  >=5.3.2
        Depends on vulnerable versions of archiver-utils
        Depends on vulnerable versions of readdir-glob
        Depends on vulnerable versions of zip-stream
        node_modules/archiver
        zip-stream  5.0.1 - 6.0.1
        Depends on vulnerable versions of archiver-utils
        node_modules/zip-stream
      mocha  >=10.0.0
      Depends on vulnerable versions of glob
      Depends on vulnerable versions of minimatch
      node_modules/mocha
        @wdio/mocha-framework  >=7.19.7
        Depends on vulnerable versions of mocha
        node_modules/@wdio/mocha-framework
    readdir-glob  >=1.1.2
    Depends on vulnerable versions of minimatch
    node_modules/readdir-glob

request  *
Severity: moderate
Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6
Depends on vulnerable versions of tough-cookie
No fix available
node_modules/request
  mwbot  >=0.1.6
  Depends on vulnerable versions of request
  node_modules/mwbot
    wdio-mediawiki  *
    Depends on vulnerable versions of mwbot
    node_modules/wdio-mediawiki

tough-cookie  <4.1.3
Severity: moderate
tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3
No fix available
node_modules/tough-cookie

32 vulnerabilities (25 low, 4 moderate, 3 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues possible (including breaking changes), run:
  npm audit fix --force

Some issues need review, and may require choosing
a different dependency.

--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/cli@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/config@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/dot-reporter@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/globals@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/junit-reporter@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/local-runner@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/logger@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/mocha-framework@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/repl@9.4.4',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/reporter@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/runner@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/spec-reporter@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/types@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wdio/utils@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.0.0',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.0.0',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'webdriver@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'webdriverio@9.15.0',
npm WARN EBADENGINE   required: { node: '>=18.20.0' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated lodash.isequal@4.5.0: This package is deprecated. Use require('node:util').isDeepStrictEqual instead.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
--- stdout ---

added 1451 packages, and audited 1452 packages in 42s

217 packages are looking for funding
  run `npm fund` for details

32 vulnerabilities (25 low, 4 moderate, 3 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues possible (including breaking changes), run:
  npm audit fix --force

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/mediawiki.special.block/stores/block.test.js
PASS tests/jest/mediawiki.special.block/BlockLog.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/restSearchClient.test.js
PASS tests/jest/mediawiki.special.block/UserLookup.test.js
PASS tests/jest/mediawiki.special.block/util.test.js
PASS tests/jest/mediawiki.special.block/ExpiryField.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/fetch.test.js
PASS tests/jest/mediawiki.special.block/NamespacesField.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/instrumentation.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/App.test.js
PASS tests/jest/mediawiki.special.block/ReasonField.test.js
PASS tests/jest/mediawiki.special.block/BlockDetailsField.test.js
PASS tests/jest/mediawiki.special.block/AdditionalDetailsField.test.js
PASS tests/jest/mediawiki.special.block/init.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/urlGenerator.test.js
PASS tests/jest/mediawiki.special.block/SpecialBlock.test.js (17.827 s)

Test Suites: 16 passed, 16 total
Tests:       103 passed, 103 total
Snapshots:   3 passed, 3 total
Time:        30.813 s
Ran all test suites.
--- stdout ---

> test
> grunt lint && npm run doc && npm run jest

Running "eslint:all" (eslint) task

/src/repo/resources/src/jquery/jquery.makeCollapsible.js
  425:1  warning  Syntax error in namepath: ~'wikipage.collapsibleContent'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.action.edit/edit.js
  12:1  warning  Syntax error in namepath: ~'wikipage.editform'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.action/mediawiki.action.view.postEdit.js
  21:1  warning  Syntax error in namepath: ~'postEdit'               jsdoc/valid-types
  36:1  warning  Syntax error in namepath: ~'postEdit.afterRemoval'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.authenticationPopup/index.js
  38:1  warning  The type 'userinfo' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.base/errorLogger.js
   8:1  warning  Syntax error in namepath: ~'global.error'  jsdoc/valid-types
  22:1  warning  Syntax error in namepath: ~'error.caught'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.base/log.js
  14:1  warning  Found more than one @return declaration  jsdoc/require-returns
  14:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.base/mediawiki.base.js
  217:1  warning  The type 'mediawiki' is undefined  jsdoc/no-undefined-types
  243:1  warning  The type 'mediawiki' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.debug/debug.js
  1:1  warning  Unused eslint-disable directive (no problems were reported from 'es-x/no-array-prototype-includes')

/src/repo/resources/src/mediawiki.diff/inlineFormatToggle.js
  150:1  warning  Syntax error in namepath: ~'wikipage.diff.wikitextDiffBody'  jsdoc/valid-types
  162:1  warning  Syntax error in namepath: ~'wikipage.diff.diffTypeSwitch'    jsdoc/valid-types

/src/repo/resources/src/mediawiki.editRecovery/edit.js
  184:1  warning  Syntax error in namepath: ~'editRecovery.loadEnd'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.htmlform/cond-state.js
  48:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.htmlform/htmlform.js
  5:1  warning  Syntax error in namepath: ~'htmlform.enhance'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.inspect.js
   61:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
   91:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  112:2  warning  Found more than one @return declaration  jsdoc/require-returns
  112:2  warning  Found more than one @return declaration  jsdoc/require-returns-check
  121:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  152:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  164:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  175:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  203:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.jqueryMsg/mediawiki.jqueryMsg.js
  142:1  warning  Found more than one @return declaration  jsdoc/require-returns
  142:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.language.months/months.js
  44:1  warning  The type 'Months' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.notification.convertmessagebox.js
  13:1  warning  Syntax error in namepath: (require("mediawiki.notification.convertmessagebox"))  jsdoc/valid-types

/src/repo/resources/src/mediawiki.notification/notification.js
  13:1  warning  Expected JSDoc block to be aligned                                  jsdoc/check-alignment
  18:2  warning  Missing JSDoc @param "message" declaration                          jsdoc/require-param
  18:2  warning  Missing JSDoc @param "options" declaration                          jsdoc/require-param
  28:1  warning  Expected @param names to be "message, options". Got "Notification"  jsdoc/check-param-names

/src/repo/resources/src/mediawiki.page.preview.js
  416:1  warning  Syntax error in namepath: ~'wikipage.tableOfContents'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.page.ready/enableSearchDialog.js
  14:21  warning  Found non-literal argument in require  security/detect-non-literal-require

/src/repo/resources/src/mediawiki.page.ready/ready.js
   98:1   warning  Syntax error in namepath: ~'wikipage.indicators'  jsdoc/valid-types
  118:1   warning  Syntax error in namepath: ~'wikipage.content'     jsdoc/valid-types
  139:1   warning  Syntax error in namepath: ~'wikipage.categories'  jsdoc/valid-types
  155:1   warning  Syntax error in namepath: ~'wikipage.diff'        jsdoc/valid-types
  186:1   warning  Syntax error in namepath: ~'skin.logout'          jsdoc/valid-types
  252:21  warning  Found non-literal argument in require             security/detect-non-literal-require

/src/repo/resources/src/mediawiki.page.watch.ajax/watch-ajax.js
  128:1  warning  Syntax error in namepath: ~'wikipage.watchlistChange'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.rcfilters/Controller.js
  330:1  warning  Found more than one @return declaration                  jsdoc/require-returns
  330:1  warning  Found more than one @return declaration                  jsdoc/require-returns-check
  550:1  warning  Syntax error in namepath: ~'RcFilters.highlight.enable'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.rcfilters/dm/FilterItem.js
   81:1  warning  Found more than one @return declaration  jsdoc/require-returns
   81:1  warning  Found more than one @return declaration  jsdoc/require-returns-check
  335:1  warning  The type 'update' is undefined           jsdoc/no-undefined-types
  351:1  warning  The type 'update' is undefined           jsdoc/no-undefined-types
  366:1  warning  The type 'update' is undefined           jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.rcfilters/dm/FiltersViewModel.js
  1185:1  warning  The type 'searchChange' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.rcfilters/mw.rcfilters.js
  176:1  warning  Syntax error in namepath: ~'structuredChangeFilters.ui.initialized'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.rcfilters/ui/FilterTagMultiselectWidget.js
  408:1  warning  Syntax error in namepath: ~'RcFilters.popup.open'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.searchSuggest/searchSuggest.js
  36:1  warning  The type 'ResponseMetaData' is undefined  jsdoc/no-undefined-types
  43:1  warning  The type 'ResponseFunction' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/App.vue
   75:3  warning  Prop 'router' requires default value to be set  vue/require-default-prop
  306:1  warning  The type 'AbortableSearchFetch' is undefined    jsdoc/no-undefined-types
  352:1  warning  The type 'SearchSubmitEvent' is undefined       jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/fetch.js
  21:1  warning  The type 'RequestInit' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/instrumentation.js
   2:1  warning  The type 'FetchEndEvent' is undefined         jsdoc/no-undefined-types
  16:1  warning  The type 'SuggestionClickEvent' is undefined  jsdoc/no-undefined-types
  16:1  warning  The type 'SearchSubmitEvent' is undefined     jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/restSearchClient.js
   4:1  warning  Syntax error in type: import('./urlGenerator.js').UrlGenerator  jsdoc/valid-types
  11:1  warning  The type 'RestResult' is undefined                              jsdoc/no-undefined-types
  17:1  warning  The type 'SearchResult' is undefined                            jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/urlGenerator.js
   2:1  warning  The type 'Record' is undefined        jsdoc/no-undefined-types
   9:1  warning  The type 'RestResult' is undefined    jsdoc/no-undefined-types
   9:1  warning  The type 'SearchResult' is undefined  jsdoc/no-undefined-types
  29:1  warning  The type 'RestResult' is undefined    jsdoc/no-undefined-types
  29:1  warning  The type 'SearchResult' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.special.apisandbox/ApiSandboxLayout.js
  44:1  warning  Found more than one @return declaration  jsdoc/require-returns
  44:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.special.block/init.js
  26:1  warning  Syntax error in namepath: ~'SpecialBlock.block'  jsdoc/valid-types
  36:1  warning  Syntax error in namepath: ~'SpecialBlock.form'   jsdoc/valid-types

/src/repo/resources/src/mediawiki.template.js
   26:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types
   40:1  warning  The type 'TemplateRenderFunction' is undefined   jsdoc/no-undefined-types
   45:1  warning  The type 'TemplateCompileFunction' is undefined  jsdoc/no-undefined-types
   61:1  warning  The type 'TemplateCompiler' is undefined         jsdoc/no-undefined-types
   88:1  warning  The type 'TemplateCompiler' is undefined         jsdoc/no-undefined-types
  107:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types
  125:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types
  147:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.util/util.js
  626:1  warning  Syntax error in namepath: ~'util.addPortlet'      jsdoc/valid-types
  795:1  warning  Syntax error in namepath: ~'util.addPortletLink'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.widgets.datetime/DateTimeFormatter.js
  268:1  warning  The type 'FieldSpecificationObject' is undefined  jsdoc/no-undefined-types
  632:1  warning  The type 'CalendarGridData' is undefined          jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.widgets.datetime/DiscordianDateTimeFormatter.js
  74:1  warning  The type 'FieldSpecificationObject' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.widgets.datetime/ProlepticGregorianDateTimeFormatter.js
  306:1  warning  The type 'FieldSpecificationObject' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.widgets/mw.widgets.NamespaceInputWidget.js
  50:1  warning  The type 'DropdownOptions' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/startup/mediawiki.loader.js
  61:1  warning  Syntax error in namepath: ~'resourceloader.exception'  jsdoc/valid-types

/src/repo/resources/src/startup/startup.js
  52:3  warning  Unused eslint-disable directive (no problems were reported from 'es-x/no-promise')
  54:3  warning  Unused eslint-disable directive (no problems were reported from 'es-x/no-regexp-prototype-flags')

/src/repo/tests/api-testing/REST/PageHistory.js
  235:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  244:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  277:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  338:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  439:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  448:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  536:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  546:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  557:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')

/src/repo/tests/api-testing/REST/PageLanguageLinks.js
  42:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')

/src/repo/tests/api-testing/REST/PageMediaLinks.js
  42:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')

/src/repo/tests/api-testing/REST/RevisionCompare.js
  34:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  57:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  66:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')

/src/repo/tests/api-testing/REST/Transform.js
  93:2  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')

/src/repo/tests/api-testing/REST/content.v1/Creation.js
  166:5  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  186:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  205:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  225:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  245:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  269:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  297:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')

/src/repo/tests/api-testing/REST/content.v1/Update.js
  225:5  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  244:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  262:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  282:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  302:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  320:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  341:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  363:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  386:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')
  416:4  warning  Unused eslint-disable directive (no problems were reported from 'no-unused-expressions')

/src/repo/tests/qunit/data/testrunner.js
  112:2  warning  Missing JSDoc @return declaration  jsdoc/require-returns

/src/repo/tests/selenium/specs/page.js
  85:1  warning  This line has a length of 103. Maximum allowed is 100  max-len

/src/repo/tests/selenium/wdio-mediawiki/PrometheusFileReporter.js
  146:3   warning  Found writeFileSync from package "fs" with non literal argument at index 0  security/detect-non-literal-fs-filename
  161:22  warning  Found readdirSync from package "fs" with non literal argument at index 0    security/detect-non-literal-fs-filename
  166:28  warning  Found readFileSync from package "fs" with non literal argument at index 0   security/detect-non-literal-fs-filename
  246:2   warning  Found writeFileSync from package "fs" with non literal argument at index 0  security/detect-non-literal-fs-filename

/src/repo/tests/selenium/wdio-mediawiki/Util.js
  35:1  warning  This line has a length of 107. Maximum allowed is 100  max-len

/src/repo/tests/selenium/wdio-mediawiki/wdio-defaults.conf.js
  103:1  warning  This line has a length of 108. Maximum allowed is 100  max-len

✖ 133 problems (0 errors, 133 warnings)
  0 errors and 38 warnings potentially fixable with the `--fix` option.


Running "banana:core" (banana) task
>> 1 message directory checked.

Running "banana:codex" (banana) task
>> 1 message directory checked.

Running "banana:datetime" (banana) task
>> 1 message directory checked.

Running "banana:exif" (banana) task
>> 1 message directory checked.

Running "banana:preferences" (banana) task
>> 1 message directory checked.

Running "banana:api" (banana) task
>> 1 message directory checked.

Running "banana:rest" (banana) task
>> 1 message directory checked.

Running "banana:installer" (banana) task
>> 1 message directory checked.

Running "banana:paramvalidator" (banana) task
>> 1 message directory checked.

Running "stylelint:resources" (stylelint) task
>> resources/src/mediawiki.skinning/content.media-dark.less
>>   31:1  ⚠  Unexpected browser feature "prefers-color-scheme" is not supported by Firefox 49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66, Chrome 49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75, Safari 10,11,12,10.1,11.1, Safari on iOS 10.0-10.2,10.3,11.0-11.2,11.3-11.4,12.0-12.1,12.2-12.5  plugin/no-unsupported-browser-features
>> 
>> ⚠ 1 problem (0 errors, 1 warning)

⚠ 1 warning

>> Linted 215 files without errors

Running "stylelint:config" (stylelint) task
>> Linted 1 files without errors

Done.

> doc
> jsdoc -c jsdoc.json


> jest
> jest --config tests/jest/jest.config.js

------------------------------------|---------|----------|---------|---------|-----------------------------------------------------------------------------------------------------------------
File                                | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                                                                               
------------------------------------|---------|----------|---------|---------|-----------------------------------------------------------------------------------------------------------------
All files                           |   93.35 |    90.17 |   77.88 |   93.35 |                                                                                                                 
 mediawiki.skinning.typeaheadSearch |   86.75 |    84.31 |   61.11 |   86.75 |                                                                                                                 
  App.vue                           |   78.57 |    71.42 |   38.88 |   78.57 | 175,185,188-191,196,201-202,208-210,268-279,289-302,310-336,340-348,355-357,361-364,368,372-376,379-383,387-390 
  TypeaheadSearchWrapper.vue        |     100 |      100 |     100 |     100 |                                                                                                                 
  fetch.js                          |     100 |     87.5 |      75 |     100 | 31                                                                                                              
  instrumentation.js                |   82.82 |      100 |      60 |   82.82 | 4-13,18-24                                                                                                      
  restSearchClient.js               |     100 |    82.35 |     100 |     100 | 28,45-49                                                                                                        
  urlGenerator.js                   |     100 |      100 |     100 |     100 |                                                                                                                 
 mediawiki.special.block            |   94.35 |    92.95 |   82.35 |   94.35 |                                                                                                                 
  SpecialBlock.vue                  |   93.89 |    93.18 |   72.72 |   93.89 | 245-254,297-302,308-322,440-441,452-454                                                                         
  init.js                           |     100 |      100 |     100 |     100 |                                                                                                                 
  util.js                           |   94.64 |     91.3 |     100 |   94.64 | 82-84,86-88                                                                                                     
 mediawiki.special.block/components |   95.11 |    91.93 |    87.8 |   95.11 |                                                                                                                 
  AdditionalDetailsField.vue        |     100 |       80 |     100 |     100 | 68                                                                                                              
  BlockDetailsField.vue             |     100 |      100 |     100 |     100 |                                                                                                                 
  BlockLog.vue                      |   98.94 |      100 |   83.33 |   98.94 | 337-340,401                                                                                                     
  BlockTypeField.vue                |   95.04 |       50 |     100 |   95.04 | 73-77                                                                                                           
  ConfirmationDialog.vue            |   96.34 |      100 |      50 |   96.34 | 70-72                                                                                                           
  ExpiryField.vue                   |   95.07 |    89.47 |     100 |   95.07 | 145-146,148-149,177-186,245-246                                                                                 
  NamespacesField.vue               |   90.42 |    88.88 |   66.66 |   90.42 | 60-68                                                                                                           
  PagesField.vue                    |   70.06 |       50 |      50 |   70.06 | 46-47,56-57,72-79,88-90,97-118,127-133                                                                          
  ReasonField.vue                   |   97.14 |    93.75 |     100 |   97.14 | 98-101                                                                                                          
  UserLookup.vue                    |   97.74 |    95.23 |     100 |   97.74 | 145-147,196-198,231-232                                                                                         
  ValidatingTextInput.js            |     100 |      100 |     100 |     100 |                                                                                                                 
 mediawiki.special.block/stores     |   95.65 |    87.64 |      90 |   95.65 |                                                                                                                 
  block.js                          |   95.65 |    87.64 |      90 |   95.65 | 322-323,432-433,435-436,456-457,460-461,464-465,479-494                                                         
------------------------------------|---------|----------|---------|---------|-----------------------------------------------------------------------------------------------------------------

--- end ---
{}
{}
{}
{}
{}
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

--- end ---
[DNM] there are no updates
$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmp5w0u9ke_
--- stdout ---
[master 814f568] [DNM] there are no updates
 1 file changed, 418 insertions(+), 95 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From 814f56851a70e5e81dbca9d5b4a6690e1dd42d3a Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Wed, 11 Jun 2025 00:16:43 +0000
Subject: [PATCH] [DNM] there are no updates

Change-Id: I7d841007291a4a9d7ca6bdb60bb76b3325f03033
---
 package-lock.json | 513 +++++++++++++++++++++++++++++++++++++---------
 1 file changed, 418 insertions(+), 95 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 6d25130..4cbd5a0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2426,24 +2426,27 @@
 			}
 		},
 		"node_modules/@eslint-community/eslint-utils": {
-			"version": "4.4.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-			"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+			"version": "4.7.0",
+			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+			"integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
 			"dev": true,
 			"dependencies": {
-				"eslint-visitor-keys": "^3.3.0"
+				"eslint-visitor-keys": "^3.4.3"
 			},
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
 			},
+			"funding": {
+				"url": "https://opencollective.com/eslint"
+			},
 			"peerDependencies": {
 				"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
 			}
 		},
 		"node_modules/@eslint-community/regexpp": {
-			"version": "4.6.2",
-			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz",
-			"integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==",
+			"version": "4.12.1",
+			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+			"integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
 			"dev": true,
 			"engines": {
 				"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -4038,6 +4041,40 @@
 				"@types/node": "*"
 			}
 		},
+		"node_modules/@typescript-eslint/project-service": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
+			"integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/tsconfig-utils": "^8.34.0",
+				"@typescript-eslint/types": "^8.34.0",
+				"debug": "^4.3.4"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+			"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
 		"node_modules/@typescript-eslint/scope-manager": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz",
@@ -4055,6 +4092,22 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			}
 		},
+		"node_modules/@typescript-eslint/tsconfig-utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
+			"integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
 		"node_modules/@typescript-eslint/types": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz",
@@ -8253,9 +8306,9 @@
 			}
 		},
 		"node_modules/enhanced-resolve": {
-			"version": "5.17.0",
-			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
-			"integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
+			"version": "5.18.1",
+			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+			"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
 			"dev": true,
 			"dependencies": {
 				"graceful-fs": "^4.2.4",
@@ -8577,9 +8630,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-es-x": {
-			"version": "7.7.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.7.0.tgz",
-			"integrity": "sha512-aP3qj8BwiEDPttxQkZdI221DLKq9sI/qHolE2YSQL1/9+xk7dTV+tB1Fz8/IaCA+lnLA1bDEnvaS2LKs0k2Uig==",
+			"version": "7.8.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
+			"integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
 			"dev": true,
 			"funding": [
 				"https://github.com/sponsors/ota-meshi",
@@ -8587,7 +8640,7 @@
 			],
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.1.2",
-				"@eslint-community/regexpp": "^4.6.0",
+				"@eslint-community/regexpp": "^4.11.0",
 				"eslint-compat-utils": "^0.5.1"
 			},
 			"engines": {
@@ -8699,19 +8752,21 @@
 			}
 		},
 		"node_modules/eslint-plugin-n": {
-			"version": "17.8.1",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.8.1.tgz",
-			"integrity": "sha512-KdG0h0voZms8UhndNu8DeWx1eM4sY+A4iXtsNo6kOfJLYHNeTGPacGalJ9GcvrbmOL3r/7QOMwVZDSw+1SqsrA==",
+			"version": "17.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.19.0.tgz",
+			"integrity": "sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==",
 			"dev": true,
 			"dependencies": {
-				"@eslint-community/eslint-utils": "^4.4.0",
-				"enhanced-resolve": "^5.17.0",
-				"eslint-plugin-es-x": "^7.5.0",
-				"get-tsconfig": "^4.7.0",
-				"globals": "^15.0.0",
-				"ignore": "^5.2.4",
-				"minimatch": "^9.0.0",
-				"semver": "^7.5.3"
+				"@eslint-community/eslint-utils": "^4.5.0",
+				"@typescript-eslint/utils": "^8.26.1",
+				"enhanced-resolve": "^5.17.1",
+				"eslint-plugin-es-x": "^7.8.0",
+				"get-tsconfig": "^4.8.1",
+				"globals": "^15.11.0",
+				"ignore": "^5.3.2",
+				"minimatch": "^9.0.5",
+				"semver": "^7.6.3",
+				"ts-declaration-location": "^1.0.6"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -8723,6 +8778,104 @@
 				"eslint": ">=8.23.0"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/scope-manager": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
+			"integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/visitor-keys": "8.34.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/types": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+			"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/typescript-estree": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
+			"integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/project-service": "8.34.0",
+				"@typescript-eslint/tsconfig-utils": "8.34.0",
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/visitor-keys": "8.34.0",
+				"debug": "^4.3.4",
+				"fast-glob": "^3.3.2",
+				"is-glob": "^4.0.3",
+				"minimatch": "^9.0.4",
+				"semver": "^7.6.0",
+				"ts-api-utils": "^2.1.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
+			"integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
+			"dev": true,
+			"dependencies": {
+				"@eslint-community/eslint-utils": "^4.7.0",
+				"@typescript-eslint/scope-manager": "8.34.0",
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/typescript-estree": "8.34.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"eslint": "^8.57.0 || ^9.0.0",
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/visitor-keys": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
+			"integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/types": "8.34.0",
+				"eslint-visitor-keys": "^4.2.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
 		"node_modules/eslint-plugin-n/node_modules/brace-expansion": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -8732,6 +8885,18 @@
 				"balanced-match": "^1.0.0"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/eslint-visitor-keys": {
+			"version": "4.2.1",
+			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+			"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"url": "https://opencollective.com/eslint"
+			}
+		},
 		"node_modules/eslint-plugin-n/node_modules/globals": {
 			"version": "15.15.0",
 			"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
@@ -8760,6 +8925,18 @@
 				"url": "https://github.com/sponsors/isaacs"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/ts-api-utils": {
+			"version": "2.1.0",
+			"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+			"integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=18.12"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4"
+			}
+		},
 		"node_modules/eslint-plugin-no-jquery": {
 			"version": "3.1.1",
 			"resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.1.1.tgz",
@@ -9228,12 +9405,12 @@
 			}
 		},
 		"node_modules/expect-webdriverio": {
-			"version": "5.2.1",
-			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.2.1.tgz",
-			"integrity": "sha512-rjTiQ8ztIsrRYH4sVrDjAGi/XWUN1LuTtJ+yr3OlWs6sgYx57mrI0Cn3rDAavCVU6eqZ1oBAcBZL583sY3mx2Q==",
+			"version": "5.3.0",
+			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.3.0.tgz",
+			"integrity": "sha512-EUiibBYXWzSn9mJFuF914yeKUxvRxrhR9nImfe0YttG+wVg0v5jY1DPPnRz8sE0wlmoLHyLr155b5/d1+oZmxg==",
 			"dev": true,
 			"dependencies": {
-				"@vitest/snapshot": "^3.2.0",
+				"@vitest/snapshot": "^3.2.1",
 				"expect": "^29.7.0",
 				"jest-matcher-utils": "^29.7.0",
 				"lodash.isequal": "^4.5.0"
@@ -10078,9 +10255,9 @@
 			}
 		},
 		"node_modules/get-tsconfig": {
-			"version": "4.7.5",
-			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz",
-			"integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
+			"version": "4.10.1",
+			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
+			"integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
 			"dev": true,
 			"dependencies": {
 				"resolve-pkg-maps": "^1.0.0"
@@ -12091,16 +12268,16 @@
 			}
 		},
 		"node_modules/js-beautify": {
-			"version": "1.15.1",
-			"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz",
-			"integrity": "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==",
+			"version": "1.15.4",
+			"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz",
+			"integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==",
 			"dev": true,
 			"dependencies": {
 				"config-chain": "^1.1.13",
 				"editorconfig": "^1.0.4",
-				"glob": "^10.3.3",
+				"glob": "^10.4.2",
 				"js-cookie": "^3.0.5",
-				"nopt": "^7.2.0"
+				"nopt": "^7.2.1"
 			},
 			"bin": {
 				"css-beautify": "js/bin/css-beautify.js",
@@ -16842,9 +17019,9 @@
 			"license": "MIT"
 		},
 		"node_modules/tapable": {
-			"version": "2.2.1",
-			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
-			"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+			"version": "2.2.2",
+			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
+			"integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==",
 			"dev": true,
 			"engines": {
 				"node": ">=6"
@@ -17017,6 +17194,40 @@
 				"typescript": ">=4.2.0"
 			}
 		},
+		"node_modules/ts-declaration-location": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz",
+			"integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "ko-fi",
+					"url": "https://ko-fi.com/rebeccastevens"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/ts-declaration-location"
+				}
+			],
+			"dependencies": {
+				"picomatch": "^4.0.2"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.0.0"
+			}
+		},
+		"node_modules/ts-declaration-location/node_modules/picomatch": {
+			"version": "4.0.2",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+			"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/jonschlinkert"
+			}
+		},
 		"node_modules/tsconfig": {
 			"version": "7.0.0",
 			"resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz",
@@ -17576,8 +17787,13 @@
 			}
 		},
 		"node_modules/wdio-mediawiki": {
-			"resolved": "tests/selenium/wdio-mediawiki",
-			"link": true
+			"version": "4.0.0",
+			"resolved": "file:tests/selenium/wdio-mediawiki",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"mwbot": "2.1.3"
+			}
 		},
 		"node_modules/web-streams-polyfill": {
 			"version": "3.3.3",
@@ -18160,14 +18376,6 @@
 			"dependencies": {
 				"safe-buffer": "~5.2.0"
 			}
-		},
-		"tests/selenium/wdio-mediawiki": {
-			"version": "4.0.0",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"mwbot": "2.1.3"
-			}
 		}
 	},
 	"dependencies": {
@@ -19702,18 +19910,18 @@
 			"optional": true
 		},
 		"@eslint-community/eslint-utils": {
-			"version": "4.4.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-			"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+			"version": "4.7.0",
+			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+			"integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
 			"dev": true,
 			"requires": {
-				"eslint-visitor-keys": "^3.3.0"
+				"eslint-visitor-keys": "^3.4.3"
 			}
 		},
 		"@eslint-community/regexpp": {
-			"version": "4.6.2",
-			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz",
-			"integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==",
+			"version": "4.12.1",
+			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+			"integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
 			"dev": true
 		},
 		"@eslint/eslintrc": {
@@ -20971,6 +21179,25 @@
 				"@types/node": "*"
 			}
 		},
+		"@typescript-eslint/project-service": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
+			"integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
+			"dev": true,
+			"requires": {
+				"@typescript-eslint/tsconfig-utils": "^8.34.0",
+				"@typescript-eslint/types": "^8.34.0",
+				"debug": "^4.3.4"
+			},
+			"dependencies": {
+				"@typescript-eslint/types": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+					"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+					"dev": true
+				}
+			}
+		},
 		"@typescript-eslint/scope-manager": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz",
@@ -20981,6 +21208,13 @@
 				"@typescript-eslint/visitor-keys": "7.13.0"
 			}
 		},
+		"@typescript-eslint/tsconfig-utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
+			"integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
+			"dev": true,
+			"requires": {}
+		},
 		"@typescript-eslint/types": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz",
@@ -24117,9 +24351,9 @@
 			"dev": true
 		},
 		"enhanced-resolve": {
-			"version": "5.17.0",
-			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
-			"integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
+			"version": "5.18.1",
+			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+			"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
 			"dev": true,
 			"requires": {
 				"graceful-fs": "^4.2.4",
@@ -24389,13 +24623,13 @@
 			}
 		},
 		"eslint-plugin-es-x": {
-			"version": "7.7.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.7.0.tgz",
-			"integrity": "sha512-aP3qj8BwiEDPttxQkZdI221DLKq9sI/qHolE2YSQL1/9+xk7dTV+tB1Fz8/IaCA+lnLA1bDEnvaS2LKs0k2Uig==",
+			"version": "7.8.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
+			"integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
 			"dev": true,
 			"requires": {
 				"@eslint-community/eslint-utils": "^4.1.2",
-				"@eslint-community/regexpp": "^4.6.0",
+				"@eslint-community/regexpp": "^4.11.0",
 				"eslint-compat-utils": "^0.5.1"
 			}
 		},
@@ -24469,21 +24703,79 @@
 			}
 		},
 		"eslint-plugin-n": {
-			"version": "17.8.1",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.8.1.tgz",
-			"integrity": "sha512-KdG0h0voZms8UhndNu8DeWx1eM4sY+A4iXtsNo6kOfJLYHNeTGPacGalJ9GcvrbmOL3r/7QOMwVZDSw+1SqsrA==",
-			"dev": true,
-			"requires": {
-				"@eslint-community/eslint-utils": "^4.4.0",
-				"enhanced-resolve": "^5.17.0",
-				"eslint-plugin-es-x": "^7.5.0",
-				"get-tsconfig": "^4.7.0",
-				"globals": "^15.0.0",
-				"ignore": "^5.2.4",
-				"minimatch": "^9.0.0",
-				"semver": "^7.5.3"
-			},
-			"dependencies": {
+			"version": "17.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.19.0.tgz",
+			"integrity": "sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==",
+			"dev": true,
+			"requires": {
+				"@eslint-community/eslint-utils": "^4.5.0",
+				"@typescript-eslint/utils": "^8.26.1",
+				"enhanced-resolve": "^5.17.1",
+				"eslint-plugin-es-x": "^7.8.0",
+				"get-tsconfig": "^4.8.1",
+				"globals": "^15.11.0",
+				"ignore": "^5.3.2",
+				"minimatch": "^9.0.5",
+				"semver": "^7.6.3",
+				"ts-declaration-location": "^1.0.6"
+			},
+			"dependencies": {
+				"@typescript-eslint/scope-manager": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
+					"integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
+					"dev": true,
+					"requires": {
+						"@typescript-eslint/types": "8.34.0",
+						"@typescript-eslint/visitor-keys": "8.34.0"
+					}
+				},
+				"@typescript-eslint/types": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+					"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+					"dev": true
+				},
+				"@typescript-eslint/typescript-estree": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
+					"integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
+					"dev": true,
+					"requires": {
+						"@typescript-eslint/project-service": "8.34.0",
+						"@typescript-eslint/tsconfig-utils": "8.34.0",
+						"@typescript-eslint/types": "8.34.0",
+						"@typescript-eslint/visitor-keys": "8.34.0",
+						"debug": "^4.3.4",
+						"fast-glob": "^3.3.2",
+						"is-glob": "^4.0.3",
+						"minimatch": "^9.0.4",
+						"semver": "^7.6.0",
+						"ts-api-utils": "^2.1.0"
+					}
+				},
+				"@typescript-eslint/utils": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
+					"integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
+					"dev": true,
+					"requires": {
+						"@eslint-community/eslint-utils": "^4.7.0",
+						"@typescript-eslint/scope-manager": "8.34.0",
+						"@typescript-eslint/types": "8.34.0",
+						"@typescript-eslint/typescript-estree": "8.34.0"
+					}
+				},
+				"@typescript-eslint/visitor-keys": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
+					"integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
+					"dev": true,
+					"requires": {
+						"@typescript-eslint/types": "8.34.0",
+						"eslint-visitor-keys": "^4.2.0"
+					}
+				},
 				"brace-expansion": {
 					"version": "2.0.1",
 					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -24493,6 +24785,12 @@
 						"balanced-match": "^1.0.0"
 					}
 				},
+				"eslint-visitor-keys": {
+					"version": "4.2.1",
+					"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+					"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+					"dev": true
+				},
 				"globals": {
 					"version": "15.15.0",
 					"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
@@ -24507,6 +24805,13 @@
 					"requires": {
 						"brace-expansion": "^2.0.1"
 					}
+				},
+				"ts-api-utils": {
+					"version": "2.1.0",
+					"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+					"integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
+					"dev": true,
+					"requires": {}
 				}
 			}
 		},
@@ -24816,12 +25121,12 @@
 			}
 		},
 		"expect-webdriverio": {
-			"version": "5.2.1",
-			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.2.1.tgz",
-			"integrity": "sha512-rjTiQ8ztIsrRYH4sVrDjAGi/XWUN1LuTtJ+yr3OlWs6sgYx57mrI0Cn3rDAavCVU6eqZ1oBAcBZL583sY3mx2Q==",
+			"version": "5.3.0",
+			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.3.0.tgz",
+			"integrity": "sha512-EUiibBYXWzSn9mJFuF914yeKUxvRxrhR9nImfe0YttG+wVg0v5jY1DPPnRz8sE0wlmoLHyLr155b5/d1+oZmxg==",
 			"dev": true,
 			"requires": {
-				"@vitest/snapshot": "^3.2.0",
+				"@vitest/snapshot": "^3.2.1",
 				"expect": "^29.7.0",
 				"jest-matcher-utils": "^29.7.0",
 				"lodash.isequal": "^4.5.0"
@@ -25426,9 +25731,9 @@
 			}
 		},
 		"get-tsconfig": {
-			"version": "4.7.5",
-			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz",
-			"integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
+			"version": "4.10.1",
+			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
+			"integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
 			"dev": true,
 			"requires": {
 				"resolve-pkg-maps": "^1.0.0"
@@ -26925,16 +27230,16 @@
 			}
 		},
 		"js-beautify": {
-			"version": "1.15.1",
-			"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz",
-			"integrity": "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==",
+			"version": "1.15.4",
+			"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz",
+			"integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==",
 			"dev": true,
 			"requires": {
 				"config-chain": "^1.1.13",
 				"editorconfig": "^1.0.4",
-				"glob": "^10.3.3",
+				"glob": "^10.4.2",
 				"js-cookie": "^3.0.5",
-				"nopt": "^7.2.0"
+				"nopt": "^7.2.1"
 			},
 			"dependencies": {
 				"abbrev": {
@@ -30512,9 +30817,9 @@
 			}
 		},
 		"tapable": {
-			"version": "2.2.1",
-			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
-			"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+			"version": "2.2.2",
+			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
+			"integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==",
 			"dev": true
 		},
 		"tar-fs": {
@@ -30660,6 +30965,23 @@
 			"dev": true,
 			"requires": {}
 		},
+		"ts-declaration-location": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz",
+			"integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==",
+			"dev": true,
+			"requires": {
+				"picomatch": "^4.0.2"
+			},
+			"dependencies": {
+				"picomatch": {
+					"version": "4.0.2",
+					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+					"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+					"dev": true
+				}
+			}
+		},
 		"tsconfig": {
 			"version": "7.0.0",
 			"resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz",
@@ -31056,7 +31378,8 @@
 			}
 		},
 		"wdio-mediawiki": {
-			"version": "file:tests/selenium/wdio-mediawiki",
+			"version": "4.0.0",
+			"dev": true,
 			"requires": {
 				"mwbot": "2.1.3"
 			}
-- 
2.39.5


--- end ---
Source code is licensed under the AGPL.