mediawiki/extensions/CodeMirror: main (log #2354238)

sourcepatches

This run took 193 seconds.

From 19c05e5f45d88c7097f77114f086585fa88bc778 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sat, 21 Feb 2026 11:45:07 +0000
Subject: [PATCH] build: Updating dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

composer:
* mediawiki/minus-x: 2.0.0 → 2.0.1

npm:
* ajv: 6.12.6, 8.17.1 → 6.14.0, 8.18.0
  * https://github.com/advisories/GHSA-2g4f-4pwh-qvx6
* fast-xml-parser: 5.3.5 → 5.3.7
  * https://github.com/advisories/GHSA-jmr7-xgp7-cmfj
* markdown-it: 14.1.0 → 14.1.1
  * https://github.com/advisories/GHSA-38c4-r59v-3vqw

Change-Id: I00212a9961a9e1a7c4d85344ceadb4d6047f0643
---
 composer.json     |   2 +-
 package-lock.json | 666 ++++++++++++++++------------------------------
 2 files changed, 235 insertions(+), 433 deletions(-)

diff --git a/composer.json b/composer.json
index b2b9bb7..ae1f4f1 100644
--- a/composer.json
+++ b/composer.json
@@ -2,7 +2,7 @@
 	"require-dev": {
 		"mediawiki/mediawiki-codesniffer": "49.0.0",
 		"mediawiki/mediawiki-phan-config": "0.18.0",
-		"mediawiki/minus-x": "2.0.0",
+		"mediawiki/minus-x": "2.0.1",
 		"php-parallel-lint/php-console-highlighter": "1.0.0",
 		"php-parallel-lint/php-parallel-lint": "1.4.0"
 	},
diff --git a/package-lock.json b/package-lock.json
index 4f0156d..13764d4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1176,9 +1176,9 @@
 			}
 		},
 		"node_modules/@eslint-community/eslint-utils": {
-			"version": "4.7.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
-			"integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
+			"version": "4.9.1",
+			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
+			"integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
 			"dev": true,
 			"dependencies": {
 				"eslint-visitor-keys": "^3.4.3"
@@ -2015,9 +2015,9 @@
 			}
 		},
 		"node_modules/@jest/expect-utils": {
-			"version": "30.1.2",
-			"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.1.2.tgz",
-			"integrity": "sha512-HXy1qT/bfdjCv7iC336ExbqqYtZvljrV8odNdso7dWK9bSeHtLlvwWWC3YSybSPL03Gg5rug6WLCZAZFH72m0A==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz",
+			"integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==",
 			"dev": true,
 			"dependencies": {
 				"@jest/get-type": "30.1.0"
@@ -3155,22 +3155,21 @@
 			}
 		},
 		"node_modules/@typescript-eslint/eslint-plugin": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.50.0.tgz",
-			"integrity": "sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.0.tgz",
+			"integrity": "sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==",
 			"dev": true,
-			"license": "MIT",
 			"optional": true,
 			"peer": true,
 			"dependencies": {
-				"@eslint-community/regexpp": "^4.10.0",
-				"@typescript-eslint/scope-manager": "8.50.0",
-				"@typescript-eslint/type-utils": "8.50.0",
-				"@typescript-eslint/utils": "8.50.0",
-				"@typescript-eslint/visitor-keys": "8.50.0",
-				"ignore": "^7.0.0",
+				"@eslint-community/regexpp": "^4.12.2",
+				"@typescript-eslint/scope-manager": "8.56.0",
+				"@typescript-eslint/type-utils": "8.56.0",
+				"@typescript-eslint/utils": "8.56.0",
+				"@typescript-eslint/visitor-keys": "8.56.0",
+				"ignore": "^7.0.5",
 				"natural-compare": "^1.4.0",
-				"ts-api-utils": "^2.1.0"
+				"ts-api-utils": "^2.4.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3180,8 +3179,8 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			},
 			"peerDependencies": {
-				"@typescript-eslint/parser": "^8.50.0",
-				"eslint": "^8.57.0 || ^9.0.0",
+				"@typescript-eslint/parser": "^8.56.0",
+				"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
 				"typescript": ">=4.8.4 <6.0.0"
 			}
 		},
@@ -3198,18 +3197,17 @@
 			}
 		},
 		"node_modules/@typescript-eslint/parser": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.1.tgz",
-			"integrity": "sha512-nm3cvFN9SqZGXjmw5bZ6cGmvJSyJPn0wU9gHAZZHDnZl2wF9PhHv78Xf06E0MaNk4zLVHL8hb2/c32XvyJOLQg==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.0.tgz",
+			"integrity": "sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==",
 			"dev": true,
-			"license": "MIT",
 			"optional": true,
 			"peer": true,
 			"dependencies": {
-				"@typescript-eslint/scope-manager": "8.53.1",
-				"@typescript-eslint/types": "8.53.1",
-				"@typescript-eslint/typescript-estree": "8.53.1",
-				"@typescript-eslint/visitor-keys": "8.53.1",
+				"@typescript-eslint/scope-manager": "8.56.0",
+				"@typescript-eslint/types": "8.56.0",
+				"@typescript-eslint/typescript-estree": "8.56.0",
+				"@typescript-eslint/visitor-keys": "8.56.0",
 				"debug": "^4.4.3"
 			},
 			"engines": {
@@ -3220,209 +3218,19 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			},
 			"peerDependencies": {
-				"eslint": "^8.57.0 || ^9.0.0",
+				"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
 				"typescript": ">=4.8.4 <6.0.0"
 			}
 		},
-		"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/project-service": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.1.tgz",
-			"integrity": "sha512-WYC4FB5Ra0xidsmlPb+1SsnaSKPmS3gsjIARwbEkHkoWloQmuzcfypljaJcR78uyLA1h8sHdWWPHSLDI+MtNog==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"@typescript-eslint/tsconfig-utils": "^8.53.1",
-				"@typescript-eslint/types": "^8.53.1",
-				"debug": "^4.4.3"
-			},
-			"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 <6.0.0"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.1.tgz",
-			"integrity": "sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"@typescript-eslint/types": "8.53.1",
-				"@typescript-eslint/visitor-keys": "8.53.1"
-			},
-			"engines": {
-				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/typescript-eslint"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/tsconfig-utils": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.1.tgz",
-			"integrity": "sha512-qfvLXS6F6b1y43pnf0pPbXJ+YoXIC7HKg0UGZ27uMIemKMKA6XH2DTxsEDdpdN29D+vHV07x/pnlPNVLhdhWiA==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": 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 <6.0.0"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.1.tgz",
-			"integrity": "sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": 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/parser/node_modules/@typescript-eslint/typescript-estree": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.1.tgz",
-			"integrity": "sha512-RGlVipGhQAG4GxV1s34O91cxQ/vWiHJTDHbXRr0li2q/BGg3RR/7NM8QDWgkEgrwQYCvmJV9ichIwyoKCQ+DTg==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"@typescript-eslint/project-service": "8.53.1",
-				"@typescript-eslint/tsconfig-utils": "8.53.1",
-				"@typescript-eslint/types": "8.53.1",
-				"@typescript-eslint/visitor-keys": "8.53.1",
-				"debug": "^4.4.3",
-				"minimatch": "^9.0.5",
-				"semver": "^7.7.3",
-				"tinyglobby": "^0.2.15",
-				"ts-api-utils": "^2.4.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 <6.0.0"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.1.tgz",
-			"integrity": "sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"@typescript-eslint/types": "8.53.1",
-				"eslint-visitor-keys": "^4.2.1"
-			},
-			"engines": {
-				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/typescript-eslint"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/brace-expansion": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
-			"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"balanced-match": "^1.0.0"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/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,
-			"license": "Apache-2.0",
-			"optional": true,
-			"peer": true,
-			"engines": {
-				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-			},
-			"funding": {
-				"url": "https://opencollective.com/eslint"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/minimatch": {
-			"version": "9.0.5",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
-			"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
-			"dev": true,
-			"license": "ISC",
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"brace-expansion": "^2.0.1"
-			},
-			"engines": {
-				"node": ">=16 || 14 >=14.17"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/semver": {
-			"version": "7.7.3",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
-			"integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
-			"dev": true,
-			"license": "ISC",
-			"optional": true,
-			"peer": true,
-			"bin": {
-				"semver": "bin/semver.js"
-			},
-			"engines": {
-				"node": ">=10"
-			}
-		},
 		"node_modules/@typescript-eslint/project-service": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.50.0.tgz",
-			"integrity": "sha512-Cg/nQcL1BcoTijEWyx4mkVC56r8dj44bFDvBdygifuS20f3OZCHmFbjF34DPSi07kwlFvqfv/xOLnJ5DquxSGQ==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.0.tgz",
+			"integrity": "sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/tsconfig-utils": "^8.50.0",
-				"@typescript-eslint/types": "^8.50.0",
-				"debug": "^4.3.4"
+				"@typescript-eslint/tsconfig-utils": "^8.56.0",
+				"@typescript-eslint/types": "^8.56.0",
+				"debug": "^4.4.3"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3436,14 +3244,13 @@
 			}
 		},
 		"node_modules/@typescript-eslint/scope-manager": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.50.0.tgz",
-			"integrity": "sha512-xCwfuCZjhIqy7+HKxBLrDVT5q/iq7XBVBXLn57RTIIpelLtEIZHXAF/Upa3+gaCpeV1NNS5Z9A+ID6jn50VD4A==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.0.tgz",
+			"integrity": "sha512-7UiO/XwMHquH+ZzfVCfUNkIXlp/yQjjnlYUyYz7pfvlK3/EyyN6BK+emDmGNyQLBtLGaYrTAI6KOw8tFucWL2w==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/types": "8.50.0",
-				"@typescript-eslint/visitor-keys": "8.50.0"
+				"@typescript-eslint/types": "8.56.0",
+				"@typescript-eslint/visitor-keys": "8.56.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3454,11 +3261,10 @@
 			}
 		},
 		"node_modules/@typescript-eslint/tsconfig-utils": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.50.0.tgz",
-			"integrity": "sha512-vxd3G/ybKTSlm31MOA96gqvrRGv9RJ7LGtZCn2Vrc5htA0zCDvcMqUkifcjrWNNKXHUU3WCkYOzzVSFBd0wa2w==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.0.tgz",
+			"integrity": "sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 			},
@@ -3471,19 +3277,18 @@
 			}
 		},
 		"node_modules/@typescript-eslint/type-utils": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.50.0.tgz",
-			"integrity": "sha512-7OciHT2lKCewR0mFoBrvZJ4AXTMe/sYOe87289WAViOocEmDjjv8MvIOT2XESuKj9jp8u3SZYUSh89QA4S1kQw==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.56.0.tgz",
+			"integrity": "sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==",
 			"dev": true,
-			"license": "MIT",
 			"optional": true,
 			"peer": true,
 			"dependencies": {
-				"@typescript-eslint/types": "8.50.0",
-				"@typescript-eslint/typescript-estree": "8.50.0",
-				"@typescript-eslint/utils": "8.50.0",
-				"debug": "^4.3.4",
-				"ts-api-utils": "^2.1.0"
+				"@typescript-eslint/types": "8.56.0",
+				"@typescript-eslint/typescript-estree": "8.56.0",
+				"@typescript-eslint/utils": "8.56.0",
+				"debug": "^4.4.3",
+				"ts-api-utils": "^2.4.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3493,16 +3298,15 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			},
 			"peerDependencies": {
-				"eslint": "^8.57.0 || ^9.0.0",
+				"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
 				"typescript": ">=4.8.4 <6.0.0"
 			}
 		},
 		"node_modules/@typescript-eslint/types": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.50.0.tgz",
-			"integrity": "sha512-iX1mgmGrXdANhhITbpp2QQM2fGehBse9LbTf0sidWK6yg/NE+uhV5dfU1g6EYPlcReYmkE9QLPq/2irKAmtS9w==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.0.tgz",
+			"integrity": "sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 			},
@@ -3512,21 +3316,20 @@
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.50.0.tgz",
-			"integrity": "sha512-W7SVAGBR/IX7zm1t70Yujpbk+zdPq/u4soeFSknWFdXIFuWsBGBOUu/Tn/I6KHSKvSh91OiMuaSnYp3mtPt5IQ==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.0.tgz",
+			"integrity": "sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/project-service": "8.50.0",
-				"@typescript-eslint/tsconfig-utils": "8.50.0",
-				"@typescript-eslint/types": "8.50.0",
-				"@typescript-eslint/visitor-keys": "8.50.0",
-				"debug": "^4.3.4",
-				"minimatch": "^9.0.4",
-				"semver": "^7.6.0",
+				"@typescript-eslint/project-service": "8.56.0",
+				"@typescript-eslint/tsconfig-utils": "8.56.0",
+				"@typescript-eslint/types": "8.56.0",
+				"@typescript-eslint/visitor-keys": "8.56.0",
+				"debug": "^4.4.3",
+				"minimatch": "^9.0.5",
+				"semver": "^7.7.3",
 				"tinyglobby": "^0.2.15",
-				"ts-api-utils": "^2.1.0"
+				"ts-api-utils": "^2.4.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3544,7 +3347,6 @@
 			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
 			"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"balanced-match": "^1.0.0"
 			}
@@ -3554,7 +3356,6 @@
 			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
 			"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
 			"dev": true,
-			"license": "ISC",
 			"dependencies": {
 				"brace-expansion": "^2.0.1"
 			},
@@ -3566,11 +3367,10 @@
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
-			"version": "7.7.3",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
-			"integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+			"version": "7.7.4",
+			"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+			"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
 			"dev": true,
-			"license": "ISC",
 			"bin": {
 				"semver": "bin/semver.js"
 			},
@@ -3579,16 +3379,15 @@
 			}
 		},
 		"node_modules/@typescript-eslint/utils": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.50.0.tgz",
-			"integrity": "sha512-87KgUXET09CRjGCi2Ejxy3PULXna63/bMYv72tCAlDJC3Yqwln0HiFJ3VJMst2+mEtNtZu5oFvX4qJGjKsnAgg==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.56.0.tgz",
+			"integrity": "sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@eslint-community/eslint-utils": "^4.7.0",
-				"@typescript-eslint/scope-manager": "8.50.0",
-				"@typescript-eslint/types": "8.50.0",
-				"@typescript-eslint/typescript-estree": "8.50.0"
+				"@eslint-community/eslint-utils": "^4.9.1",
+				"@typescript-eslint/scope-manager": "8.56.0",
+				"@typescript-eslint/types": "8.56.0",
+				"@typescript-eslint/typescript-estree": "8.56.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3598,19 +3397,18 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			},
 			"peerDependencies": {
-				"eslint": "^8.57.0 || ^9.0.0",
+				"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
 				"typescript": ">=4.8.4 <6.0.0"
 			}
 		},
 		"node_modules/@typescript-eslint/visitor-keys": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.50.0.tgz",
-			"integrity": "sha512-Xzmnb58+Db78gT/CCj/PVCvK+zxbnsw6F+O1oheYszJbBSdEjVhQi3C/Xttzxgi/GLmpvOggRs1RFpiJ8+c34Q==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.0.tgz",
+			"integrity": "sha512-q+SL+b+05Ud6LbEE35qe4A99P+htKTKVbyiNEe45eCbJFyh/HVK9QXwlrbz+Q4L8SOW4roxSVwXYj4DMBT7Ieg==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/types": "8.50.0",
-				"eslint-visitor-keys": "^4.2.1"
+				"@typescript-eslint/types": "8.56.0",
+				"eslint-visitor-keys": "^5.0.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3621,13 +3419,12 @@
 			}
 		},
 		"node_modules/@typescript-eslint/visitor-keys/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==",
+			"version": "5.0.1",
+			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+			"integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
 			"dev": true,
-			"license": "Apache-2.0",
 			"engines": {
-				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+				"node": "^20.19.0 || ^22.13.0 || >=24"
 			},
 			"funding": {
 				"url": "https://opencollective.com/eslint"
@@ -4508,9 +4305,10 @@
 			}
 		},
 		"node_modules/ajv": {
-			"version": "6.12.6",
+			"version": "6.14.0",
+			"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+			"integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"fast-deep-equal": "^3.1.1",
 				"fast-json-stable-stringify": "^2.0.0",
@@ -5108,12 +4906,15 @@
 			]
 		},
 		"node_modules/baseline-browser-mapping": {
-			"version": "2.8.28",
-			"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.28.tgz",
-			"integrity": "sha512-gYjt7OIqdM0PcttNYP2aVrr2G0bMALkBaoehD4BuRGjAOtipg0b6wHg1yNL+s5zSnLZZrGHOw4IrND8CD+3oIQ==",
+			"version": "2.10.0",
+			"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz",
+			"integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==",
 			"dev": true,
 			"bin": {
-				"baseline-browser-mapping": "dist/cli.js"
+				"baseline-browser-mapping": "dist/cli.cjs"
+			},
+			"engines": {
+				"node": ">=6.0.0"
 			}
 		},
 		"node_modules/basic-ftp": {
@@ -5180,9 +4981,9 @@
 			"license": "ISC"
 		},
 		"node_modules/browserslist": {
-			"version": "4.28.0",
-			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz",
-			"integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+			"integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
 			"dev": true,
 			"funding": [
 				{
@@ -5199,11 +5000,11 @@
 				}
 			],
 			"dependencies": {
-				"baseline-browser-mapping": "^2.8.25",
-				"caniuse-lite": "^1.0.30001754",
-				"electron-to-chromium": "^1.5.249",
+				"baseline-browser-mapping": "^2.9.0",
+				"caniuse-lite": "^1.0.30001759",
+				"electron-to-chromium": "^1.5.263",
 				"node-releases": "^2.0.27",
-				"update-browserslist-db": "^1.1.4"
+				"update-browserslist-db": "^1.2.0"
 			},
 			"bin": {
 				"browserslist": "cli.js"
@@ -5320,9 +5121,9 @@
 			}
 		},
 		"node_modules/caniuse-lite": {
-			"version": "1.0.30001754",
-			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz",
-			"integrity": "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==",
+			"version": "1.0.30001770",
+			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001770.tgz",
+			"integrity": "sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw==",
 			"dev": true,
 			"funding": [
 				{
@@ -6643,19 +6444,18 @@
 			}
 		},
 		"node_modules/doiuse": {
-			"version": "6.0.5",
-			"resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.5.tgz",
-			"integrity": "sha512-ljuf9ndGqKST0GlPAYyCg04hbQAeR1xIIWVDjQaDDkoTY/Y1Vb+8FNoy6NuVuJIEEKe/nKUH8NRWjG7JJxZ9Eg==",
+			"version": "6.0.6",
+			"resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.6.tgz",
+			"integrity": "sha512-XuPRslcWHhQJ+WjCjimRUcNfhZvOiC0610FsY6WeSlzXvoZYtm6iOpR9K0N4wRoM/lP4i7LatT+IhltAzouSOw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"browserslist": "^4.24.0",
-				"caniuse-lite": "^1.0.30001669",
+				"browserslist": "^4.28.1",
+				"caniuse-lite": "^1.0.30001760",
 				"css-tokenize": "^1.0.1",
 				"duplexify": "^4.1.3",
 				"multimatch": "^5.0.0",
-				"postcss": "^8.4.47",
-				"source-map": "^0.7.4",
+				"postcss": "^8.5.6",
+				"source-map": "^0.7.6",
 				"yargs": "^17.7.2"
 			},
 			"bin": {
@@ -6666,13 +6466,12 @@
 			}
 		},
 		"node_modules/doiuse/node_modules/source-map": {
-			"version": "0.7.4",
-			"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
-			"integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+			"version": "0.7.6",
+			"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz",
+			"integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==",
 			"dev": true,
-			"license": "BSD-3-Clause",
 			"engines": {
-				"node": ">= 8"
+				"node": ">= 12"
 			}
 		},
 		"node_modules/dom-serializer": {
@@ -6927,9 +6726,9 @@
 			}
 		},
 		"node_modules/electron-to-chromium": {
-			"version": "1.5.252",
-			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.252.tgz",
-			"integrity": "sha512-53uTpjtRgS7gjIxZ4qCgFdNO2q+wJt/Z8+xAvxbCqXPJrY6h7ighUkadQmNMXH96crtpa6gPFNP7BF4UBGDuaA==",
+			"version": "1.5.302",
+			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz",
+			"integrity": "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==",
 			"dev": true
 		},
 		"node_modules/emittery": {
@@ -7612,11 +7411,10 @@
 			}
 		},
 		"node_modules/eslint-plugin-jest": {
-			"version": "29.5.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.5.0.tgz",
-			"integrity": "sha512-DAi9H8xN/TUuNOt+xDP1RqpCJLsSxBb5u1zXSpCyp0VAWGL8MBAg5t7/Dk+76iX7d1LhWu4DDH77IQNUolLDyg==",
+			"version": "29.15.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.15.0.tgz",
+			"integrity": "sha512-ZCGr7vTH2WSo2hrK5oM2RULFmMruQ7W3cX7YfwoTiPfzTGTFBMmrVIz45jZHd++cGKj/kWf02li/RhTGcANJSA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"@typescript-eslint/utils": "^8.0.0"
 			},
@@ -7625,8 +7423,9 @@
 			},
 			"peerDependencies": {
 				"@typescript-eslint/eslint-plugin": "^8.0.0",
-				"eslint": "^8.57.0 || ^9.0.0",
-				"jest": "*"
+				"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+				"jest": "*",
+				"typescript": ">=4.8.4 <6.0.0"
 			},
 			"peerDependenciesMeta": {
 				"@typescript-eslint/eslint-plugin": {
@@ -7634,6 +7433,9 @@
 				},
 				"jest": {
 					"optional": true
+				},
+				"typescript": {
+					"optional": true
 				}
 			}
 		},
@@ -8379,35 +8181,35 @@
 			}
 		},
 		"node_modules/expect": {
-			"version": "30.1.2",
-			"resolved": "https://registry.npmjs.org/expect/-/expect-30.1.2.tgz",
-			"integrity": "sha512-xvHszRavo28ejws8FpemjhwswGj4w/BetHIL8cU49u4sGyXDw2+p3YbeDbj6xzlxi6kWTjIRSTJ+9sNXPnF0Zg==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz",
+			"integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==",
 			"dev": true,
 			"dependencies": {
-				"@jest/expect-utils": "30.1.2",
+				"@jest/expect-utils": "30.2.0",
 				"@jest/get-type": "30.1.0",
-				"jest-matcher-utils": "30.1.2",
-				"jest-message-util": "30.1.0",
-				"jest-mock": "30.0.5",
-				"jest-util": "30.0.5"
+				"jest-matcher-utils": "30.2.0",
+				"jest-message-util": "30.2.0",
+				"jest-mock": "30.2.0",
+				"jest-util": "30.2.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/expect-webdriverio": {
-			"version": "5.4.2",
-			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.4.2.tgz",
-			"integrity": "sha512-7bc5I2dU3onKJaRhBdxKh/C+W+ot7R+RcRMCLTSR7cbfHM9Shk8ocbNDVvjrxaBdA52kbZONVSyhexp7cq2xNA==",
+			"version": "5.6.4",
+			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.6.4.tgz",
+			"integrity": "sha512-Bkoqs+39fHwjos51qab7ZWmvZrYNBbzgSAIykH2CrgLOLhHJXzC30DP9lZq2MsmaUsbBnN5c5m8VqAhOHTrCRw==",
 			"dev": true,
 			"dependencies": {
-				"@vitest/snapshot": "^3.2.4",
+				"@vitest/snapshot": "^4.0.16",
 				"deep-eql": "^5.0.2",
-				"expect": "^30.0.0",
-				"jest-matcher-utils": "^30.0.0"
+				"expect": "^30.2.0",
+				"jest-matcher-utils": "^30.2.0"
 			},
 			"engines": {
-				"node": ">=18 || >=20 || >=22"
+				"node": ">=20"
 			},
 			"peerDependencies": {
 				"@wdio/globals": "^9.0.0",
@@ -8427,25 +8229,25 @@
 			}
 		},
 		"node_modules/expect-webdriverio/node_modules/@vitest/pretty-format": {
-			"version": "3.2.4",
-			"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz",
-			"integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==",
+			"version": "4.0.18",
+			"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.18.tgz",
+			"integrity": "sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==",
 			"dev": true,
 			"dependencies": {
-				"tinyrainbow": "^2.0.0"
+				"tinyrainbow": "^3.0.3"
 			},
 			"funding": {
 				"url": "https://opencollective.com/vitest"
 			}
 		},
 		"node_modules/expect-webdriverio/node_modules/@vitest/snapshot": {
-			"version": "3.2.4",
-			"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz",
-			"integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==",
+			"version": "4.0.18",
+			"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.18.tgz",
+			"integrity": "sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==",
 			"dev": true,
 			"dependencies": {
-				"@vitest/pretty-format": "3.2.4",
-				"magic-string": "^0.30.17",
+				"@vitest/pretty-format": "4.0.18",
+				"magic-string": "^0.30.21",
 				"pathe": "^2.0.3"
 			},
 			"funding": {
@@ -8459,9 +8261,9 @@
 			"dev": true
 		},
 		"node_modules/expect-webdriverio/node_modules/tinyrainbow": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
-			"integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz",
+			"integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==",
 			"dev": true,
 			"engines": {
 				"node": ">=14.0.0"
@@ -8480,9 +8282,9 @@
 			}
 		},
 		"node_modules/expect/node_modules/@jest/types": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz",
-			"integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
+			"integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
 			"dev": true,
 			"dependencies": {
 				"@jest/pattern": "30.0.1",
@@ -8498,20 +8300,20 @@
 			}
 		},
 		"node_modules/expect/node_modules/@sinclair/typebox": {
-			"version": "0.34.41",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
-			"integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"node_modules/expect/node_modules/jest-mock": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.0.5.tgz",
-			"integrity": "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz",
+			"integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==",
 			"dev": true,
 			"dependencies": {
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.2.0",
 				"@types/node": "*",
-				"jest-util": "30.0.5"
+				"jest-util": "30.2.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -8606,9 +8408,9 @@
 			"license": "BSD-3-Clause"
 		},
 		"node_modules/fast-xml-parser": {
-			"version": "5.3.5",
-			"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.5.tgz",
-			"integrity": "sha512-JeaA2Vm9ffQKp9VjvfzObuMCjUYAp5WDYhRYL5LrBPY/jUDlUtOvDfot0vKSkB9tuX885BDHjtw4fZadD95wnA==",
+			"version": "5.3.7",
+			"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.7.tgz",
+			"integrity": "sha512-JzVLro9NQv92pOM/jTCR6mHlJh2FGwtomH8ZQjhFj/R29P2Fnj38OgPJVtcvYw6SuKClhgYuwUZf5b3rd8u2mA==",
 			"dev": true,
 			"funding": [
 				{
@@ -8616,7 +8418,6 @@
 					"url": "https://github.com/sponsors/NaturalIntelligence"
 				}
 			],
-			"license": "MIT",
 			"dependencies": {
 				"strnum": "^2.1.2"
 			},
@@ -10315,15 +10116,15 @@
 			}
 		},
 		"node_modules/jest-diff": {
-			"version": "30.1.2",
-			"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.1.2.tgz",
-			"integrity": "sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz",
+			"integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==",
 			"dev": true,
 			"dependencies": {
 				"@jest/diff-sequences": "30.0.1",
 				"@jest/get-type": "30.1.0",
 				"chalk": "^4.1.2",
-				"pretty-format": "30.0.5"
+				"pretty-format": "30.2.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -10342,9 +10143,9 @@
 			}
 		},
 		"node_modules/jest-diff/node_modules/@sinclair/typebox": {
-			"version": "0.34.41",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
-			"integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"node_modules/jest-diff/node_modules/ansi-styles": {
@@ -10360,9 +10161,9 @@
 			}
 		},
 		"node_modules/jest-diff/node_modules/pretty-format": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz",
-			"integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
+			"integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
 			"dev": true,
 			"dependencies": {
 				"@jest/schemas": "30.0.5",
@@ -10654,15 +10455,15 @@
 			}
 		},
 		"node_modules/jest-matcher-utils": {
-			"version": "30.1.2",
-			"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.1.2.tgz",
-			"integrity": "sha512-7ai16hy4rSbDjvPTuUhuV8nyPBd6EX34HkBsBcBX2lENCuAQ0qKCPb/+lt8OSWUa9WWmGYLy41PrEzkwRwoGZQ==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz",
+			"integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==",
 			"dev": true,
 			"dependencies": {
 				"@jest/get-type": "30.1.0",
 				"chalk": "^4.1.2",
-				"jest-diff": "30.1.2",
-				"pretty-format": "30.0.5"
+				"jest-diff": "30.2.0",
+				"pretty-format": "30.2.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -10681,9 +10482,9 @@
 			}
 		},
 		"node_modules/jest-matcher-utils/node_modules/@sinclair/typebox": {
-			"version": "0.34.41",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
-			"integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"node_modules/jest-matcher-utils/node_modules/ansi-styles": {
@@ -10699,9 +10500,9 @@
 			}
 		},
 		"node_modules/jest-matcher-utils/node_modules/pretty-format": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz",
-			"integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
+			"integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
 			"dev": true,
 			"dependencies": {
 				"@jest/schemas": "30.0.5",
@@ -10713,18 +10514,18 @@
 			}
 		},
 		"node_modules/jest-message-util": {
-			"version": "30.1.0",
-			"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.1.0.tgz",
-			"integrity": "sha512-HizKDGG98cYkWmaLUHChq4iN+oCENohQLb7Z5guBPumYs+/etonmNFlg1Ps6yN9LTPyZn+M+b/9BbnHx3WTMDg==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz",
+			"integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==",
 			"dev": true,
 			"dependencies": {
 				"@babel/code-frame": "^7.27.1",
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.2.0",
 				"@types/stack-utils": "^2.0.3",
 				"chalk": "^4.1.2",
 				"graceful-fs": "^4.2.11",
 				"micromatch": "^4.0.8",
-				"pretty-format": "30.0.5",
+				"pretty-format": "30.2.0",
 				"slash": "^3.0.0",
 				"stack-utils": "^2.0.6"
 			},
@@ -10745,9 +10546,9 @@
 			}
 		},
 		"node_modules/jest-message-util/node_modules/@jest/types": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz",
-			"integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
+			"integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
 			"dev": true,
 			"dependencies": {
 				"@jest/pattern": "30.0.1",
@@ -10763,9 +10564,9 @@
 			}
 		},
 		"node_modules/jest-message-util/node_modules/@sinclair/typebox": {
-			"version": "0.34.41",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
-			"integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"node_modules/jest-message-util/node_modules/ansi-styles": {
@@ -10781,9 +10582,9 @@
 			}
 		},
 		"node_modules/jest-message-util/node_modules/pretty-format": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz",
-			"integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
+			"integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
 			"dev": true,
 			"dependencies": {
 				"@jest/schemas": "30.0.5",
@@ -11212,12 +11013,12 @@
 			"license": "ISC"
 		},
 		"node_modules/jest-util": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.0.5.tgz",
-			"integrity": "sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz",
+			"integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==",
 			"dev": true,
 			"dependencies": {
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.2.0",
 				"@types/node": "*",
 				"chalk": "^4.1.2",
 				"ci-info": "^4.2.0",
@@ -11241,9 +11042,9 @@
 			}
 		},
 		"node_modules/jest-util/node_modules/@jest/types": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz",
-			"integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
+			"integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
 			"dev": true,
 			"dependencies": {
 				"@jest/pattern": "30.0.1",
@@ -11259,15 +11060,15 @@
 			}
 		},
 		"node_modules/jest-util/node_modules/@sinclair/typebox": {
-			"version": "0.34.41",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
-			"integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"node_modules/jest-util/node_modules/ci-info": {
-			"version": "4.3.0",
-			"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz",
-			"integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==",
+			"version": "4.4.0",
+			"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz",
+			"integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==",
 			"dev": true,
 			"funding": [
 				{
@@ -11939,9 +11740,9 @@
 			"license": "MIT"
 		},
 		"node_modules/magic-string": {
-			"version": "0.30.19",
-			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz",
-			"integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==",
+			"version": "0.30.21",
+			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+			"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
 			"dev": true,
 			"dependencies": {
 				"@jridgewell/sourcemap-codec": "^1.5.5"
@@ -11971,9 +11772,9 @@
 			}
 		},
 		"node_modules/markdown-it": {
-			"version": "14.1.0",
-			"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
-			"integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
+			"version": "14.1.1",
+			"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz",
+			"integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==",
 			"dev": true,
 			"dependencies": {
 				"argparse": "^2.0.1",
@@ -13358,9 +13159,10 @@
 			"license": "MIT"
 		},
 		"node_modules/qs": {
-			"version": "6.5.3",
+			"version": "6.5.5",
+			"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.5.tgz",
+			"integrity": "sha512-mzR4sElr1bfCaPJe7m8ilJ6ZXdDaGoObcYR0ZHSsktM/Lt21MVHj5De30GQH2eiZ1qGRTO7LCAzQsUeXTNexWQ==",
 			"dev": true,
-			"license": "BSD-3-Clause",
 			"engines": {
 				"node": ">=0.6"
 			}
@@ -14941,11 +14743,10 @@
 			}
 		},
 		"node_modules/table/node_modules/ajv": {
-			"version": "8.17.1",
-			"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
-			"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+			"version": "8.18.0",
+			"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+			"integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"fast-deep-equal": "^3.1.3",
 				"fast-uri": "^3.0.1",
@@ -15299,16 +15100,17 @@
 			}
 		},
 		"node_modules/typescript": {
-			"version": "4.9.5",
+			"version": "5.9.3",
+			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+			"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
 			"dev": true,
-			"license": "Apache-2.0",
 			"peer": true,
 			"bin": {
 				"tsc": "bin/tsc",
 				"tsserver": "bin/tsserver"
 			},
 			"engines": {
-				"node": ">=4.2.0"
+				"node": ">=14.17"
 			}
 		},
 		"node_modules/uc.micro": {
@@ -15360,9 +15162,9 @@
 			}
 		},
 		"node_modules/update-browserslist-db": {
-			"version": "1.1.4",
-			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz",
-			"integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==",
+			"version": "1.2.3",
+			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+			"integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
 			"dev": true,
 			"funding": [
 				{
-- 
2.47.3

$ date
--- stdout ---
Sat Feb 21 11:42:00 UTC 2026

--- end ---
$ git clone file:///srv/git/mediawiki-extensions-CodeMirror.git /src/repo --depth=1 -b master
--- stderr ---
Cloning into '/src/repo'...
--- stdout ---

--- end ---
$ git config user.name libraryupgrader
--- stdout ---

--- end ---
$ git config user.email tools.libraryupgrader@tools.wmflabs.org
--- stdout ---

--- end ---
$ git submodule update --init
--- stdout ---

--- end ---
$ grr init
--- stdout ---
Installed commit-msg hook.

--- end ---
$ git show-ref refs/heads/master
--- stdout ---
2f4cc5ff4c1ab146b3bffefcf9e7dfd2a342fb76 refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@eslint/eslintrc": {
      "name": "@eslint/eslintrc",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint"
      ],
      "range": "0.0.1 || >=0.1.1",
      "nodes": [
        "node_modules/@eslint/eslintrc"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "@humanwhocodes/config-array": {
      "name": "@humanwhocodes/config-array",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@humanwhocodes/config-array"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "@jest/core": {
      "name": "@jest/core",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/reporters",
        "@jest/transform",
        "jest-config",
        "jest-resolve-dependencies",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot"
      ],
      "effects": [
        "jest",
        "jest-cli"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/core"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "@jest/expect": {
      "name": "@jest/expect",
      "severity": "high",
      "isDirect": false,
      "via": [
        "jest-snapshot"
      ],
      "effects": [
        "@jest/globals",
        "jest-circus"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/expect"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "@jest/globals": {
      "name": "@jest/globals",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/expect"
      ],
      "effects": [
        "jest-runtime"
      ],
      "range": ">=28.0.0-alpha.0",
      "nodes": [
        "node_modules/@jest/globals"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "@jest/reporters": {
      "name": "@jest/reporters",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/transform",
        "glob"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@jest/reporters"
      ],
      "fixAvailable": true
    },
    "@jest/transform": {
      "name": "@jest/transform",
      "severity": "high",
      "isDirect": false,
      "via": [
        "babel-plugin-istanbul"
      ],
      "effects": [
        "babel-jest",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/transform"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "@stylistic/eslint-plugin": {
      "name": "@stylistic/eslint-plugin",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@typescript-eslint/utils"
      ],
      "effects": [],
      "range": "2.7.0-beta.0 - 5.0.0-beta.6 || >=6.0.0-beta.1",
      "nodes": [
        "node_modules/@stylistic/eslint-plugin"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/eslint-plugin": {
      "name": "@typescript-eslint/eslint-plugin",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@typescript-eslint/parser",
        "@typescript-eslint/type-utils",
        "@typescript-eslint/utils",
        "eslint"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@typescript-eslint/eslint-plugin",
        "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/parser": {
      "name": "@typescript-eslint/parser",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "eslint"
      ],
      "effects": [
        "@typescript-eslint/eslint-plugin",
        "eslint-config-wikimedia"
      ],
      "range": ">=1.1.1-alpha.0",
      "nodes": [
        "node_modules/@typescript-eslint/parser",
        "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/type-utils": {
      "name": "@typescript-eslint/type-utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "@typescript-eslint/utils",
        "eslint"
      ],
      "effects": [
        "@typescript-eslint/eslint-plugin"
      ],
      "range": ">=5.62.1-alpha.0",
      "nodes": [
        "node_modules/@typescript-eslint/type-utils",
        "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/parser",
        "@typescript-eslint/type-utils",
        "@typescript-eslint/utils"
      ],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree",
        "node_modules/@typescript-eslint/typescript-estree",
        "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/typescript-estree"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/utils": {
      "name": "@typescript-eslint/utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "eslint"
      ],
      "effects": [
        "@stylistic/eslint-plugin",
        "eslint-plugin-jest"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@typescript-eslint/utils",
        "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": true
    },
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "create-wdio",
        "webdriverio"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/cli"
      ],
      "fixAvailable": false
    },
    "@wdio/config": {
      "name": "@wdio/config",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner",
        "webdriver",
        "webdriverio"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/config"
      ],
      "fixAvailable": false
    },
    "@wdio/globals": {
      "name": "@wdio/globals",
      "severity": "high",
      "isDirect": false,
      "via": [
        "expect-webdriverio",
        "webdriverio"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/globals"
      ],
      "fixAvailable": false
    },
    "@wdio/local-runner": {
      "name": "@wdio/local-runner",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/runner",
        "expect-webdriverio"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/local-runner"
      ],
      "fixAvailable": false
    },
    "@wdio/mocha-framework": {
      "name": "@wdio/mocha-framework",
      "severity": "high",
      "isDirect": true,
      "via": [
        "mocha"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": false
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "expect-webdriverio",
        "webdriver",
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": false
    },
    "@wikimedia/mw-node-qunit": {
      "name": "@wikimedia/mw-node-qunit",
      "severity": "high",
      "isDirect": true,
      "via": [
        "glob"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@wikimedia/mw-node-qunit"
      ],
      "fixAvailable": false
    },
    "ajv": {
      "name": "ajv",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1113398,
          "name": "ajv",
          "dependency": "ajv",
          "title": "ajv has ReDoS when using `$data` option",
          "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<6.14.0"
        },
        {
          "source": 1113399,
          "name": "ajv",
          "dependency": "ajv",
          "title": "ajv has ReDoS when using `$data` option",
          "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=7.0.0-alpha.0 <8.18.0"
        }
      ],
      "effects": [],
      "range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0",
      "nodes": [
        "node_modules/ajv",
        "node_modules/table/node_modules/ajv"
      ],
      "fixAvailable": true
    },
    "archiver": {
      "name": "archiver",
      "severity": "high",
      "isDirect": false,
      "via": [
        "archiver-utils",
        "readdir-glob",
        "zip-stream"
      ],
      "effects": [
        "webdriverio"
      ],
      "range": ">=0.20.0",
      "nodes": [
        "node_modules/archiver"
      ],
      "fixAvailable": false
    },
    "archiver-utils": {
      "name": "archiver-utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "archiver",
        "zip-stream"
      ],
      "range": ">=0.2.0",
      "nodes": [
        "node_modules/archiver-utils"
      ],
      "fixAvailable": false
    },
    "babel-jest": {
      "name": "babel-jest",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/transform",
        "babel-plugin-istanbul"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=24.0.0-alpha.0",
      "nodes": [
        "node_modules/babel-jest"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "babel-plugin-istanbul": {
      "name": "babel-plugin-istanbul",
      "severity": "high",
      "isDirect": false,
      "via": [
        "test-exclude"
      ],
      "effects": [
        "@jest/transform",
        "babel-jest"
      ],
      "range": ">=5.0.1",
      "nodes": [
        "node_modules/babel-plugin-istanbul"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "create-jest": {
      "name": "create-jest",
      "severity": "high",
      "isDirect": false,
      "via": [
        "jest-config"
      ],
      "effects": [
        "jest-cli"
      ],
      "range": ">=29.7.0",
      "nodes": [
        "node_modules/create-jest"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "create-wdio": {
      "name": "create-wdio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "ejs",
        "recursive-readdir"
      ],
      "effects": [
        "@wdio/cli"
      ],
      "range": ">=9.17.0",
      "nodes": [
        "node_modules/create-wdio"
      ],
      "fixAvailable": false
    },
    "doiuse": {
      "name": "doiuse",
      "severity": "high",
      "isDirect": false,
      "via": [
        "multimatch"
      ],
      "effects": [
        "stylelint-no-unsupported-browser-features"
      ],
      "range": ">=2.2.0",
      "nodes": [
        "node_modules/doiuse"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "ejs": {
      "name": "ejs",
      "severity": "high",
      "isDirect": false,
      "via": [
        "jake"
      ],
      "effects": [],
      "range": ">=3.1.2",
      "nodes": [
        "node_modules/ejs"
      ],
      "fixAvailable": true
    },
    "eslint": {
      "name": "eslint",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@eslint/eslintrc",
        "@humanwhocodes/config-array",
        "file-entry-cache",
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/eslint-plugin",
        "@typescript-eslint/parser",
        "@typescript-eslint/type-utils",
        "@typescript-eslint/utils",
        "eslint-config-wikimedia",
        "eslint-plugin-jest",
        "eslint-plugin-jsdoc",
        "eslint-plugin-vue"
      ],
      "range": "0.7.1 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2",
      "nodes": [
        "node_modules/eslint"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "eslint-config-wikimedia": {
      "name": "eslint-config-wikimedia",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@stylistic/eslint-plugin",
        "@typescript-eslint/eslint-plugin",
        "@typescript-eslint/parser",
        "eslint",
        "eslint-plugin-jsdoc",
        "eslint-plugin-vue"
      ],
      "effects": [],
      "range": ">=0.9.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-jest": {
      "name": "eslint-plugin-jest",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@typescript-eslint/utils",
        "eslint"
      ],
      "effects": [],
      "range": ">=25.0.1",
      "nodes": [
        "node_modules/eslint-plugin-jest"
      ],
      "fixAvailable": true
    },
    "eslint-plugin-jsdoc": {
      "name": "eslint-plugin-jsdoc",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "8.4.4 - 62.6.1",
      "nodes": [
        "node_modules/eslint-plugin-jsdoc"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-vue": {
      "name": "eslint-plugin-vue",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "5.0.0-beta.0 - 10.7.0",
      "nodes": [
        "node_modules/eslint-plugin-vue"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "expect-webdriverio": {
      "name": "expect-webdriverio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/globals",
        "webdriverio"
      ],
      "effects": [
        "@wdio/globals",
        "@wdio/local-runner",
        "@wdio/runner"
      ],
      "range": "4.0.0-alpha.0 - 4.0.0-alpha.6 || >=4.0.1",
      "nodes": [
        "node_modules/expect-webdriverio"
      ],
      "fixAvailable": false
    },
    "fast-xml-parser": {
      "name": "fast-xml-parser",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113331,
          "name": "fast-xml-parser",
          "dependency": "fast-xml-parser",
          "title": "fast-xml-parser affected by DoS through entity expansion in DOCTYPE (no expansion limit)",
          "url": "https://github.com/advisories/GHSA-jmr7-xgp7-cmfj",
          "severity": "high",
          "cwe": [
            "CWE-776"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=4.1.3 <5.3.6"
        }
      ],
      "effects": [],
      "range": "4.1.3 - 5.3.5",
      "nodes": [
        "node_modules/fast-xml-parser"
      ],
      "fixAvailable": true
    },
    "file-entry-cache": {
      "name": "file-entry-cache",
      "severity": "high",
      "isDirect": false,
      "via": [
        "flat-cache"
      ],
      "effects": [
        "eslint"
      ],
      "range": "4.0.0 - 7.0.2",
      "nodes": [
        "node_modules/file-entry-cache"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "filelist": {
      "name": "filelist",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "jake"
      ],
      "range": ">=0.0.2",
      "nodes": [
        "node_modules/filelist"
      ],
      "fixAvailable": true
    },
    "flat-cache": {
      "name": "flat-cache",
      "severity": "high",
      "isDirect": false,
      "via": [
        "rimraf"
      ],
      "effects": [
        "file-entry-cache"
      ],
      "range": "1.3.4 - 4.0.0",
      "nodes": [
        "node_modules/flat-cache"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "form-data": {
      "name": "form-data",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1109540,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data uses unsafe random function in form-data for choosing boundary",
          "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
          "severity": "critical",
          "cwe": [
            "CWE-330"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<2.5.4"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<2.5.4",
      "nodes": [
        "node_modules/request/node_modules/form-data"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "glob": {
      "name": "glob",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@jest/reporters",
        "@wdio/config",
        "@wikimedia/mw-node-qunit",
        "archiver-utils",
        "jest-config",
        "jest-runtime",
        "mocha",
        "rimraf",
        "test-exclude"
      ],
      "range": "3.0.0 - 10.5.0",
      "nodes": [
        "node_modules/@jest/reporters/node_modules/glob",
        "node_modules/@wdio/config/node_modules/glob",
        "node_modules/@wikimedia/mw-node-qunit/node_modules/glob",
        "node_modules/archiver-utils/node_modules/glob",
        "node_modules/glob",
        "node_modules/jest-config/node_modules/glob",
        "node_modules/jest-runtime/node_modules/glob",
        "node_modules/rimraf/node_modules/glob",
        "node_modules/test-exclude/node_modules/glob"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "jake": {
      "name": "jake",
      "severity": "high",
      "isDirect": false,
      "via": [
        "filelist"
      ],
      "effects": [
        "ejs"
      ],
      "range": ">=10.6.1",
      "nodes": [
        "node_modules/jake"
      ],
      "fixAvailable": true
    },
    "jest": {
      "name": "jest",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@jest/core",
        "jest-cli"
      ],
      "effects": [],
      "range": ">=19.1.0-alpha.eed82034",
      "nodes": [
        "node_modules/jest"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "jest-circus": {
      "name": "jest-circus",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/expect",
        "jest-runtime",
        "jest-snapshot"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=25.2.4",
      "nodes": [
        "node_modules/jest-circus"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "jest-cli": {
      "name": "jest-cli",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/core",
        "create-jest",
        "jest-config"
      ],
      "effects": [
        "jest"
      ],
      "range": ">=19.1.0-alpha.eed82034",
      "nodes": [
        "node_modules/jest-cli"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "jest-config": {
      "name": "jest-config",
      "severity": "high",
      "isDirect": false,
      "via": [
        "babel-jest",
        "glob",
        "jest-circus",
        "jest-runner"
      ],
      "effects": [
        "@jest/core",
        "create-jest",
        "jest-cli"
      ],
      "range": ">=19.1.0-alpha.eed82034",
      "nodes": [
        "node_modules/jest-config"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "jest-resolve-dependencies": {
      "name": "jest-resolve-dependencies",
      "severity": "high",
      "isDirect": false,
      "via": [
        "jest-snapshot"
      ],
      "effects": [],
      "range": ">=27.0.0-next.0",
      "nodes": [
        "node_modules/jest-resolve-dependencies"
      ],
      "fixAvailable": true
    },
    "jest-runner": {
      "name": "jest-runner",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/transform",
        "jest-runtime"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=24.0.0-alpha.0",
      "nodes": [
        "node_modules/jest-runner"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "jest-runtime": {
      "name": "jest-runtime",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/globals",
        "@jest/transform",
        "glob",
        "jest-snapshot"
      ],
      "effects": [
        "jest-circus",
        "jest-runner"
      ],
      "range": ">=24.0.0-alpha.0",
      "nodes": [
        "node_modules/jest-runtime"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "jest-snapshot": {
      "name": "jest-snapshot",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/transform"
      ],
      "effects": [
        "@jest/core",
        "@jest/expect",
        "jest-circus",
        "jest-resolve-dependencies",
        "jest-runtime"
      ],
      "range": ">=27.0.0-next.0",
      "nodes": [
        "node_modules/jest-snapshot"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "markdown-it": {
      "name": "markdown-it",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1113190,
          "name": "markdown-it",
          "dependency": "markdown-it",
          "title": "markdown-it is has a Regular Expression Denial of Service (ReDoS)",
          "url": "https://github.com/advisories/GHSA-38c4-r59v-3vqw",
          "severity": "moderate",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=13.0.0 <14.1.1"
        }
      ],
      "effects": [],
      "range": "13.0.0 - 14.1.0",
      "nodes": [
        "node_modules/markdown-it"
      ],
      "fixAvailable": true
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113371,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
          "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<10.2.1"
        }
      ],
      "effects": [
        "@eslint/eslintrc",
        "@humanwhocodes/config-array",
        "@typescript-eslint/typescript-estree",
        "eslint",
        "filelist",
        "glob",
        "mocha",
        "multimatch",
        "readdir-glob",
        "recursive-readdir",
        "test-exclude"
      ],
      "range": "<10.2.1",
      "nodes": [
        "node_modules/@typescript-eslint/parser/node_modules/minimatch",
        "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/eslint-config-wikimedia/node_modules/minimatch",
        "node_modules/filelist/node_modules/minimatch",
        "node_modules/glob/node_modules/minimatch",
        "node_modules/minimatch",
        "node_modules/mocha/node_modules/minimatch",
        "node_modules/readdir-glob/node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "mocha": {
      "name": "mocha",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "@wdio/mocha-framework"
      ],
      "range": ">=1.10.0",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": false
    },
    "multimatch": {
      "name": "multimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "doiuse"
      ],
      "range": "<=7.0.0",
      "nodes": [
        "node_modules/multimatch"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki"
      ],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "qs": {
      "name": "qs",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113132,
          "name": "qs",
          "dependency": "qs",
          "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
          "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
          "severity": "high",
          "cwe": [
            "CWE-20"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<6.14.1"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<6.14.1",
      "nodes": [
        "node_modules/qs"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "readdir-glob": {
      "name": "readdir-glob",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "archiver"
      ],
      "range": "<=2.0.1",
      "nodes": [
        "node_modules/readdir-glob"
      ],
      "fixAvailable": false
    },
    "recursive-readdir": {
      "name": "recursive-readdir",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "create-wdio"
      ],
      "range": ">=1.2.0",
      "nodes": [
        "node_modules/recursive-readdir"
      ],
      "fixAvailable": false
    },
    "request": {
      "name": "request",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "form-data",
        "qs",
        "tough-cookie"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "rimraf": {
      "name": "rimraf",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "flat-cache"
      ],
      "range": "2.3.0 - 3.0.2 || 4.2.0 - 5.0.10",
      "nodes": [
        "node_modules/rimraf"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "stylelint-config-wikimedia": {
      "name": "stylelint-config-wikimedia",
      "severity": "high",
      "isDirect": true,
      "via": [
        "stylelint-no-unsupported-browser-features"
      ],
      "effects": [],
      "range": ">=0.10.2",
      "nodes": [
        "node_modules/stylelint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "stylelint-no-unsupported-browser-features": {
      "name": "stylelint-no-unsupported-browser-features",
      "severity": "high",
      "isDirect": false,
      "via": [
        "doiuse"
      ],
      "effects": [
        "stylelint-config-wikimedia"
      ],
      "range": "*",
      "nodes": [
        "node_modules/stylelint-no-unsupported-browser-features"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "test-exclude": {
      "name": "test-exclude",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "babel-plugin-istanbul"
      ],
      "range": "4.2.2 || >=5.0.0",
      "nodes": [
        "node_modules/test-exclude"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "19.0.2",
        "isSemVerMajor": true
      }
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097682,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/request/node_modules/tough-cookie"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "wdio-mediawiki": {
      "name": "wdio-mediawiki",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot"
      ],
      "effects": [],
      "range": "<=5.1.0",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "webdriver": {
      "name": "webdriver",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config"
      ],
      "effects": [
        "@wdio/runner"
      ],
      "range": ">=5.0.0-alpha.2",
      "nodes": [
        "node_modules/webdriver"
      ],
      "fixAvailable": false
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "archiver",
        "webdriver"
      ],
      "effects": [
        "@wdio/globals",
        "expect-webdriverio"
      ],
      "range": ">=5.0.0-alpha.2",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": false
    },
    "zip-stream": {
      "name": "zip-stream",
      "severity": "high",
      "isDirect": false,
      "via": [
        "archiver-utils"
      ],
      "effects": [],
      "range": "0.8.0 - 6.0.1",
      "nodes": [
        "node_modules/zip-stream"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 5,
      "high": 61,
      "critical": 2,
      "total": 68
    },
    "dependencies": {
      "prod": 1,
      "dev": 1309,
      "optional": 57,
      "peer": 30,
      "peerOptional": 0,
      "total": 1309
    }
  }
}

--- end ---
$ /usr/bin/composer install
--- stderr ---
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 38 installs, 0 updates, 0 removals
  - Locking composer/pcre (3.3.2)
  - Locking composer/semver (3.4.4)
  - Locking composer/spdx-licenses (1.5.9)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.0)
  - Locking doctrine/deprecations (1.1.6)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking mediawiki/mediawiki-codesniffer (v49.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.18.0)
  - Locking mediawiki/minus-x (2.0.0)
  - Locking mediawiki/phan-taint-check-plugin (8.0.0)
  - Locking microsoft/tolerant-php-parser (v0.1.2)
  - Locking netresearch/jsonmapper (v4.5.0)
  - Locking phan/phan (5.5.2)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking php-parallel-lint/php-parallel-lint (v1.4.0)
  - Locking phpcsstandards/phpcsextra (1.4.0)
  - Locking phpcsstandards/phpcsutils (1.2.2)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.6.6)
  - Locking phpdocumentor/type-resolver (1.12.0)
  - Locking phpstan/phpdoc-parser (2.3.2)
  - Locking psr/container (2.0.2)
  - Locking psr/log (3.0.2)
  - Locking sabre/event (5.1.7)
  - Locking squizlabs/php_codesniffer (3.13.5)
  - Locking symfony/console (v7.4.4)
  - Locking symfony/deprecation-contracts (v3.6.0)
  - Locking symfony/polyfill-ctype (v1.33.0)
  - Locking symfony/polyfill-intl-grapheme (v1.33.0)
  - Locking symfony/polyfill-intl-normalizer (v1.33.0)
  - Locking symfony/polyfill-mbstring (v1.33.0)
  - Locking symfony/polyfill-php80 (v1.33.0)
  - Locking symfony/service-contracts (v3.6.1)
  - Locking symfony/string (v8.0.4)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (2.1.5)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 38 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Installing squizlabs/php_codesniffer (3.13.5): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.2.0): Extracting archive
  - Installing composer/pcre (3.3.2): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.2.2): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.4.0): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.33.0): Extracting archive
  - Installing composer/spdx-licenses (1.5.9): Extracting archive
  - Installing composer/semver (3.4.4): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v49.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/polyfill-php80 (v1.33.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.33.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.33.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.33.0): Extracting archive
  - Installing symfony/string (v8.0.4): Extracting archive
  - Installing symfony/deprecation-contracts (v3.6.0): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.6.1): Extracting archive
  - Installing symfony/console (v7.4.4): Extracting archive
  - Installing sabre/event (5.1.7): Extracting archive
  - Installing netresearch/jsonmapper (v4.5.0): Extracting archive
  - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive
  - Installing webmozart/assert (2.1.5): Extracting archive
  - Installing phpstan/phpdoc-parser (2.3.2): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing doctrine/deprecations (1.1.6): Extracting archive
  - Installing phpdocumentor/type-resolver (1.12.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.6.6): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing psr/log (3.0.2): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (5.5.2): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (8.0.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.18.0): Extracting archive
  - Installing mediawiki/minus-x (2.0.0): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
  0/36 [>---------------------------]   0%
 28/36 [=====================>------]  77%
 35/36 [===========================>]  97%
 36/36 [============================] 100%
1 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
17 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils

--- end ---
Upgrading c:mediawiki/minus-x from 2.0.0 -> 2.0.1
$ /usr/bin/composer update
--- stderr ---
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 1 update, 0 removals
  - Upgrading mediawiki/minus-x (2.0.0 => 2.0.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 1 update, 0 removals
  - Upgrading mediawiki/minus-x (2.0.0 => 2.0.1): Extracting archive
Generating autoload files
17 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found.
--- stdout ---

--- end ---
$ /usr/bin/composer install
--- stderr ---
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Generating autoload files
17 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---

--- end ---
$ /usr/bin/composer test
--- stderr ---
> parallel-lint . --exclude vendor --exclude node_modules
> phpcs -sp --cache
> minus-x check .
--- stdout ---
PHP 8.4.18 | 10 parallel jobs
...............                                              15/15 (100%)


Checked 15 files in 0.1 seconds
No syntax error found
............... 15 / 15 (100%)


Time: 370ms; Memory: 12MB

MinusX
======
Processing /src/repo...
.............................................................
.............................................................
.............................................................
.............................................................
........................................................
All good!

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@eslint/eslintrc": {
      "name": "@eslint/eslintrc",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint"
      ],
      "range": "0.0.1 || >=0.1.1",
      "nodes": [
        "node_modules/@eslint/eslintrc"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "@humanwhocodes/config-array": {
      "name": "@humanwhocodes/config-array",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@humanwhocodes/config-array"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "@jest/core": {
      "name": "@jest/core",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/reporters",
        "@jest/transform",
        "jest-config",
        "jest-resolve-dependencies",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot"
      ],
      "effects": [
        "jest",
        "jest-cli"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/core"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/expect": {
      "name": "@jest/expect",
      "severity": "high",
      "isDirect": false,
      "via": [
        "jest-snapshot"
      ],
      "effects": [
        "@jest/globals",
        "jest-circus"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/expect"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/globals": {
      "name": "@jest/globals",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/expect"
      ],
      "effects": [
        "jest-runtime"
      ],
      "range": ">=28.0.0-alpha.0",
      "nodes": [
        "node_modules/@jest/globals"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/reporters": {
      "name": "@jest/reporters",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/transform",
        "glob"
      ],
      "effects": [
        "@jest/core"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/reporters"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/transform": {
      "name": "@jest/transform",
      "severity": "high",
      "isDirect": false,
      "via": [
        "babel-plugin-istanbul"
      ],
      "effects": [
        "babel-jest",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/transform"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/eslint-plugin": {
      "name": "@typescript-eslint/eslint-plugin",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@typescript-eslint/type-utils",
        "@typescript-eslint/utils",
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "<=8.55.1-alpha.3",
      "nodes": [
        "node_modules/@typescript-eslint/eslint-plugin",
        "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/parser": {
      "name": "@typescript-eslint/parser",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "eslint"
      ],
      "effects": [],
      "range": ">=1.1.1-alpha.0",
      "nodes": [
        "node_modules/@typescript-eslint/parser",
        "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/type-utils": {
      "name": "@typescript-eslint/type-utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "@typescript-eslint/utils",
        "eslint"
      ],
      "effects": [
        "@typescript-eslint/eslint-plugin"
      ],
      "range": ">=5.9.2-alpha.0",
      "nodes": [
        "node_modules/@typescript-eslint/type-utils",
        "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/parser",
        "@typescript-eslint/type-utils",
        "@typescript-eslint/utils"
      ],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree",
        "node_modules/@typescript-eslint/typescript-estree",
        "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/typescript-estree"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/utils": {
      "name": "@typescript-eslint/utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "eslint"
      ],
      "effects": [
        "@typescript-eslint/eslint-plugin",
        "@typescript-eslint/type-utils"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@typescript-eslint/utils",
        "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "create-wdio",
        "webdriverio"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/cli"
      ],
      "fixAvailable": false
    },
    "@wdio/config": {
      "name": "@wdio/config",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner",
        "webdriver",
        "webdriverio"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/config"
      ],
      "fixAvailable": false
    },
    "@wdio/globals": {
      "name": "@wdio/globals",
      "severity": "high",
      "isDirect": false,
      "via": [
        "expect-webdriverio",
        "webdriverio"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/globals"
      ],
      "fixAvailable": false
    },
    "@wdio/local-runner": {
      "name": "@wdio/local-runner",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/runner",
        "expect-webdriverio"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/local-runner"
      ],
      "fixAvailable": false
    },
    "@wdio/mocha-framework": {
      "name": "@wdio/mocha-framework",
      "severity": "high",
      "isDirect": true,
      "via": [
        "mocha"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": false
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "expect-webdriverio",
        "webdriver",
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": false
    },
    "@wikimedia/mw-node-qunit": {
      "name": "@wikimedia/mw-node-qunit",
      "severity": "high",
      "isDirect": true,
      "via": [
        "glob"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@wikimedia/mw-node-qunit"
      ],
      "fixAvailable": false
    },
    "ajv": {
      "name": "ajv",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1113398,
          "name": "ajv",
          "dependency": "ajv",
          "title": "ajv has ReDoS when using `$data` option",
          "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<6.14.0"
        },
        {
          "source": 1113399,
          "name": "ajv",
          "dependency": "ajv",
          "title": "ajv has ReDoS when using `$data` option",
          "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=7.0.0-alpha.0 <8.18.0"
        }
      ],
      "effects": [],
      "range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0",
      "nodes": [
        "node_modules/ajv",
        "node_modules/table/node_modules/ajv"
      ],
      "fixAvailable": true
    },
    "archiver": {
      "name": "archiver",
      "severity": "high",
      "isDirect": false,
      "via": [
        "archiver-utils",
        "readdir-glob",
        "zip-stream"
      ],
      "effects": [
        "webdriverio"
      ],
      "range": ">=0.20.0",
      "nodes": [
        "node_modules/archiver"
      ],
      "fixAvailable": false
    },
    "archiver-utils": {
      "name": "archiver-utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "archiver",
        "zip-stream"
      ],
      "range": ">=0.2.0",
      "nodes": [
        "node_modules/archiver-utils"
      ],
      "fixAvailable": false
    },
    "babel-jest": {
      "name": "babel-jest",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/transform",
        "babel-plugin-istanbul"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=24.0.0-alpha.0",
      "nodes": [
        "node_modules/babel-jest"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "babel-plugin-istanbul": {
      "name": "babel-plugin-istanbul",
      "severity": "high",
      "isDirect": false,
      "via": [
        "test-exclude"
      ],
      "effects": [
        "@jest/transform",
        "babel-jest"
      ],
      "range": ">=5.0.1",
      "nodes": [
        "node_modules/babel-plugin-istanbul"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "create-jest": {
      "name": "create-jest",
      "severity": "high",
      "isDirect": false,
      "via": [
        "jest-config"
      ],
      "effects": [
        "jest-cli"
      ],
      "range": ">=29.7.0",
      "nodes": [
        "node_modules/create-jest"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "create-wdio": {
      "name": "create-wdio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "ejs",
        "recursive-readdir"
      ],
      "effects": [
        "@wdio/cli"
      ],
      "range": ">=9.17.0",
      "nodes": [
        "node_modules/create-wdio"
      ],
      "fixAvailable": false
    },
    "doiuse": {
      "name": "doiuse",
      "severity": "high",
      "isDirect": false,
      "via": [
        "multimatch"
      ],
      "effects": [
        "stylelint-no-unsupported-browser-features"
      ],
      "range": ">=2.2.0",
      "nodes": [
        "node_modules/doiuse"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "ejs": {
      "name": "ejs",
      "severity": "high",
      "isDirect": false,
      "via": [
        "jake"
      ],
      "effects": [],
      "range": ">=3.1.2",
      "nodes": [
        "node_modules/ejs"
      ],
      "fixAvailable": true
    },
    "eslint": {
      "name": "eslint",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@eslint/eslintrc",
        "@humanwhocodes/config-array",
        "file-entry-cache",
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/eslint-plugin",
        "@typescript-eslint/parser",
        "@typescript-eslint/type-utils",
        "@typescript-eslint/utils",
        "eslint-config-wikimedia",
        "eslint-plugin-jest",
        "eslint-plugin-jsdoc",
        "eslint-plugin-vue"
      ],
      "range": "0.7.1 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2",
      "nodes": [
        "node_modules/eslint"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "eslint-config-wikimedia": {
      "name": "eslint-config-wikimedia",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@typescript-eslint/eslint-plugin",
        "@typescript-eslint/parser",
        "eslint",
        "eslint-plugin-jsdoc",
        "eslint-plugin-vue"
      ],
      "effects": [],
      "range": ">=0.9.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-jest": {
      "name": "eslint-plugin-jest",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint"
      ],
      "effects": [],
      "range": "25.0.1 - 29.12.2",
      "nodes": [
        "node_modules/eslint-plugin-jest"
      ],
      "fixAvailable": true
    },
    "eslint-plugin-jsdoc": {
      "name": "eslint-plugin-jsdoc",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "8.4.4 - 62.6.1",
      "nodes": [
        "node_modules/eslint-plugin-jsdoc"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-vue": {
      "name": "eslint-plugin-vue",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "5.0.0-beta.0 - 10.7.0",
      "nodes": [
        "node_modules/eslint-plugin-vue"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "expect-webdriverio": {
      "name": "expect-webdriverio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/globals",
        "webdriverio"
      ],
      "effects": [
        "@wdio/globals",
        "@wdio/local-runner",
        "@wdio/runner"
      ],
      "range": "4.0.0-alpha.0 - 4.0.0-alpha.6 || >=4.0.1",
      "nodes": [
        "node_modules/expect-webdriverio"
      ],
      "fixAvailable": false
    },
    "fast-xml-parser": {
      "name": "fast-xml-parser",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113331,
          "name": "fast-xml-parser",
          "dependency": "fast-xml-parser",
          "title": "fast-xml-parser affected by DoS through entity expansion in DOCTYPE (no expansion limit)",
          "url": "https://github.com/advisories/GHSA-jmr7-xgp7-cmfj",
          "severity": "high",
          "cwe": [
            "CWE-776"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=4.1.3 <5.3.6"
        }
      ],
      "effects": [],
      "range": "4.1.3 - 5.3.5",
      "nodes": [
        "node_modules/fast-xml-parser"
      ],
      "fixAvailable": true
    },
    "file-entry-cache": {
      "name": "file-entry-cache",
      "severity": "high",
      "isDirect": false,
      "via": [
        "flat-cache"
      ],
      "effects": [
        "eslint"
      ],
      "range": "4.0.0 - 7.0.2",
      "nodes": [
        "node_modules/file-entry-cache"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "filelist": {
      "name": "filelist",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "jake"
      ],
      "range": ">=0.0.2",
      "nodes": [
        "node_modules/filelist"
      ],
      "fixAvailable": true
    },
    "flat-cache": {
      "name": "flat-cache",
      "severity": "high",
      "isDirect": false,
      "via": [
        "rimraf"
      ],
      "effects": [
        "file-entry-cache"
      ],
      "range": "1.3.4 - 4.0.0",
      "nodes": [
        "node_modules/flat-cache"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "form-data": {
      "name": "form-data",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1109540,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data uses unsafe random function in form-data for choosing boundary",
          "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
          "severity": "critical",
          "cwe": [
            "CWE-330"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<2.5.4"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<2.5.4",
      "nodes": [
        "node_modules/request/node_modules/form-data"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "glob": {
      "name": "glob",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@jest/reporters",
        "@wdio/config",
        "@wikimedia/mw-node-qunit",
        "archiver-utils",
        "jest-config",
        "jest-runtime",
        "mocha",
        "rimraf",
        "test-exclude"
      ],
      "range": "3.0.0 - 10.5.0",
      "nodes": [
        "node_modules/@jest/reporters/node_modules/glob",
        "node_modules/@wdio/config/node_modules/glob",
        "node_modules/@wikimedia/mw-node-qunit/node_modules/glob",
        "node_modules/archiver-utils/node_modules/glob",
        "node_modules/glob",
        "node_modules/jest-config/node_modules/glob",
        "node_modules/jest-runtime/node_modules/glob",
        "node_modules/rimraf/node_modules/glob",
        "node_modules/test-exclude/node_modules/glob"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "jake": {
      "name": "jake",
      "severity": "high",
      "isDirect": false,
      "via": [
        "filelist"
      ],
      "effects": [
        "ejs"
      ],
      "range": ">=10.6.1",
      "nodes": [
        "node_modules/jake"
      ],
      "fixAvailable": true
    },
    "jest": {
      "name": "jest",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@jest/core",
        "jest-cli"
      ],
      "effects": [],
      "range": ">=19.1.0-alpha.eed82034",
      "nodes": [
        "node_modules/jest"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-circus": {
      "name": "jest-circus",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/expect",
        "jest-runtime",
        "jest-snapshot"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=25.2.4",
      "nodes": [
        "node_modules/jest-circus"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-cli": {
      "name": "jest-cli",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/core",
        "create-jest",
        "jest-config"
      ],
      "effects": [
        "jest"
      ],
      "range": ">=19.1.0-alpha.eed82034",
      "nodes": [
        "node_modules/jest-cli"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-config": {
      "name": "jest-config",
      "severity": "high",
      "isDirect": false,
      "via": [
        "babel-jest",
        "glob",
        "jest-circus",
        "jest-runner"
      ],
      "effects": [
        "create-jest",
        "jest-cli"
      ],
      "range": ">=19.1.0-alpha.eed82034",
      "nodes": [
        "node_modules/jest-config"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-resolve-dependencies": {
      "name": "jest-resolve-dependencies",
      "severity": "high",
      "isDirect": false,
      "via": [
        "jest-snapshot"
      ],
      "effects": [],
      "range": ">=27.0.0-next.0",
      "nodes": [
        "node_modules/jest-resolve-dependencies"
      ],
      "fixAvailable": true
    },
    "jest-runner": {
      "name": "jest-runner",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/transform",
        "jest-runtime"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=24.0.0-alpha.0",
      "nodes": [
        "node_modules/jest-runner"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-runtime": {
      "name": "jest-runtime",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/globals",
        "@jest/transform",
        "glob",
        "jest-snapshot"
      ],
      "effects": [
        "jest-circus",
        "jest-runner"
      ],
      "range": ">=24.0.0-alpha.0",
      "nodes": [
        "node_modules/jest-runtime"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-snapshot": {
      "name": "jest-snapshot",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@jest/transform"
      ],
      "effects": [
        "@jest/core",
        "@jest/expect",
        "jest-circus",
        "jest-resolve-dependencies",
        "jest-runtime"
      ],
      "range": ">=27.0.0-next.0",
      "nodes": [
        "node_modules/jest-snapshot"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "markdown-it": {
      "name": "markdown-it",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1113190,
          "name": "markdown-it",
          "dependency": "markdown-it",
          "title": "markdown-it is has a Regular Expression Denial of Service (ReDoS)",
          "url": "https://github.com/advisories/GHSA-38c4-r59v-3vqw",
          "severity": "moderate",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=13.0.0 <14.1.1"
        }
      ],
      "effects": [],
      "range": "13.0.0 - 14.1.0",
      "nodes": [
        "node_modules/markdown-it"
      ],
      "fixAvailable": true
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113371,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
          "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<10.2.1"
        }
      ],
      "effects": [
        "@eslint/eslintrc",
        "@humanwhocodes/config-array",
        "@typescript-eslint/typescript-estree",
        "eslint",
        "filelist",
        "glob",
        "mocha",
        "multimatch",
        "readdir-glob",
        "recursive-readdir",
        "test-exclude"
      ],
      "range": "<10.2.1",
      "nodes": [
        "node_modules/@typescript-eslint/parser/node_modules/minimatch",
        "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/eslint-config-wikimedia/node_modules/minimatch",
        "node_modules/filelist/node_modules/minimatch",
        "node_modules/glob/node_modules/minimatch",
        "node_modules/minimatch",
        "node_modules/mocha/node_modules/minimatch",
        "node_modules/readdir-glob/node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "mocha": {
      "name": "mocha",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "@wdio/mocha-framework"
      ],
      "range": ">=1.10.0",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": false
    },
    "multimatch": {
      "name": "multimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "doiuse"
      ],
      "range": "<=7.0.0",
      "nodes": [
        "node_modules/multimatch"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki"
      ],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "qs": {
      "name": "qs",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113132,
          "name": "qs",
          "dependency": "qs",
          "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
          "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
          "severity": "high",
          "cwe": [
            "CWE-20"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<6.14.1"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<6.14.1",
      "nodes": [
        "node_modules/qs"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "readdir-glob": {
      "name": "readdir-glob",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "archiver"
      ],
      "range": "<=2.0.1",
      "nodes": [
        "node_modules/readdir-glob"
      ],
      "fixAvailable": false
    },
    "recursive-readdir": {
      "name": "recursive-readdir",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "create-wdio"
      ],
      "range": ">=1.2.0",
      "nodes": [
        "node_modules/recursive-readdir"
      ],
      "fixAvailable": false
    },
    "request": {
      "name": "request",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "form-data",
        "qs",
        "tough-cookie"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "rimraf": {
      "name": "rimraf",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "flat-cache"
      ],
      "range": "2.3.0 - 3.0.2 || 4.2.0 - 5.0.10",
      "nodes": [
        "node_modules/rimraf"
      ],
      "fixAvailable": {
        "name": "eslint",
        "version": "10.0.1",
        "isSemVerMajor": true
      }
    },
    "stylelint-config-wikimedia": {
      "name": "stylelint-config-wikimedia",
      "severity": "high",
      "isDirect": true,
      "via": [
        "stylelint-no-unsupported-browser-features"
      ],
      "effects": [],
      "range": ">=0.10.2",
      "nodes": [
        "node_modules/stylelint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "stylelint-no-unsupported-browser-features": {
      "name": "stylelint-no-unsupported-browser-features",
      "severity": "high",
      "isDirect": false,
      "via": [
        "doiuse"
      ],
      "effects": [
        "stylelint-config-wikimedia"
      ],
      "range": "*",
      "nodes": [
        "node_modules/stylelint-no-unsupported-browser-features"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "test-exclude": {
      "name": "test-exclude",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "babel-plugin-istanbul"
      ],
      "range": "4.2.2 || >=5.0.0",
      "nodes": [
        "node_modules/test-exclude"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097682,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/request/node_modules/tough-cookie"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "wdio-mediawiki": {
      "name": "wdio-mediawiki",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot"
      ],
      "effects": [],
      "range": "<=5.1.0",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "webdriver": {
      "name": "webdriver",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config"
      ],
      "effects": [
        "@wdio/runner"
      ],
      "range": ">=5.0.0-alpha.2",
      "nodes": [
        "node_modules/webdriver"
      ],
      "fixAvailable": false
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "archiver",
        "webdriver"
      ],
      "effects": [
        "@wdio/globals",
        "expect-webdriverio"
      ],
      "range": ">=5.0.0-alpha.2",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": false
    },
    "zip-stream": {
      "name": "zip-stream",
      "severity": "high",
      "isDirect": false,
      "via": [
        "archiver-utils"
      ],
      "effects": [],
      "range": "0.8.0 - 6.0.1",
      "nodes": [
        "node_modules/zip-stream"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 5,
      "high": 60,
      "critical": 2,
      "total": 67
    },
    "dependencies": {
      "prod": 1,
      "dev": 1309,
      "optional": 57,
      "peer": 30,
      "peerOptional": 0,
      "total": 1309
    }
  }
}

--- 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 ERESOLVE overriding peer dependency
npm WARN While resolving: @typescript-eslint/eslint-plugin@8.46.0
npm WARN Found: eslint@8.57.1
npm WARN node_modules/eslint
npm WARN   dev eslint@"8.57.1" from the root project
npm WARN   28 more (@stylistic/eslint-plugin, eslint-compat-utils, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/eslint-plugin@8.46.0
npm WARN node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
npm WARN   @typescript-eslint/eslint-plugin@"8.46.0" from eslint-config-wikimedia@0.32.3
npm WARN   node_modules/eslint-config-wikimedia
npm WARN 
npm WARN Conflicting peer dependency: eslint@9.39.3
npm WARN node_modules/eslint
npm WARN   peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/eslint-plugin@8.46.0
npm WARN   node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
npm WARN     @typescript-eslint/eslint-plugin@"8.46.0" from eslint-config-wikimedia@0.32.3
npm WARN     node_modules/eslint-config-wikimedia
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @typescript-eslint/parser@8.46.0
npm WARN Found: eslint@8.57.1
npm WARN node_modules/eslint
npm WARN   dev eslint@"8.57.1" from the root project
npm WARN   28 more (@stylistic/eslint-plugin, eslint-compat-utils, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/parser@8.46.0
npm WARN node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser
npm WARN   @typescript-eslint/parser@"8.46.0" from eslint-config-wikimedia@0.32.3
npm WARN   node_modules/eslint-config-wikimedia
npm WARN   1 more (@typescript-eslint/eslint-plugin)
npm WARN 
npm WARN Conflicting peer dependency: eslint@9.39.3
npm WARN node_modules/eslint
npm WARN   peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/parser@8.46.0
npm WARN   node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser
npm WARN     @typescript-eslint/parser@"8.46.0" from eslint-config-wikimedia@0.32.3
npm WARN     node_modules/eslint-config-wikimedia
npm WARN     1 more (@typescript-eslint/eslint-plugin)
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @typescript-eslint/type-utils@8.46.0
npm WARN Found: peer eslint@"^8.57.0 || ^9.0.0" from the root project
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer eslint@"^8.57.0 || ^9.0.0" from the root project
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @typescript-eslint/type-utils@8.46.0
npm WARN Found: eslint@8.57.1
npm WARN node_modules/eslint
npm WARN   dev eslint@"8.57.1" from the root project
npm WARN   28 more (@stylistic/eslint-plugin, eslint-compat-utils, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/type-utils@8.46.0
npm WARN node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils
npm WARN   @typescript-eslint/type-utils@"8.46.0" from @typescript-eslint/eslint-plugin@8.46.0
npm WARN   node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
npm WARN 
npm WARN Conflicting peer dependency: eslint@9.39.3
npm WARN node_modules/eslint
npm WARN   peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/type-utils@8.46.0
npm WARN   node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils
npm WARN     @typescript-eslint/type-utils@"8.46.0" from @typescript-eslint/eslint-plugin@8.46.0
npm WARN     node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @typescript-eslint/utils@8.46.0
npm WARN Found: eslint@8.57.1
npm WARN node_modules/eslint
npm WARN   dev eslint@"8.57.1" from the root project
npm WARN   28 more (@stylistic/eslint-plugin, eslint-compat-utils, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/utils@8.46.0
npm WARN node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils
npm WARN   @typescript-eslint/utils@"8.46.0" from @typescript-eslint/eslint-plugin@8.46.0
npm WARN   node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
npm WARN   1 more (@typescript-eslint/type-utils)
npm WARN 
npm WARN Conflicting peer dependency: eslint@9.39.3
npm WARN node_modules/eslint
npm WARN   peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/utils@8.46.0
npm WARN   node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils
npm WARN     @typescript-eslint/utils@"8.46.0" from @typescript-eslint/eslint-plugin@8.46.0
npm WARN     node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
npm WARN     1 more (@typescript-eslint/type-utils)
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'luacheck-browserify@0.10.0',
npm WARN EBADENGINE   required: { node: '>=20.19.5' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
{
  "added": 1299,
  "removed": 0,
  "changed": 0,
  "audited": 1300,
  "funding": 224,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@eslint/eslintrc": {
        "name": "@eslint/eslintrc",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "eslint"
        ],
        "range": "0.0.1 || >=0.1.1",
        "nodes": [
          "node_modules/@eslint/eslintrc"
        ],
        "fixAvailable": {
          "name": "eslint",
          "version": "10.0.1",
          "isSemVerMajor": true
        }
      },
      "@humanwhocodes/config-array": {
        "name": "@humanwhocodes/config-array",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "eslint"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@humanwhocodes/config-array"
        ],
        "fixAvailable": {
          "name": "eslint",
          "version": "10.0.1",
          "isSemVerMajor": true
        }
      },
      "@jest/core": {
        "name": "@jest/core",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@jest/reporters",
          "@jest/transform",
          "jest-config",
          "jest-resolve-dependencies",
          "jest-runner",
          "jest-runtime",
          "jest-snapshot"
        ],
        "effects": [
          "jest",
          "jest-cli"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@jest/core"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/expect": {
        "name": "@jest/expect",
        "severity": "high",
        "isDirect": false,
        "via": [
          "jest-snapshot"
        ],
        "effects": [
          "@jest/globals",
          "jest-circus"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@jest/expect"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/globals": {
        "name": "@jest/globals",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@jest/expect"
        ],
        "effects": [
          "jest-runtime"
        ],
        "range": ">=28.0.0-alpha.0",
        "nodes": [
          "node_modules/@jest/globals"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/reporters": {
        "name": "@jest/reporters",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@jest/transform",
          "glob"
        ],
        "effects": [
          "@jest/core"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@jest/reporters"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/transform": {
        "name": "@jest/transform",
        "severity": "high",
        "isDirect": false,
        "via": [
          "babel-plugin-istanbul"
        ],
        "effects": [
          "babel-jest",
          "jest-runner",
          "jest-runtime",
          "jest-snapshot"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@jest/transform"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@typescript-eslint/eslint-plugin": {
        "name": "@typescript-eslint/eslint-plugin",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@typescript-eslint/type-utils",
          "@typescript-eslint/utils",
          "eslint"
        ],
        "effects": [],
        "range": "<=8.55.1-alpha.3",
        "nodes": [
          "",
          "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin"
        ],
        "fixAvailable": true
      },
      "@typescript-eslint/parser": {
        "name": "@typescript-eslint/parser",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@typescript-eslint/typescript-estree",
          "eslint"
        ],
        "effects": [
          "eslint-config-wikimedia"
        ],
        "range": ">=1.1.1-alpha.0",
        "nodes": [
          "",
          "node_modules/@typescript-eslint/parser",
          "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "@typescript-eslint/type-utils": {
        "name": "@typescript-eslint/type-utils",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@typescript-eslint/typescript-estree",
          "@typescript-eslint/utils",
          "eslint"
        ],
        "effects": [
          "@typescript-eslint/eslint-plugin"
        ],
        "range": ">=5.9.2-alpha.0",
        "nodes": [
          "",
          "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils"
        ],
        "fixAvailable": true
      },
      "@typescript-eslint/typescript-estree": {
        "name": "@typescript-eslint/typescript-estree",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "@typescript-eslint/parser",
          "@typescript-eslint/type-utils",
          "@typescript-eslint/utils"
        ],
        "range": ">=6.16.0",
        "nodes": [
          "",
          "",
          "node_modules/@typescript-eslint/typescript-estree",
          "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/typescript-estree"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "@typescript-eslint/utils": {
        "name": "@typescript-eslint/utils",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@typescript-eslint/typescript-estree",
          "eslint"
        ],
        "effects": [
          "@typescript-eslint/eslint-plugin",
          "@typescript-eslint/type-utils"
        ],
        "range": "*",
        "nodes": [
          "",
          "node_modules/@typescript-eslint/utils",
          "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils"
        ],
        "fixAvailable": true
      },
      "@wdio/cli": {
        "name": "@wdio/cli",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@wdio/config",
          "@wdio/globals",
          "create-wdio",
          "webdriverio"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/@wdio/cli"
        ],
        "fixAvailable": false
      },
      "@wdio/config": {
        "name": "@wdio/config",
        "severity": "high",
        "isDirect": false,
        "via": [
          "glob"
        ],
        "effects": [
          "@wdio/cli",
          "@wdio/runner",
          "webdriver",
          "webdriverio"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@wdio/config"
        ],
        "fixAvailable": false
      },
      "@wdio/globals": {
        "name": "@wdio/globals",
        "severity": "high",
        "isDirect": false,
        "via": [
          "expect-webdriverio",
          "webdriverio"
        ],
        "effects": [
          "@wdio/cli",
          "@wdio/runner"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@wdio/globals"
        ],
        "fixAvailable": false
      },
      "@wdio/local-runner": {
        "name": "@wdio/local-runner",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@wdio/runner",
          "expect-webdriverio"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/@wdio/local-runner"
        ],
        "fixAvailable": false
      },
      "@wdio/mocha-framework": {
        "name": "@wdio/mocha-framework",
        "severity": "high",
        "isDirect": true,
        "via": [
          "mocha"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/@wdio/mocha-framework"
        ],
        "fixAvailable": false
      },
      "@wdio/runner": {
        "name": "@wdio/runner",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/config",
          "@wdio/globals",
          "expect-webdriverio",
          "webdriver",
          "webdriverio"
        ],
        "effects": [
          "@wdio/local-runner"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@wdio/runner"
        ],
        "fixAvailable": false
      },
      "@wikimedia/mw-node-qunit": {
        "name": "@wikimedia/mw-node-qunit",
        "severity": "high",
        "isDirect": true,
        "via": [
          "glob"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/@wikimedia/mw-node-qunit"
        ],
        "fixAvailable": false
      },
      "ajv": {
        "name": "ajv",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1113398,
            "name": "ajv",
            "dependency": "ajv",
            "title": "ajv has ReDoS when using `$data` option",
            "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
            "severity": "moderate",
            "cwe": [
              "CWE-400"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<6.14.0"
          },
          {
            "source": 1113399,
            "name": "ajv",
            "dependency": "ajv",
            "title": "ajv has ReDoS when using `$data` option",
            "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
            "severity": "moderate",
            "cwe": [
              "CWE-400"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": ">=7.0.0-alpha.0 <8.18.0"
          }
        ],
        "effects": [],
        "range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0",
        "nodes": [
          "",
          ""
        ],
        "fixAvailable": true
      },
      "archiver": {
        "name": "archiver",
        "severity": "high",
        "isDirect": false,
        "via": [
          "archiver-utils",
          "readdir-glob",
          "zip-stream"
        ],
        "effects": [
          "webdriverio"
        ],
        "range": ">=0.20.0",
        "nodes": [
          "node_modules/archiver"
        ],
        "fixAvailable": false
      },
      "archiver-utils": {
        "name": "archiver-utils",
        "severity": "high",
        "isDirect": false,
        "via": [
          "glob"
        ],
        "effects": [
          "archiver",
          "zip-stream"
        ],
        "range": ">=0.2.0",
        "nodes": [
          "node_modules/archiver-utils"
        ],
        "fixAvailable": false
      },
      "babel-jest": {
        "name": "babel-jest",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@jest/transform",
          "babel-plugin-istanbul"
        ],
        "effects": [
          "jest-config"
        ],
        "range": ">=24.0.0-alpha.0",
        "nodes": [
          "node_modules/babel-jest"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "babel-plugin-istanbul": {
        "name": "babel-plugin-istanbul",
        "severity": "high",
        "isDirect": false,
        "via": [
          "test-exclude"
        ],
        "effects": [
          "@jest/transform",
          "babel-jest"
        ],
        "range": ">=5.0.1",
        "nodes": [
          "node_modules/babel-plugin-istanbul"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "create-jest": {
        "name": "create-jest",
        "severity": "high",
        "isDirect": false,
        "via": [
          "jest-config"
        ],
        "effects": [
          "jest-cli"
        ],
        "range": ">=29.7.0",
        "nodes": [
          "node_modules/create-jest"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "create-wdio": {
        "name": "create-wdio",
        "severity": "high",
        "isDirect": false,
        "via": [
          "ejs",
          "recursive-readdir"
        ],
        "effects": [
          "@wdio/cli"
        ],
        "range": ">=9.17.0",
        "nodes": [
          "node_modules/create-wdio"
        ],
        "fixAvailable": false
      },
      "doiuse": {
        "name": "doiuse",
        "severity": "high",
        "isDirect": false,
        "via": [
          "multimatch"
        ],
        "effects": [
          "stylelint-no-unsupported-browser-features"
        ],
        "range": ">=2.2.0",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "stylelint-config-wikimedia",
          "version": "0.10.1",
          "isSemVerMajor": true
        }
      },
      "ejs": {
        "name": "ejs",
        "severity": "high",
        "isDirect": false,
        "via": [
          "jake"
        ],
        "effects": [],
        "range": ">=3.1.2",
        "nodes": [
          "node_modules/ejs"
        ],
        "fixAvailable": true
      },
      "eslint": {
        "name": "eslint",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@eslint/eslintrc",
          "@humanwhocodes/config-array",
          "file-entry-cache",
          "minimatch"
        ],
        "effects": [
          "@typescript-eslint/eslint-plugin",
          "@typescript-eslint/parser",
          "@typescript-eslint/type-utils",
          "@typescript-eslint/utils",
          "eslint-config-wikimedia",
          "eslint-plugin-jest",
          "eslint-plugin-jsdoc",
          "eslint-plugin-vue"
        ],
        "range": "0.7.1 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2",
        "nodes": [
          "node_modules/eslint"
        ],
        "fixAvailable": {
          "name": "eslint",
          "version": "10.0.1",
          "isSemVerMajor": true
        }
      },
      "eslint-config-wikimedia": {
        "name": "eslint-config-wikimedia",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@typescript-eslint/eslint-plugin",
          "@typescript-eslint/parser",
          "eslint",
          "eslint-plugin-jsdoc",
          "eslint-plugin-vue"
        ],
        "effects": [],
        "range": ">=0.9.0",
        "nodes": [
          "node_modules/eslint-config-wikimedia"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "eslint-plugin-jest": {
        "name": "eslint-plugin-jest",
        "severity": "high",
        "isDirect": false,
        "via": [
          "eslint"
        ],
        "effects": [],
        "range": "25.0.1 - 29.12.2",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "eslint-plugin-jsdoc": {
        "name": "eslint-plugin-jsdoc",
        "severity": "high",
        "isDirect": false,
        "via": [
          "eslint"
        ],
        "effects": [
          "eslint-config-wikimedia"
        ],
        "range": "8.4.4 - 62.6.1",
        "nodes": [
          "node_modules/eslint-plugin-jsdoc"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "eslint-plugin-vue": {
        "name": "eslint-plugin-vue",
        "severity": "high",
        "isDirect": false,
        "via": [
          "eslint"
        ],
        "effects": [
          "eslint-config-wikimedia"
        ],
        "range": "5.0.0-beta.0 - 10.7.0",
        "nodes": [
          "node_modules/eslint-plugin-vue"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "expect-webdriverio": {
        "name": "expect-webdriverio",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/globals",
          "webdriverio"
        ],
        "effects": [
          "@wdio/globals",
          "@wdio/local-runner",
          "@wdio/runner"
        ],
        "range": "4.0.0-alpha.0 - 4.0.0-alpha.6 || >=4.0.1",
        "nodes": [
          "",
          "node_modules/expect-webdriverio"
        ],
        "fixAvailable": false
      },
      "fast-xml-parser": {
        "name": "fast-xml-parser",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1113331,
            "name": "fast-xml-parser",
            "dependency": "fast-xml-parser",
            "title": "fast-xml-parser affected by DoS through entity expansion in DOCTYPE (no expansion limit)",
            "url": "https://github.com/advisories/GHSA-jmr7-xgp7-cmfj",
            "severity": "high",
            "cwe": [
              "CWE-776"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": ">=4.1.3 <5.3.6"
          }
        ],
        "effects": [],
        "range": "4.1.3 - 5.3.5",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "file-entry-cache": {
        "name": "file-entry-cache",
        "severity": "high",
        "isDirect": false,
        "via": [
          "flat-cache"
        ],
        "effects": [
          "eslint"
        ],
        "range": "4.0.0 - 7.0.2",
        "nodes": [
          "node_modules/file-entry-cache"
        ],
        "fixAvailable": {
          "name": "eslint",
          "version": "10.0.1",
          "isSemVerMajor": true
        }
      },
      "filelist": {
        "name": "filelist",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "jake"
        ],
        "range": ">=0.0.2",
        "nodes": [
          "node_modules/filelist"
        ],
        "fixAvailable": true
      },
      "flat-cache": {
        "name": "flat-cache",
        "severity": "high",
        "isDirect": false,
        "via": [
          "rimraf"
        ],
        "effects": [
          "file-entry-cache"
        ],
        "range": "1.3.4 - 4.0.0",
        "nodes": [
          "node_modules/flat-cache"
        ],
        "fixAvailable": {
          "name": "eslint",
          "version": "10.0.1",
          "isSemVerMajor": true
        }
      },
      "form-data": {
        "name": "form-data",
        "severity": "critical",
        "isDirect": false,
        "via": [
          {
            "source": 1109540,
            "name": "form-data",
            "dependency": "form-data",
            "title": "form-data uses unsafe random function in form-data for choosing boundary",
            "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
            "severity": "critical",
            "cwe": [
              "CWE-330"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<2.5.4"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<2.5.4",
        "nodes": [
          "node_modules/request/node_modules/form-data"
        ],
        "fixAvailable": {
          "name": "wdio-mediawiki",
          "version": "6.3.2",
          "isSemVerMajor": true
        }
      },
      "glob": {
        "name": "glob",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "@jest/reporters",
          "@wdio/config",
          "@wikimedia/mw-node-qunit",
          "archiver-utils",
          "jest-config",
          "jest-runtime",
          "mocha",
          "rimraf",
          "test-exclude"
        ],
        "range": "3.0.0 - 10.5.0",
        "nodes": [
          "node_modules/@jest/reporters/node_modules/glob",
          "node_modules/@wdio/config/node_modules/glob",
          "node_modules/@wikimedia/mw-node-qunit/node_modules/glob",
          "node_modules/archiver-utils/node_modules/glob",
          "node_modules/glob",
          "node_modules/jest-config/node_modules/glob",
          "node_modules/jest-runtime/node_modules/glob",
          "node_modules/rimraf/node_modules/glob",
          "node_modules/test-exclude/node_modules/glob"
        ],
        "fixAvailable": {
          "name": "eslint",
          "version": "10.0.1",
          "isSemVerMajor": true
        }
      },
      "jake": {
        "name": "jake",
        "severity": "high",
        "isDirect": false,
        "via": [
          "filelist"
        ],
        "effects": [
          "ejs"
        ],
        "range": ">=10.6.1",
        "nodes": [
          "node_modules/jake"
        ],
        "fixAvailable": true
      },
      "jest": {
        "name": "jest",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@jest/core",
          "jest-cli"
        ],
        "effects": [],
        "range": ">=19.1.0-alpha.eed82034",
        "nodes": [
          "node_modules/jest"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-circus": {
        "name": "jest-circus",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@jest/expect",
          "jest-runtime",
          "jest-snapshot"
        ],
        "effects": [
          "jest-config"
        ],
        "range": ">=25.2.4",
        "nodes": [
          "node_modules/jest-circus"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-cli": {
        "name": "jest-cli",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@jest/core",
          "create-jest",
          "jest-config"
        ],
        "effects": [
          "jest"
        ],
        "range": ">=19.1.0-alpha.eed82034",
        "nodes": [
          "node_modules/jest-cli"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-config": {
        "name": "jest-config",
        "severity": "high",
        "isDirect": false,
        "via": [
          "babel-jest",
          "glob",
          "jest-circus",
          "jest-runner"
        ],
        "effects": [
          "create-jest",
          "jest-cli"
        ],
        "range": ">=19.1.0-alpha.eed82034",
        "nodes": [
          "node_modules/jest-config"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-resolve-dependencies": {
        "name": "jest-resolve-dependencies",
        "severity": "high",
        "isDirect": false,
        "via": [
          "jest-snapshot"
        ],
        "effects": [],
        "range": ">=27.0.0-next.0",
        "nodes": [
          "node_modules/jest-resolve-dependencies"
        ],
        "fixAvailable": true
      },
      "jest-runner": {
        "name": "jest-runner",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@jest/transform",
          "jest-runtime"
        ],
        "effects": [
          "jest-config"
        ],
        "range": ">=24.0.0-alpha.0",
        "nodes": [
          "node_modules/jest-runner"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-runtime": {
        "name": "jest-runtime",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@jest/globals",
          "@jest/transform",
          "glob",
          "jest-snapshot"
        ],
        "effects": [
          "jest-circus",
          "jest-runner"
        ],
        "range": ">=24.0.0-alpha.0",
        "nodes": [
          "node_modules/jest-runtime"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-snapshot": {
        "name": "jest-snapshot",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@jest/transform"
        ],
        "effects": [
          "@jest/core",
          "@jest/expect",
          "jest-circus",
          "jest-resolve-dependencies",
          "jest-runtime"
        ],
        "range": ">=27.0.0-next.0",
        "nodes": [
          "node_modules/jest-snapshot"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "markdown-it": {
        "name": "markdown-it",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1113190,
            "name": "markdown-it",
            "dependency": "markdown-it",
            "title": "markdown-it is has a Regular Expression Denial of Service (ReDoS)",
            "url": "https://github.com/advisories/GHSA-38c4-r59v-3vqw",
            "severity": "moderate",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 5.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": ">=13.0.0 <14.1.1"
          }
        ],
        "effects": [],
        "range": "13.0.0 - 14.1.0",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "minimatch": {
        "name": "minimatch",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1113371,
            "name": "minimatch",
            "dependency": "minimatch",
            "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
            "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
            "severity": "high",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<10.2.1"
          }
        ],
        "effects": [
          "@eslint/eslintrc",
          "@humanwhocodes/config-array",
          "@typescript-eslint/typescript-estree",
          "eslint",
          "filelist",
          "glob",
          "mocha",
          "multimatch",
          "readdir-glob",
          "recursive-readdir",
          "test-exclude"
        ],
        "range": "<10.2.1",
        "nodes": [
          "",
          "",
          "node_modules/@wdio/config/node_modules/minimatch",
          "node_modules/archiver-utils/node_modules/minimatch",
          "node_modules/eslint-config-wikimedia/node_modules/minimatch",
          "node_modules/filelist/node_modules/minimatch",
          "node_modules/glob/node_modules/minimatch",
          "node_modules/minimatch",
          "node_modules/mocha/node_modules/minimatch",
          "node_modules/readdir-glob/node_modules/minimatch"
        ],
        "fixAvailable": {
          "name": "eslint",
          "version": "10.0.1",
          "isSemVerMajor": true
        }
      },
      "mocha": {
        "name": "mocha",
        "severity": "high",
        "isDirect": false,
        "via": [
          "glob",
          "minimatch"
        ],
        "effects": [
          "@wdio/mocha-framework"
        ],
        "range": ">=1.10.0",
        "nodes": [
          "node_modules/mocha"
        ],
        "fixAvailable": false
      },
      "multimatch": {
        "name": "multimatch",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "doiuse"
        ],
        "range": "<=7.0.0",
        "nodes": [
          "node_modules/multimatch"
        ],
        "fixAvailable": {
          "name": "stylelint-config-wikimedia",
          "version": "0.10.1",
          "isSemVerMajor": true
        }
      },
      "mwbot": {
        "name": "mwbot",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "request"
        ],
        "effects": [
          "wdio-mediawiki"
        ],
        "range": ">=0.1.6",
        "nodes": [
          "node_modules/mwbot"
        ],
        "fixAvailable": {
          "name": "wdio-mediawiki",
          "version": "6.3.2",
          "isSemVerMajor": true
        }
      },
      "qs": {
        "name": "qs",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1113132,
            "name": "qs",
            "dependency": "qs",
            "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
            "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
            "severity": "high",
            "cwe": [
              "CWE-20"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<6.14.1"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<6.14.1",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "wdio-mediawiki",
          "version": "6.3.2",
          "isSemVerMajor": true
        }
      },
      "readdir-glob": {
        "name": "readdir-glob",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "archiver"
        ],
        "range": "<=2.0.1",
        "nodes": [
          "node_modules/readdir-glob"
        ],
        "fixAvailable": false
      },
      "recursive-readdir": {
        "name": "recursive-readdir",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "create-wdio"
        ],
        "range": ">=1.2.0",
        "nodes": [
          "node_modules/recursive-readdir"
        ],
        "fixAvailable": false
      },
      "request": {
        "name": "request",
        "severity": "critical",
        "isDirect": false,
        "via": [
          {
            "source": 1096727,
            "name": "request",
            "dependency": "request",
            "title": "Server-Side Request Forgery in Request",
            "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
            "severity": "moderate",
            "cwe": [
              "CWE-918"
            ],
            "cvss": {
              "score": 6.1,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
            },
            "range": "<=2.88.2"
          },
          "form-data",
          "qs",
          "tough-cookie"
        ],
        "effects": [
          "mwbot"
        ],
        "range": "*",
        "nodes": [
          "node_modules/request"
        ],
        "fixAvailable": {
          "name": "wdio-mediawiki",
          "version": "6.3.2",
          "isSemVerMajor": true
        }
      },
      "rimraf": {
        "name": "rimraf",
        "severity": "high",
        "isDirect": false,
        "via": [
          "glob"
        ],
        "effects": [
          "flat-cache"
        ],
        "range": "2.3.0 - 3.0.2 || 4.2.0 - 5.0.10",
        "nodes": [
          "node_modules/rimraf"
        ],
        "fixAvailable": {
          "name": "eslint",
          "version": "10.0.1",
          "isSemVerMajor": true
        }
      },
      "stylelint-config-wikimedia": {
        "name": "stylelint-config-wikimedia",
        "severity": "high",
        "isDirect": true,
        "via": [
          "stylelint-no-unsupported-browser-features"
        ],
        "effects": [],
        "range": ">=0.10.2",
        "nodes": [
          "node_modules/stylelint-config-wikimedia"
        ],
        "fixAvailable": {
          "name": "stylelint-config-wikimedia",
          "version": "0.10.1",
          "isSemVerMajor": true
        }
      },
      "stylelint-no-unsupported-browser-features": {
        "name": "stylelint-no-unsupported-browser-features",
        "severity": "high",
        "isDirect": false,
        "via": [
          "doiuse"
        ],
        "effects": [
          "stylelint-config-wikimedia"
        ],
        "range": "*",
        "nodes": [
          "node_modules/stylelint-no-unsupported-browser-features"
        ],
        "fixAvailable": {
          "name": "stylelint-config-wikimedia",
          "version": "0.10.1",
          "isSemVerMajor": true
        }
      },
      "test-exclude": {
        "name": "test-exclude",
        "severity": "high",
        "isDirect": false,
        "via": [
          "glob",
          "minimatch"
        ],
        "effects": [
          "babel-plugin-istanbul"
        ],
        "range": "4.2.2 || >=5.0.0",
        "nodes": [
          "node_modules/test-exclude"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "tough-cookie": {
        "name": "tough-cookie",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1097682,
            "name": "tough-cookie",
            "dependency": "tough-cookie",
            "title": "tough-cookie Prototype Pollution vulnerability",
            "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
            "severity": "moderate",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
            },
            "range": "<4.1.3"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<4.1.3",
        "nodes": [
          "node_modules/request/node_modules/tough-cookie"
        ],
        "fixAvailable": {
          "name": "wdio-mediawiki",
          "version": "6.3.2",
          "isSemVerMajor": true
        }
      },
      "wdio-mediawiki": {
        "name": "wdio-mediawiki",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "mwbot"
        ],
        "effects": [],
        "range": "<=5.1.0",
        "nodes": [
          "node_modules/wdio-mediawiki"
        ],
        "fixAvailable": {
          "name": "wdio-mediawiki",
          "version": "6.3.2",
          "isSemVerMajor": true
        }
      },
      "webdriver": {
        "name": "webdriver",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/config"
        ],
        "effects": [
          "@wdio/runner"
        ],
        "range": ">=5.0.0-alpha.2",
        "nodes": [
          "node_modules/webdriver"
        ],
        "fixAvailable": false
      },
      "webdriverio": {
        "name": "webdriverio",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/config",
          "archiver",
          "webdriver"
        ],
        "effects": [
          "@wdio/globals",
          "expect-webdriverio"
        ],
        "range": ">=5.0.0-alpha.2",
        "nodes": [
          "node_modules/webdriverio"
        ],
        "fixAvailable": false
      },
      "zip-stream": {
        "name": "zip-stream",
        "severity": "high",
        "isDirect": false,
        "via": [
          "archiver-utils"
        ],
        "effects": [],
        "range": "0.8.0 - 6.0.1",
        "nodes": [
          "node_modules/zip-stream"
        ],
        "fixAvailable": true
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 0,
        "moderate": 5,
        "high": 60,
        "critical": 2,
        "total": 67
      },
      "dependencies": {
        "prod": 1,
        "dev": 1299,
        "optional": 47,
        "peer": 20,
        "peerOptional": 0,
        "total": 1299
      }
    }
  }
}

--- end ---
{"added": 1299, "removed": 0, "changed": 0, "audited": 1300, "funding": 224, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@eslint/eslintrc": {"name": "@eslint/eslintrc", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["eslint"], "range": "0.0.1 || >=0.1.1", "nodes": ["node_modules/@eslint/eslintrc"], "fixAvailable": {"name": "eslint", "version": "10.0.1", "isSemVerMajor": true}}, "@humanwhocodes/config-array": {"name": "@humanwhocodes/config-array", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["eslint"], "range": "*", "nodes": ["node_modules/@humanwhocodes/config-array"], "fixAvailable": {"name": "eslint", "version": "10.0.1", "isSemVerMajor": true}}, "@jest/core": {"name": "@jest/core", "severity": "high", "isDirect": false, "via": ["@jest/reporters", "@jest/transform", "jest-config", "jest-resolve-dependencies", "jest-runner", "jest-runtime", "jest-snapshot"], "effects": ["jest", "jest-cli"], "range": "*", "nodes": ["node_modules/@jest/core"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/expect": {"name": "@jest/expect", "severity": "high", "isDirect": false, "via": ["jest-snapshot"], "effects": ["@jest/globals", "jest-circus"], "range": "*", "nodes": ["node_modules/@jest/expect"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/globals": {"name": "@jest/globals", "severity": "high", "isDirect": false, "via": ["@jest/expect"], "effects": ["jest-runtime"], "range": ">=28.0.0-alpha.0", "nodes": ["node_modules/@jest/globals"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/reporters": {"name": "@jest/reporters", "severity": "high", "isDirect": false, "via": ["@jest/transform", "glob"], "effects": ["@jest/core"], "range": "*", "nodes": ["node_modules/@jest/reporters"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/transform": {"name": "@jest/transform", "severity": "high", "isDirect": false, "via": ["babel-plugin-istanbul"], "effects": ["babel-jest", "jest-runner", "jest-runtime", "jest-snapshot"], "range": "*", "nodes": ["node_modules/@jest/transform"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@typescript-eslint/eslint-plugin": {"name": "@typescript-eslint/eslint-plugin", "severity": "high", "isDirect": false, "via": ["@typescript-eslint/type-utils", "@typescript-eslint/utils", "eslint"], "effects": [], "range": "<=8.55.1-alpha.3", "nodes": ["", "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin"], "fixAvailable": true}, "@typescript-eslint/parser": {"name": "@typescript-eslint/parser", "severity": "high", "isDirect": false, "via": ["@typescript-eslint/typescript-estree", "eslint"], "effects": ["eslint-config-wikimedia"], "range": ">=1.1.1-alpha.0", "nodes": ["", "node_modules/@typescript-eslint/parser", "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "@typescript-eslint/type-utils": {"name": "@typescript-eslint/type-utils", "severity": "high", "isDirect": false, "via": ["@typescript-eslint/typescript-estree", "@typescript-eslint/utils", "eslint"], "effects": ["@typescript-eslint/eslint-plugin"], "range": ">=5.9.2-alpha.0", "nodes": ["", "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils"], "fixAvailable": true}, "@typescript-eslint/typescript-estree": {"name": "@typescript-eslint/typescript-estree", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["@typescript-eslint/parser", "@typescript-eslint/type-utils", "@typescript-eslint/utils"], "range": ">=6.16.0", "nodes": ["", "", "node_modules/@typescript-eslint/typescript-estree", "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/typescript-estree"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "@typescript-eslint/utils": {"name": "@typescript-eslint/utils", "severity": "high", "isDirect": false, "via": ["@typescript-eslint/typescript-estree", "eslint"], "effects": ["@typescript-eslint/eslint-plugin", "@typescript-eslint/type-utils"], "range": "*", "nodes": ["", "node_modules/@typescript-eslint/utils", "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils"], "fixAvailable": true}, "@wdio/cli": {"name": "@wdio/cli", "severity": "high", "isDirect": true, "via": ["@wdio/config", "@wdio/globals", "create-wdio", "webdriverio"], "effects": [], "range": "*", "nodes": ["node_modules/@wdio/cli"], "fixAvailable": false}, "@wdio/config": {"name": "@wdio/config", "severity": "high", "isDirect": false, "via": ["glob"], "effects": ["@wdio/cli", "@wdio/runner", "webdriver", "webdriverio"], "range": "*", "nodes": ["node_modules/@wdio/config"], "fixAvailable": false}, "@wdio/globals": {"name": "@wdio/globals", "severity": "high", "isDirect": false, "via": ["expect-webdriverio", "webdriverio"], "effects": ["@wdio/cli", "@wdio/runner"], "range": "*", "nodes": ["node_modules/@wdio/globals"], "fixAvailable": false}, "@wdio/local-runner": {"name": "@wdio/local-runner", "severity": "high", "isDirect": true, "via": ["@wdio/runner", "expect-webdriverio"], "effects": [], "range": "*", "nodes": ["node_modules/@wdio/local-runner"], "fixAvailable": false}, "@wdio/mocha-framework": {"name": "@wdio/mocha-framework", "severity": "high", "isDirect": true, "via": ["mocha"], "effects": [], "range": "*", "nodes": ["node_modules/@wdio/mocha-framework"], "fixAvailable": false}, "@wdio/runner": {"name": "@wdio/runner", "severity": "high", "isDirect": false, "via": ["@wdio/config", "@wdio/globals", "expect-webdriverio", "webdriver", "webdriverio"], "effects": ["@wdio/local-runner"], "range": "*", "nodes": ["node_modules/@wdio/runner"], "fixAvailable": false}, "@wikimedia/mw-node-qunit": {"name": "@wikimedia/mw-node-qunit", "severity": "high", "isDirect": true, "via": ["glob"], "effects": [], "range": "*", "nodes": ["node_modules/@wikimedia/mw-node-qunit"], "fixAvailable": false}, "ajv": {"name": "ajv", "severity": "moderate", "isDirect": false, "via": [{"source": 1113398, "name": "ajv", "dependency": "ajv", "title": "ajv has ReDoS when using `$data` option", "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", "severity": "moderate", "cwe": ["CWE-400"], "cvss": {"score": 0, "vectorString": null}, "range": "<6.14.0"}, {"source": 1113399, "name": "ajv", "dependency": "ajv", "title": "ajv has ReDoS when using `$data` option", "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", "severity": "moderate", "cwe": ["CWE-400"], "cvss": {"score": 0, "vectorString": null}, "range": ">=7.0.0-alpha.0 <8.18.0"}], "effects": [], "range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0", "nodes": ["", ""], "fixAvailable": true}, "archiver": {"name": "archiver", "severity": "high", "isDirect": false, "via": ["archiver-utils", "readdir-glob", "zip-stream"], "effects": ["webdriverio"], "range": ">=0.20.0", "nodes": ["node_modules/archiver"], "fixAvailable": false}, "archiver-utils": {"name": "archiver-utils", "severity": "high", "isDirect": false, "via": ["glob"], "effects": ["archiver", "zip-stream"], "range": ">=0.2.0", "nodes": ["node_modules/archiver-utils"], "fixAvailable": false}, "babel-jest": {"name": "babel-jest", "severity": "high", "isDirect": false, "via": ["@jest/transform", "babel-plugin-istanbul"], "effects": ["jest-config"], "range": ">=24.0.0-alpha.0", "nodes": ["node_modules/babel-jest"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "babel-plugin-istanbul": {"name": "babel-plugin-istanbul", "severity": "high", "isDirect": false, "via": ["test-exclude"], "effects": ["@jest/transform", "babel-jest"], "range": ">=5.0.1", "nodes": ["node_modules/babel-plugin-istanbul"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "create-jest": {"name": "create-jest", "severity": "high", "isDirect": false, "via": ["jest-config"], "effects": ["jest-cli"], "range": ">=29.7.0", "nodes": ["node_modules/create-jest"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "create-wdio": {"name": "create-wdio", "severity": "high", "isDirect": false, "via": ["ejs", "recursive-readdir"], "effects": ["@wdio/cli"], "range": ">=9.17.0", "nodes": ["node_modules/create-wdio"], "fixAvailable": false}, "doiuse": {"name": "doiuse", "severity": "high", "isDirect": false, "via": ["multimatch"], "effects": ["stylelint-no-unsupported-browser-features"], "range": ">=2.2.0", "nodes": [""], "fixAvailable": {"name": "stylelint-config-wikimedia", "version": "0.10.1", "isSemVerMajor": true}}, "ejs": {"name": "ejs", "severity": "high", "isDirect": false, "via": ["jake"], "effects": [], "range": ">=3.1.2", "nodes": ["node_modules/ejs"], "fixAvailable": true}, "eslint": {"name": "eslint", "severity": "high", "isDirect": true, "via": ["@eslint/eslintrc", "@humanwhocodes/config-array", "file-entry-cache", "minimatch"], "effects": ["@typescript-eslint/eslint-plugin", "@typescript-eslint/parser", "@typescript-eslint/type-utils", "@typescript-eslint/utils", "eslint-config-wikimedia", "eslint-plugin-jest", "eslint-plugin-jsdoc", "eslint-plugin-vue"], "range": "0.7.1 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2", "nodes": ["node_modules/eslint"], "fixAvailable": {"name": "eslint", "version": "10.0.1", "isSemVerMajor": true}}, "eslint-config-wikimedia": {"name": "eslint-config-wikimedia", "severity": "high", "isDirect": true, "via": ["@typescript-eslint/eslint-plugin", "@typescript-eslint/parser", "eslint", "eslint-plugin-jsdoc", "eslint-plugin-vue"], "effects": [], "range": ">=0.9.0", "nodes": ["node_modules/eslint-config-wikimedia"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "eslint-plugin-jest": {"name": "eslint-plugin-jest", "severity": "high", "isDirect": false, "via": ["eslint"], "effects": [], "range": "25.0.1 - 29.12.2", "nodes": [""], "fixAvailable": true}, "eslint-plugin-jsdoc": {"name": "eslint-plugin-jsdoc", "severity": "high", "isDirect": false, "via": ["eslint"], "effects": ["eslint-config-wikimedia"], "range": "8.4.4 - 62.6.1", "nodes": ["node_modules/eslint-plugin-jsdoc"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "eslint-plugin-vue": {"name": "eslint-plugin-vue", "severity": "high", "isDirect": false, "via": ["eslint"], "effects": ["eslint-config-wikimedia"], "range": "5.0.0-beta.0 - 10.7.0", "nodes": ["node_modules/eslint-plugin-vue"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "expect-webdriverio": {"name": "expect-webdriverio", "severity": "high", "isDirect": false, "via": ["@wdio/globals", "webdriverio"], "effects": ["@wdio/globals", "@wdio/local-runner", "@wdio/runner"], "range": "4.0.0-alpha.0 - 4.0.0-alpha.6 || >=4.0.1", "nodes": ["", "node_modules/expect-webdriverio"], "fixAvailable": false}, "fast-xml-parser": {"name": "fast-xml-parser", "severity": "high", "isDirect": false, "via": [{"source": 1113331, "name": "fast-xml-parser", "dependency": "fast-xml-parser", "title": "fast-xml-parser affected by DoS through entity expansion in DOCTYPE (no expansion limit)", "url": "https://github.com/advisories/GHSA-jmr7-xgp7-cmfj", "severity": "high", "cwe": ["CWE-776"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=4.1.3 <5.3.6"}], "effects": [], "range": "4.1.3 - 5.3.5", "nodes": [""], "fixAvailable": true}, "file-entry-cache": {"name": "file-entry-cache", "severity": "high", "isDirect": false, "via": ["flat-cache"], "effects": ["eslint"], "range": "4.0.0 - 7.0.2", "nodes": ["node_modules/file-entry-cache"], "fixAvailable": {"name": "eslint", "version": "10.0.1", "isSemVerMajor": true}}, "filelist": {"name": "filelist", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["jake"], "range": ">=0.0.2", "nodes": ["node_modules/filelist"], "fixAvailable": true}, "flat-cache": {"name": "flat-cache", "severity": "high", "isDirect": false, "via": ["rimraf"], "effects": ["file-entry-cache"], "range": "1.3.4 - 4.0.0", "nodes": ["node_modules/flat-cache"], "fixAvailable": {"name": "eslint", "version": "10.0.1", "isSemVerMajor": true}}, "form-data": {"name": "form-data", "severity": "critical", "isDirect": false, "via": [{"source": 1109540, "name": "form-data", "dependency": "form-data", "title": "form-data uses unsafe random function in form-data for choosing boundary", "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4", "severity": "critical", "cwe": ["CWE-330"], "cvss": {"score": 0, "vectorString": null}, "range": "<2.5.4"}], "effects": ["request"], "range": "<2.5.4", "nodes": ["node_modules/request/node_modules/form-data"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.3.2", "isSemVerMajor": true}}, "glob": {"name": "glob", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["@jest/reporters", "@wdio/config", "@wikimedia/mw-node-qunit", "archiver-utils", "jest-config", "jest-runtime", "mocha", "rimraf", "test-exclude"], "range": "3.0.0 - 10.5.0", "nodes": ["node_modules/@jest/reporters/node_modules/glob", "node_modules/@wdio/config/node_modules/glob", "node_modules/@wikimedia/mw-node-qunit/node_modules/glob", "node_modules/archiver-utils/node_modules/glob", "node_modules/glob", "node_modules/jest-config/node_modules/glob", "node_modules/jest-runtime/node_modules/glob", "node_modules/rimraf/node_modules/glob", "node_modules/test-exclude/node_modules/glob"], "fixAvailable": {"name": "eslint", "version": "10.0.1", "isSemVerMajor": true}}, "jake": {"name": "jake", "severity": "high", "isDirect": false, "via": ["filelist"], "effects": ["ejs"], "range": ">=10.6.1", "nodes": ["node_modules/jake"], "fixAvailable": true}, "jest": {"name": "jest", "severity": "high", "isDirect": true, "via": ["@jest/core", "jest-cli"], "effects": [], "range": ">=19.1.0-alpha.eed82034", "nodes": ["node_modules/jest"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-circus": {"name": "jest-circus", "severity": "high", "isDirect": false, "via": ["@jest/expect", "jest-runtime", "jest-snapshot"], "effects": ["jest-config"], "range": ">=25.2.4", "nodes": ["node_modules/jest-circus"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-cli": {"name": "jest-cli", "severity": "high", "isDirect": false, "via": ["@jest/core", "create-jest", "jest-config"], "effects": ["jest"], "range": ">=19.1.0-alpha.eed82034", "nodes": ["node_modules/jest-cli"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-config": {"name": "jest-config", "severity": "high", "isDirect": false, "via": ["babel-jest", "glob", "jest-circus", "jest-runner"], "effects": ["create-jest", "jest-cli"], "range": ">=19.1.0-alpha.eed82034", "nodes": ["node_modules/jest-config"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-resolve-dependencies": {"name": "jest-resolve-dependencies", "severity": "high", "isDirect": false, "via": ["jest-snapshot"], "effects": [], "range": ">=27.0.0-next.0", "nodes": ["node_modules/jest-resolve-dependencies"], "fixAvailable": true}, "jest-runner": {"name": "jest-runner", "severity": "high", "isDirect": false, "via": ["@jest/transform", "jest-runtime"], "effects": ["jest-config"], "range": ">=24.0.0-alpha.0", "nodes": ["node_modules/jest-runner"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-runtime": {"name": "jest-runtime", "severity": "high", "isDirect": false, "via": ["@jest/globals", "@jest/transform", "glob", "jest-snapshot"], "effects": ["jest-circus", "jest-runner"], "range": ">=24.0.0-alpha.0", "nodes": ["node_modules/jest-runtime"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-snapshot": {"name": "jest-snapshot", "severity": "high", "isDirect": false, "via": ["@jest/transform"], "effects": ["@jest/core", "@jest/expect", "jest-circus", "jest-resolve-dependencies", "jest-runtime"], "range": ">=27.0.0-next.0", "nodes": ["node_modules/jest-snapshot"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "markdown-it": {"name": "markdown-it", "severity": "moderate", "isDirect": false, "via": [{"source": 1113190, "name": "markdown-it", "dependency": "markdown-it", "title": "markdown-it is has a Regular Expression Denial of Service (ReDoS)", "url": "https://github.com/advisories/GHSA-38c4-r59v-3vqw", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=13.0.0 <14.1.1"}], "effects": [], "range": "13.0.0 - 14.1.0", "nodes": [""], "fixAvailable": true}, "minimatch": {"name": "minimatch", "severity": "high", "isDirect": false, "via": [{"source": 1113371, "name": "minimatch", "dependency": "minimatch", "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern", "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": "<10.2.1"}], "effects": ["@eslint/eslintrc", "@humanwhocodes/config-array", "@typescript-eslint/typescript-estree", "eslint", "filelist", "glob", "mocha", "multimatch", "readdir-glob", "recursive-readdir", "test-exclude"], "range": "<10.2.1", "nodes": ["", "", "node_modules/@wdio/config/node_modules/minimatch", "node_modules/archiver-utils/node_modules/minimatch", "node_modules/eslint-config-wikimedia/node_modules/minimatch", "node_modules/filelist/node_modules/minimatch", "node_modules/glob/node_modules/minimatch", "node_modules/minimatch", "node_modules/mocha/node_modules/minimatch", "node_modules/readdir-glob/node_modules/minimatch"], "fixAvailable": {"name": "eslint", "version": "10.0.1", "isSemVerMajor": true}}, "mocha": {"name": "mocha", "severity": "high", "isDirect": false, "via": ["glob", "minimatch"], "effects": ["@wdio/mocha-framework"], "range": ">=1.10.0", "nodes": ["node_modules/mocha"], "fixAvailable": false}, "multimatch": {"name": "multimatch", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["doiuse"], "range": "<=7.0.0", "nodes": ["node_modules/multimatch"], "fixAvailable": {"name": "stylelint-config-wikimedia", "version": "0.10.1", "isSemVerMajor": true}}, "mwbot": {"name": "mwbot", "severity": "moderate", "isDirect": false, "via": ["request"], "effects": ["wdio-mediawiki"], "range": ">=0.1.6", "nodes": ["node_modules/mwbot"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.3.2", "isSemVerMajor": true}}, "qs": {"name": "qs", "severity": "high", "isDirect": false, "via": [{"source": 1113132, "name": "qs", "dependency": "qs", "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion", "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p", "severity": "high", "cwe": ["CWE-20"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<6.14.1"}], "effects": ["request"], "range": "<6.14.1", "nodes": [""], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.3.2", "isSemVerMajor": true}}, "readdir-glob": {"name": "readdir-glob", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["archiver"], "range": "<=2.0.1", "nodes": ["node_modules/readdir-glob"], "fixAvailable": false}, "recursive-readdir": {"name": "recursive-readdir", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["create-wdio"], "range": ">=1.2.0", "nodes": ["node_modules/recursive-readdir"], "fixAvailable": false}, "request": {"name": "request", "severity": "critical", "isDirect": false, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "form-data", "qs", "tough-cookie"], "effects": ["mwbot"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.3.2", "isSemVerMajor": true}}, "rimraf": {"name": "rimraf", "severity": "high", "isDirect": false, "via": ["glob"], "effects": ["flat-cache"], "range": "2.3.0 - 3.0.2 || 4.2.0 - 5.0.10", "nodes": ["node_modules/rimraf"], "fixAvailable": {"name": "eslint", "version": "10.0.1", "isSemVerMajor": true}}, "stylelint-config-wikimedia": {"name": "stylelint-config-wikimedia", "severity": "high", "isDirect": true, "via": ["stylelint-no-unsupported-browser-features"], "effects": [], "range": ">=0.10.2", "nodes": ["node_modules/stylelint-config-wikimedia"], "fixAvailable": {"name": "stylelint-config-wikimedia", "version": "0.10.1", "isSemVerMajor": true}}, "stylelint-no-unsupported-browser-features": {"name": "stylelint-no-unsupported-browser-features", "severity": "high", "isDirect": false, "via": ["doiuse"], "effects": ["stylelint-config-wikimedia"], "range": "*", "nodes": ["node_modules/stylelint-no-unsupported-browser-features"], "fixAvailable": {"name": "stylelint-config-wikimedia", "version": "0.10.1", "isSemVerMajor": true}}, "test-exclude": {"name": "test-exclude", "severity": "high", "isDirect": false, "via": ["glob", "minimatch"], "effects": ["babel-plugin-istanbul"], "range": "4.2.2 || >=5.0.0", "nodes": ["node_modules/test-exclude"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "tough-cookie": {"name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [{"source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"}, "range": "<4.1.3"}], "effects": ["request"], "range": "<4.1.3", "nodes": ["node_modules/request/node_modules/tough-cookie"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.3.2", "isSemVerMajor": true}}, "wdio-mediawiki": {"name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": ["mwbot"], "effects": [], "range": "<=5.1.0", "nodes": ["node_modules/wdio-mediawiki"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.3.2", "isSemVerMajor": true}}, "webdriver": {"name": "webdriver", "severity": "high", "isDirect": false, "via": ["@wdio/config"], "effects": ["@wdio/runner"], "range": ">=5.0.0-alpha.2", "nodes": ["node_modules/webdriver"], "fixAvailable": false}, "webdriverio": {"name": "webdriverio", "severity": "high", "isDirect": false, "via": ["@wdio/config", "archiver", "webdriver"], "effects": ["@wdio/globals", "expect-webdriverio"], "range": ">=5.0.0-alpha.2", "nodes": ["node_modules/webdriverio"], "fixAvailable": false}, "zip-stream": {"name": "zip-stream", "severity": "high", "isDirect": false, "via": ["archiver-utils"], "effects": [], "range": "0.8.0 - 6.0.1", "nodes": ["node_modules/zip-stream"], "fixAvailable": true}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 5, "high": 60, "critical": 2, "total": 67}, "dependencies": {"prod": 1, "dev": 1299, "optional": 47, "peer": 20, "peerOptional": 0, "total": 1299}}}}
$ /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 ERESOLVE overriding peer dependency
npm WARN While resolving: @typescript-eslint/eslint-plugin@8.46.0
npm WARN Found: eslint@8.57.1
npm WARN node_modules/eslint
npm WARN   dev eslint@"8.57.1" from the root project
npm WARN   28 more (@stylistic/eslint-plugin, eslint-compat-utils, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/eslint-plugin@8.46.0
npm WARN node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
npm WARN   @typescript-eslint/eslint-plugin@"8.46.0" from eslint-config-wikimedia@0.32.3
npm WARN   node_modules/eslint-config-wikimedia
npm WARN 
npm WARN Conflicting peer dependency: eslint@9.39.3
npm WARN node_modules/eslint
npm WARN   peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/eslint-plugin@8.46.0
npm WARN   node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
npm WARN     @typescript-eslint/eslint-plugin@"8.46.0" from eslint-config-wikimedia@0.32.3
npm WARN     node_modules/eslint-config-wikimedia
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @typescript-eslint/parser@8.46.0
npm WARN Found: eslint@8.57.1
npm WARN node_modules/eslint
npm WARN   dev eslint@"8.57.1" from the root project
npm WARN   28 more (@stylistic/eslint-plugin, eslint-compat-utils, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/parser@8.46.0
npm WARN node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser
npm WARN   @typescript-eslint/parser@"8.46.0" from eslint-config-wikimedia@0.32.3
npm WARN   node_modules/eslint-config-wikimedia
npm WARN   1 more (@typescript-eslint/eslint-plugin)
npm WARN 
npm WARN Conflicting peer dependency: eslint@9.39.3
npm WARN node_modules/eslint
npm WARN   peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/parser@8.46.0
npm WARN   node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser
npm WARN     @typescript-eslint/parser@"8.46.0" from eslint-config-wikimedia@0.32.3
npm WARN     node_modules/eslint-config-wikimedia
npm WARN     1 more (@typescript-eslint/eslint-plugin)
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @typescript-eslint/type-utils@8.46.0
npm WARN Found: peer eslint@"^8.57.0 || ^9.0.0" from the root project
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer eslint@"^8.57.0 || ^9.0.0" from the root project
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @typescript-eslint/type-utils@8.46.0
npm WARN Found: eslint@8.57.1
npm WARN node_modules/eslint
npm WARN   dev eslint@"8.57.1" from the root project
npm WARN   28 more (@stylistic/eslint-plugin, eslint-compat-utils, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/type-utils@8.46.0
npm WARN node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils
npm WARN   @typescript-eslint/type-utils@"8.46.0" from @typescript-eslint/eslint-plugin@8.46.0
npm WARN   node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
npm WARN 
npm WARN Conflicting peer dependency: eslint@9.39.3
npm WARN node_modules/eslint
npm WARN   peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/type-utils@8.46.0
npm WARN   node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils
npm WARN     @typescript-eslint/type-utils@"8.46.0" from @typescript-eslint/eslint-plugin@8.46.0
npm WARN     node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @typescript-eslint/utils@8.46.0
npm WARN Found: eslint@8.57.1
npm WARN node_modules/eslint
npm WARN   dev eslint@"8.57.1" from the root project
npm WARN   28 more (@stylistic/eslint-plugin, eslint-compat-utils, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/utils@8.46.0
npm WARN node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils
npm WARN   @typescript-eslint/utils@"8.46.0" from @typescript-eslint/eslint-plugin@8.46.0
npm WARN   node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
npm WARN   1 more (@typescript-eslint/type-utils)
npm WARN 
npm WARN Conflicting peer dependency: eslint@9.39.3
npm WARN node_modules/eslint
npm WARN   peer eslint@"^8.57.0 || ^9.0.0" from @typescript-eslint/utils@8.46.0
npm WARN   node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils
npm WARN     @typescript-eslint/utils@"8.46.0" from @typescript-eslint/eslint-plugin@8.46.0
npm WARN     node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
npm WARN     1 more (@typescript-eslint/type-utils)
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'luacheck-browserify@0.10.0',
npm WARN EBADENGINE   required: { node: '>=20.19.5' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 1299 packages, and audited 1300 packages in 44s

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

# npm audit report

form-data  <2.5.4
Severity: critical
form-data uses unsafe random function in form-data for choosing boundary - https://github.com/advisories/GHSA-fjxv-7rqg-78g4
fix available via `npm audit fix --force`
Will install wdio-mediawiki@6.3.2, which is a breaking change
node_modules/request/node_modules/form-data
  request  *
  Depends on vulnerable versions of form-data
  Depends on vulnerable versions of qs
  Depends on vulnerable versions of tough-cookie
  node_modules/request
    mwbot  >=0.1.6
    Depends on vulnerable versions of request
    node_modules/mwbot
      wdio-mediawiki  <=5.1.0
      Depends on vulnerable versions of mwbot
      node_modules/wdio-mediawiki

minimatch  <10.2.1
Severity: high
minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern - https://github.com/advisories/GHSA-3ppc-4f35-3m26
fix available via `npm audit fix --force`
Will install eslint@10.0.1, which is a breaking change
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/eslint-config-wikimedia/node_modules/minimatch
node_modules/filelist/node_modules/minimatch
node_modules/glob/node_modules/minimatch
node_modules/minimatch
node_modules/mocha/node_modules/minimatch
node_modules/readdir-glob/node_modules/minimatch
  @eslint/eslintrc  0.0.1 || >=0.1.1
  Depends on vulnerable versions of minimatch
  node_modules/@eslint/eslintrc
    eslint  0.7.1 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2
    Depends on vulnerable versions of @eslint/eslintrc
    Depends on vulnerable versions of @humanwhocodes/config-array
    Depends on vulnerable versions of file-entry-cache
    Depends on vulnerable versions of minimatch
    node_modules/eslint
      @typescript-eslint/eslint-plugin  *
      Depends on vulnerable versions of @typescript-eslint/parser
      Depends on vulnerable versions of @typescript-eslint/type-utils
      Depends on vulnerable versions of @typescript-eslint/type-utils
      Depends on vulnerable versions of @typescript-eslint/utils
      Depends on vulnerable versions of @typescript-eslint/utils
      Depends on vulnerable versions of eslint
      node_modules/@typescript-eslint/eslint-plugin
      node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin
        eslint-config-wikimedia  >=0.9.0
        Depends on vulnerable versions of @stylistic/eslint-plugin
        Depends on vulnerable versions of @typescript-eslint/eslint-plugin
        Depends on vulnerable versions of @typescript-eslint/parser
        Depends on vulnerable versions of eslint
        Depends on vulnerable versions of eslint-plugin-jest
        Depends on vulnerable versions of eslint-plugin-jsdoc
        Depends on vulnerable versions of eslint-plugin-vue
        node_modules/eslint-config-wikimedia
      @typescript-eslint/parser  >=1.1.1-alpha.0
      Depends on vulnerable versions of @typescript-eslint/typescript-estree
      Depends on vulnerable versions of eslint
      node_modules/@typescript-eslint/parser
      node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser
      @typescript-eslint/type-utils  >=5.9.2-alpha.0
      Depends on vulnerable versions of @typescript-eslint/typescript-estree
      Depends on vulnerable versions of @typescript-eslint/utils
      Depends on vulnerable versions of @typescript-eslint/utils
      Depends on vulnerable versions of eslint
      node_modules/@typescript-eslint/type-utils
      node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils
      @typescript-eslint/utils  *
      Depends on vulnerable versions of @typescript-eslint/typescript-estree
      Depends on vulnerable versions of eslint
      node_modules/@typescript-eslint/utils
      node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils
        @stylistic/eslint-plugin  2.7.0-beta.0 - 5.0.0-beta.6 || >=6.0.0-beta.1
        Depends on vulnerable versions of @typescript-eslint/utils
        node_modules/@stylistic/eslint-plugin
        eslint-plugin-jest  >=29.0.0
        Depends on vulnerable versions of @typescript-eslint/eslint-plugin
        Depends on vulnerable versions of @typescript-eslint/utils
        node_modules/eslint-plugin-jest
      eslint-plugin-jsdoc  8.4.4 - 62.6.1
      Depends on vulnerable versions of eslint
      node_modules/eslint-plugin-jsdoc
      eslint-plugin-vue  5.0.0-beta.0 - 10.7.0
      Depends on vulnerable versions of eslint
      node_modules/eslint-plugin-vue
  @humanwhocodes/config-array  *
  Depends on vulnerable versions of minimatch
  node_modules/@humanwhocodes/config-array
  @typescript-eslint/typescript-estree  >=6.16.0
  Depends on vulnerable versions of minimatch
  node_modules/@typescript-eslint/typescript-estree
  node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/typescript-estree
  filelist  >=0.0.2
  Depends on vulnerable versions of minimatch
  node_modules/filelist
    jake  >=10.6.1
    Depends on vulnerable versions of filelist
    node_modules/jake
      ejs  >=3.1.2
      Depends on vulnerable versions of jake
      node_modules/ejs
  glob  3.0.0 - 10.5.0
  Depends on vulnerable versions of minimatch
  node_modules/@jest/reporters/node_modules/glob
  node_modules/@wdio/config/node_modules/glob
  node_modules/@wikimedia/mw-node-qunit/node_modules/glob
  node_modules/archiver-utils/node_modules/glob
  node_modules/glob
  node_modules/jest-config/node_modules/glob
  node_modules/jest-runtime/node_modules/glob
  node_modules/rimraf/node_modules/glob
  node_modules/test-exclude/node_modules/glob
    @jest/reporters  *
    Depends on vulnerable versions of @jest/transform
    Depends on vulnerable versions of glob
    node_modules/@jest/reporters
      @jest/core  *
      Depends on vulnerable versions of @jest/reporters
      Depends on vulnerable versions of @jest/transform
      Depends on vulnerable versions of jest-config
      Depends on vulnerable versions of jest-resolve-dependencies
      Depends on vulnerable versions of jest-runner
      Depends on vulnerable versions of jest-runtime
      Depends on vulnerable versions of jest-snapshot
      node_modules/@jest/core
        jest  >=19.1.0-alpha.eed82034
        Depends on vulnerable versions of @jest/core
        Depends on vulnerable versions of jest-cli
        node_modules/jest
        jest-cli  >=19.1.0-alpha.eed82034
        Depends on vulnerable versions of @jest/core
        Depends on vulnerable versions of create-jest
        Depends on vulnerable versions of jest-config
        node_modules/jest-cli
    @wdio/config  *
    Depends on vulnerable versions of glob
    node_modules/@wdio/config
      @wdio/cli  *
      Depends on vulnerable versions of @wdio/config
      Depends on vulnerable versions of @wdio/globals
      Depends on vulnerable versions of create-wdio
      Depends on vulnerable versions of webdriverio
      node_modules/@wdio/cli
      @wdio/runner  *
      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  *
        Depends on vulnerable versions of @wdio/runner
        Depends on vulnerable versions of expect-webdriverio
        node_modules/@wdio/local-runner
      webdriver  >=5.0.0-alpha.2
      Depends on vulnerable versions of @wdio/config
      node_modules/webdriver
      webdriverio  >=5.0.0-alpha.2
      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
    @wikimedia/mw-node-qunit  *
    Depends on vulnerable versions of glob
    node_modules/@wikimedia/mw-node-qunit
    archiver-utils  >=0.2.0
    Depends on vulnerable versions of glob
    node_modules/archiver-utils
      archiver  >=0.20.0
      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  0.8.0 - 6.0.1
      Depends on vulnerable versions of archiver-utils
      node_modules/zip-stream
    jest-config  >=19.1.0-alpha.eed82034
    Depends on vulnerable versions of babel-jest
    Depends on vulnerable versions of glob
    Depends on vulnerable versions of jest-circus
    Depends on vulnerable versions of jest-runner
    node_modules/jest-config
      create-jest  >=29.7.0
      Depends on vulnerable versions of jest-config
      node_modules/create-jest
    jest-runtime  >=24.0.0-alpha.0
    Depends on vulnerable versions of @jest/globals
    Depends on vulnerable versions of @jest/transform
    Depends on vulnerable versions of glob
    Depends on vulnerable versions of jest-snapshot
    node_modules/jest-runtime
      jest-circus  >=25.2.4
      Depends on vulnerable versions of @jest/expect
      Depends on vulnerable versions of jest-runtime
      Depends on vulnerable versions of jest-snapshot
      node_modules/jest-circus
      jest-runner  >=24.0.0-alpha.0
      Depends on vulnerable versions of @jest/transform
      Depends on vulnerable versions of jest-runtime
      node_modules/jest-runner
    mocha  >=1.10.0
    Depends on vulnerable versions of glob
    Depends on vulnerable versions of minimatch
    node_modules/mocha
      @wdio/mocha-framework  *
      Depends on vulnerable versions of mocha
      node_modules/@wdio/mocha-framework
    rimraf  2.3.0 - 3.0.2 || 4.2.0 - 5.0.10
    Depends on vulnerable versions of glob
    node_modules/rimraf
      flat-cache  1.3.4 - 4.0.0
      Depends on vulnerable versions of rimraf
      node_modules/flat-cache
        file-entry-cache  4.0.0 - 7.0.2
        Depends on vulnerable versions of flat-cache
        node_modules/file-entry-cache
    test-exclude  4.2.2 || >=5.0.0
    Depends on vulnerable versions of glob
    Depends on vulnerable versions of minimatch
    node_modules/test-exclude
      babel-plugin-istanbul  >=5.0.1
      Depends on vulnerable versions of test-exclude
      node_modules/babel-plugin-istanbul
        @jest/transform  *
        Depends on vulnerable versions of babel-plugin-istanbul
        node_modules/@jest/transform
          babel-jest  >=24.0.0-alpha.0
          Depends on vulnerable versions of @jest/transform
          Depends on vulnerable versions of babel-plugin-istanbul
          node_modules/babel-jest
          jest-snapshot  >=27.0.0-next.0
          Depends on vulnerable versions of @jest/transform
          node_modules/jest-snapshot
            @jest/expect  *
            Depends on vulnerable versions of jest-snapshot
            node_modules/@jest/expect
              @jest/globals  >=28.0.0-alpha.0
              Depends on vulnerable versions of @jest/expect
              node_modules/@jest/globals
            jest-resolve-dependencies  >=27.0.0-next.0
            Depends on vulnerable versions of jest-snapshot
            node_modules/jest-resolve-dependencies
  multimatch  <=7.0.0
  Depends on vulnerable versions of minimatch
  node_modules/multimatch
    doiuse  >=2.2.0
    Depends on vulnerable versions of multimatch
    node_modules/doiuse
      stylelint-no-unsupported-browser-features  *
      Depends on vulnerable versions of doiuse
      node_modules/stylelint-no-unsupported-browser-features
        stylelint-config-wikimedia  >=0.10.2
        Depends on vulnerable versions of stylelint-no-unsupported-browser-features
        node_modules/stylelint-config-wikimedia
  readdir-glob  <=2.0.1
  Depends on vulnerable versions of minimatch
  node_modules/readdir-glob
  recursive-readdir  >=1.2.0
  Depends on vulnerable versions of minimatch
  node_modules/recursive-readdir
    create-wdio  >=9.17.0
    Depends on vulnerable versions of ejs
    Depends on vulnerable versions of recursive-readdir
    node_modules/create-wdio

qs  <6.14.1
Severity: high
qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion - https://github.com/advisories/GHSA-6rw7-vpxm-498p
fix available via `npm audit fix --force`
Will install wdio-mediawiki@6.3.2, which is a breaking change
node_modules/qs


tough-cookie  <4.1.3
Severity: moderate
tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3
fix available via `npm audit fix --force`
Will install wdio-mediawiki@6.3.2, which is a breaking change
node_modules/request/node_modules/tough-cookie

65 vulnerabilities (3 moderate, 60 high, 2 critical)

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

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

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

--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'luacheck-browserify@0.10.0',
npm WARN EBADENGINE   required: { node: '>=20.19.5' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 1299 packages, and audited 1300 packages in 45s

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

65 vulnerabilities (3 moderate, 60 high, 2 critical)

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

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

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

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/codemirror.preferences.test.js (5.844 s)
PASS tests/jest/codemirror.test.js (7.616 s)
PASS tests/jest/modes/codemirror.mediawiki.test.js (8.514 s)
PASS tests/jest/codemirror.wikieditor.test.js
PASS tests/jest/modes/codemirror.json.lint.test.js
PASS tests/jest/codemirror.codex.test.js
PASS tests/jest/codemirror.search.test.js
PASS tests/jest/modes/codemirror.mediawiki.lint.test.js
PASS tests/jest/modes/codemirror.mediawiki.autocomplete.test.js
PASS tests/jest/modes/codemirror.mediawiki.parser.test.js
PASS tests/jest/codemirror.extensionRegistry.test.js
PASS tests/jest/codemirror.keymap.test.js
PASS tests/jest/modes/codemirror.mediawiki.keymap.test.js
PASS tests/jest/modes/codemirror.lua.autocomplete.test.js
PASS tests/jest/codemirror.visualEditor.test.js
PASS tests/jest/codemirror.lint.test.js
PASS tests/jest/codemirror.matchbrackets.test.js
PASS tests/jest/codemirror.child.test.js
PASS tests/jest/modes/codemirror.mediawiki.bidiIsolation.test.js
PASS tests/jest/codemirror.gotoLine.test.js
PASS tests/jest/modes/codemirror.mediawiki.openLinks.test.js
PASS tests/jest/modes/codemirror.javascript.autocomplete.test.js
PASS tests/jest/modes/codemirror.css.test.js
PASS tests/jest/modes/codemirror.css.autocomplete.test.js
PASS tests/jest/modes/codemirror.lua.codeFolding.test.js
PASS tests/jest/codemirror.init.test.js
PASS tests/jest/modes/codemirror.javascript.test.js (6.919 s)

Test Suites: 27 passed, 27 total
Tests:       3148 passed, 3148 total
Snapshots:   0 total
Time:        19.245 s
Ran all test suites.

resources/codemirror.bundle.lib.js → resources/lib/codemirror6.bundle.lib.js...
created resources/lib/codemirror6.bundle.lib.js in 1.5s

resources/modes/codemirror.bundle.modes.js → resources/lib/codemirror6.bundle.modes.js...
(!) Conflicting re-exports
"resources/modes/codemirror.bundle.modes.js" re-exports "autoCloseTags" from both "node_modules/@codemirror/lang-javascript/dist/index.js" and "node_modules/@codemirror/lang-html/dist/index.js" (will be ignored).
created resources/lib/codemirror6.bundle.modes.js in 351ms

  resources/workers/css/worker.min.js  674.4kb

⚡ Done in 175ms

  resources/workers/javascript/worker.min.js  1.1mb ⚠️

⚡ Done in 198ms

  resources/workers/lua/worker.min.js  605.0kb

⚡ Done in 74ms

  resources/workers/mediawiki/worker.min.js  121.7kb

⚡ Done in 53ms
--- stdout ---

> test
> npm run test:lint && npm run test:unit && npm run check-built-assets


> test:lint
> npm run test:lint:styles && npm run test:lint:js && npm run test:lint:i18n


> test:lint:styles
> stylelint --cache "resources/**/*.less"


> test:lint:js
> ESLINT_USE_FLAT_CONFIG=false eslint --cache .


> test:lint:i18n
> banana-checker i18n/

Checked 1 message directory.

> test:unit
> jest

----------------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------------------------------------------
File                                    | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                                                                                      
----------------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------------------------------------------
All files                               |   80.96 |    74.07 |   72.54 |   81.39 |                                                                                                                        
 resources                              |   83.25 |    72.76 |   75.16 |   83.58 |                                                                                                                        
  codemirror.bundle.lib.js              |       0 |        0 |       0 |       0 |                                                                                                                        
  codemirror.child.js                   |    87.5 |      100 |   85.71 |    87.5 | 52-53                                                                                                                  
  codemirror.codex.js                   |   97.05 |    78.72 |   78.57 |   97.05 | 283-284,389,395-396                                                                                                    
  codemirror.extensionRegistry.js       |    92.5 |    84.37 |     100 |    92.5 | 153,188-189                                                                                                            
  codemirror.gotoLine.js                |   90.62 |    58.06 |     100 |   90.47 | 167,175-179,181                                                                                                        
  codemirror.init.js                    |   17.07 |    18.75 |       0 |   17.07 | 26-82,96-136                                                                                                           
  codemirror.js                         |   89.09 |    85.03 |   82.35 |   89.37 | 272,376-385,643-650,728,828,842-847,877,928,999,1172,1174-1190                                                         
  codemirror.keymap.js                  |   97.87 |    90.21 |   94.11 |   97.87 | 244,385,421                                                                                                            
  codemirror.lint.js                    |   81.44 |    80.76 |   68.42 |   81.91 | 13-21,37,41,51,63-64,84-88,137                                                                                         
  codemirror.matchbrackets.js           |     100 |      100 |     100 |     100 |                                                                                                                        
  codemirror.panel.js                   |     100 |      100 |   33.33 |     100 |                                                                                                                        
  codemirror.preferences.js             |   88.15 |    84.52 |   80.48 |   88.51 | 244,448-450,486,529-530,605,619,631-636,648-649,691-697,717-718                                                        
  codemirror.search.js                  |   74.11 |    38.37 |   68.96 |   74.11 | 108-135,275,311-312,323-324,428-467,504-518,530-532                                                                    
  codemirror.textSelection.js           |   81.96 |    96.42 |   83.33 |   83.33 | 83-88,191-192,196-197,229-239                                                                                          
  codemirror.validate.js                |   19.04 |        0 |   16.66 |   19.04 | 14-47                                                                                                                  
  codemirror.visualEditor.js            |   62.16 |     32.5 |   82.35 |   63.01 | 111-112,248-254,267-349                                                                                                
  codemirror.wikieditor.js              |   72.16 |    64.86 |   55.26 |   73.68 | 66,78,85,104-113,279,300,303,318-346,383,472-488,496,519-524                                                           
 resources/modes                        |   68.57 |    68.96 |   60.34 |   68.78 |                                                                                                                        
  codemirror.bundle.modes.js            |       0 |        0 |       0 |       0 |                                                                                                                        
  codemirror.css.js                     |   69.09 |       56 |   57.14 |   68.51 | 39-40,86,101-120,156-158                                                                                               
  codemirror.javascript.js              |   94.11 |    93.33 |    87.5 |   94.11 | 62                                                                                                                     
  codemirror.json.js                    |       0 |        0 |       0 |       0 | 1-73                                                                                                                   
  codemirror.lua.js                     |   84.61 |    79.68 |   78.94 |   85.22 | 345,356,358,363,375,385,445,454-455,473-476                                                                            
  codemirror.mode.exporter.js           |     100 |      100 |     100 |     100 |                                                                                                                        
  codemirror.mode.js                    |   72.72 |       50 |   57.14 |   72.72 | 59-68,95                                                                                                               
  codemirror.vue.js                     |       0 |      100 |       0 |       0 | 1-39                                                                                                                   
 resources/modes/json                   |   99.41 |    99.03 |     100 |   99.41 |                                                                                                                        
  codemirror.json.lint.js               |   99.41 |    99.03 |     100 |   99.41 | 111                                                                                                                    
 resources/modes/mediawiki              |   78.18 |    72.99 |   70.63 |   78.72 |                                                                                                                        
  codemirror.mediawiki.autocomplete.js  |   50.83 |    39.74 |   42.85 |   50.44 | 49-72,89-120,135-140,157-158,188,195-201,274                                                                           
  codemirror.mediawiki.bidiIsolation.js |     100 |    61.11 |     100 |     100 | 33,92-113                                                                                                              
  codemirror.mediawiki.codeFolding.js   |   52.02 |    49.52 |   41.37 |   52.43 | 137,148,153-162,188,194,205,235-236,250-254,273-282,309-320,332-351,375-432,451-467                                    
  codemirror.mediawiki.config.js        |     100 |      100 |     100 |     100 |                                                                                                                        
  codemirror.mediawiki.js               |   96.23 |    95.12 |   97.02 |   96.21 | 265-266,342-343,394,478-480,490-493,588-590,1025-1027,1031-1032,1333,1363-1368,1500,1553-1557,1664,1692,1700-1701,1714 
  codemirror.mediawiki.keymap.js        |   78.94 |       70 |   72.22 |   78.94 | 211-212,228-247,312-331,383-388                                                                                        
  codemirror.mediawiki.lint.js          |   52.23 |    27.58 |    40.9 |   53.33 | 25,142,162-189,199-211                                                                                                 
  codemirror.mediawiki.matchTag.js      |   17.33 |        0 |    6.66 |   18.05 | 9-18,60-90,103-122,134-152,164-182                                                                                     
  codemirror.mediawiki.openLinks.js     |    30.5 |    15.25 |      80 |    30.5 | 61-115                                                                                                                 
----------------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------------------------------------------

> check-built-assets
> { git status resources/lib/ | grep "nothing to commit, working tree clean"; } && { echo 'CHECKING BUILD SOURCES ARE COMMITTED' && npm run build && git status resources/lib/ | grep "nothing to commit, working tree clean" || { npm run node-debug; false; }; }

nothing to commit, working tree clean
CHECKING BUILD SOURCES ARE COMMITTED

> build
> rollup -c && npm run build:stylelint && npm run build:eslint && npm run build:luacheck && npm run build:wikilint


> build:stylelint
> esbuild resources/workers/css/worker.js --charset=utf8 --bundle --minify --target=es2017 --format=iife --outfile=resources/workers/css/worker.min.js


> build:eslint
> esbuild resources/workers/javascript/worker.js --charset=utf8 --bundle --minify --target=es2017 --format=iife --outfile=resources/workers/javascript/worker.min.js


> build:luacheck
> esbuild resources/workers/lua/worker.js --charset=utf8 --bundle --minify --target=es2017 --format=iife --outfile=resources/workers/lua/worker.min.js


> build:wikilint
> esbuild resources/workers/mediawiki/worker.js --charset=utf8 --bundle --minify --target=es2017 --format=iife --outfile=resources/workers/mediawiki/worker.min.js

nothing to commit, working tree clean

--- end ---
{}
{}
{}
{"1113398": {"source": 1113398, "name": "ajv", "dependency": "ajv", "title": "ajv has ReDoS when using `$data` option", "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", "severity": "moderate", "cwe": ["CWE-400"], "cvss": {"score": 0, "vectorString": null}, "range": "<6.14.0"}, "1113399": {"source": 1113399, "name": "ajv", "dependency": "ajv", "title": "ajv has ReDoS when using `$data` option", "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", "severity": "moderate", "cwe": ["CWE-400"], "cvss": {"score": 0, "vectorString": null}, "range": ">=7.0.0-alpha.0 <8.18.0"}}
Upgrading n:ajv from 6.12.6, 8.17.1 -> 6.14.0, 8.18.0
{}
{}
{"1113331": {"source": 1113331, "name": "fast-xml-parser", "dependency": "fast-xml-parser", "title": "fast-xml-parser affected by DoS through entity expansion in DOCTYPE (no expansion limit)", "url": "https://github.com/advisories/GHSA-jmr7-xgp7-cmfj", "severity": "high", "cwe": ["CWE-776"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=4.1.3 <5.3.6"}}
Upgrading n:fast-xml-parser from 5.3.5 -> 5.3.7
{}
{}
{}
{"1113190": {"source": 1113190, "name": "markdown-it", "dependency": "markdown-it", "title": "markdown-it is has a Regular Expression Denial of Service (ReDoS)", "url": "https://github.com/advisories/GHSA-38c4-r59v-3vqw", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=13.0.0 <14.1.1"}}
Upgrading n:markdown-it from 14.1.0 -> 14.1.1
{}
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json

--- end ---
build: Updating dependencies

composer:
* mediawiki/minus-x: 2.0.0 → 2.0.1

npm:
* ajv: 6.12.6, 8.17.1 → 6.14.0, 8.18.0
  * https://github.com/advisories/GHSA-2g4f-4pwh-qvx6
* fast-xml-parser: 5.3.5 → 5.3.7
  * https://github.com/advisories/GHSA-jmr7-xgp7-cmfj
* markdown-it: 14.1.0 → 14.1.1
  * https://github.com/advisories/GHSA-38c4-r59v-3vqw


$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmp995a54hs
--- stdout ---
[master 19c05e5] build: Updating dependencies
 2 files changed, 235 insertions(+), 433 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From 19c05e5f45d88c7097f77114f086585fa88bc778 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sat, 21 Feb 2026 11:45:07 +0000
Subject: [PATCH] build: Updating dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

composer:
* mediawiki/minus-x: 2.0.0 → 2.0.1

npm:
* ajv: 6.12.6, 8.17.1 → 6.14.0, 8.18.0
  * https://github.com/advisories/GHSA-2g4f-4pwh-qvx6
* fast-xml-parser: 5.3.5 → 5.3.7
  * https://github.com/advisories/GHSA-jmr7-xgp7-cmfj
* markdown-it: 14.1.0 → 14.1.1
  * https://github.com/advisories/GHSA-38c4-r59v-3vqw

Change-Id: I00212a9961a9e1a7c4d85344ceadb4d6047f0643
---
 composer.json     |   2 +-
 package-lock.json | 666 ++++++++++++++++------------------------------
 2 files changed, 235 insertions(+), 433 deletions(-)

diff --git a/composer.json b/composer.json
index b2b9bb7..ae1f4f1 100644
--- a/composer.json
+++ b/composer.json
@@ -2,7 +2,7 @@
 	"require-dev": {
 		"mediawiki/mediawiki-codesniffer": "49.0.0",
 		"mediawiki/mediawiki-phan-config": "0.18.0",
-		"mediawiki/minus-x": "2.0.0",
+		"mediawiki/minus-x": "2.0.1",
 		"php-parallel-lint/php-console-highlighter": "1.0.0",
 		"php-parallel-lint/php-parallel-lint": "1.4.0"
 	},
diff --git a/package-lock.json b/package-lock.json
index 4f0156d..13764d4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1176,9 +1176,9 @@
 			}
 		},
 		"node_modules/@eslint-community/eslint-utils": {
-			"version": "4.7.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
-			"integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
+			"version": "4.9.1",
+			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
+			"integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
 			"dev": true,
 			"dependencies": {
 				"eslint-visitor-keys": "^3.4.3"
@@ -2015,9 +2015,9 @@
 			}
 		},
 		"node_modules/@jest/expect-utils": {
-			"version": "30.1.2",
-			"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.1.2.tgz",
-			"integrity": "sha512-HXy1qT/bfdjCv7iC336ExbqqYtZvljrV8odNdso7dWK9bSeHtLlvwWWC3YSybSPL03Gg5rug6WLCZAZFH72m0A==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz",
+			"integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==",
 			"dev": true,
 			"dependencies": {
 				"@jest/get-type": "30.1.0"
@@ -3155,22 +3155,21 @@
 			}
 		},
 		"node_modules/@typescript-eslint/eslint-plugin": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.50.0.tgz",
-			"integrity": "sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.0.tgz",
+			"integrity": "sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==",
 			"dev": true,
-			"license": "MIT",
 			"optional": true,
 			"peer": true,
 			"dependencies": {
-				"@eslint-community/regexpp": "^4.10.0",
-				"@typescript-eslint/scope-manager": "8.50.0",
-				"@typescript-eslint/type-utils": "8.50.0",
-				"@typescript-eslint/utils": "8.50.0",
-				"@typescript-eslint/visitor-keys": "8.50.0",
-				"ignore": "^7.0.0",
+				"@eslint-community/regexpp": "^4.12.2",
+				"@typescript-eslint/scope-manager": "8.56.0",
+				"@typescript-eslint/type-utils": "8.56.0",
+				"@typescript-eslint/utils": "8.56.0",
+				"@typescript-eslint/visitor-keys": "8.56.0",
+				"ignore": "^7.0.5",
 				"natural-compare": "^1.4.0",
-				"ts-api-utils": "^2.1.0"
+				"ts-api-utils": "^2.4.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3180,8 +3179,8 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			},
 			"peerDependencies": {
-				"@typescript-eslint/parser": "^8.50.0",
-				"eslint": "^8.57.0 || ^9.0.0",
+				"@typescript-eslint/parser": "^8.56.0",
+				"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
 				"typescript": ">=4.8.4 <6.0.0"
 			}
 		},
@@ -3198,18 +3197,17 @@
 			}
 		},
 		"node_modules/@typescript-eslint/parser": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.1.tgz",
-			"integrity": "sha512-nm3cvFN9SqZGXjmw5bZ6cGmvJSyJPn0wU9gHAZZHDnZl2wF9PhHv78Xf06E0MaNk4zLVHL8hb2/c32XvyJOLQg==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.0.tgz",
+			"integrity": "sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==",
 			"dev": true,
-			"license": "MIT",
 			"optional": true,
 			"peer": true,
 			"dependencies": {
-				"@typescript-eslint/scope-manager": "8.53.1",
-				"@typescript-eslint/types": "8.53.1",
-				"@typescript-eslint/typescript-estree": "8.53.1",
-				"@typescript-eslint/visitor-keys": "8.53.1",
+				"@typescript-eslint/scope-manager": "8.56.0",
+				"@typescript-eslint/types": "8.56.0",
+				"@typescript-eslint/typescript-estree": "8.56.0",
+				"@typescript-eslint/visitor-keys": "8.56.0",
 				"debug": "^4.4.3"
 			},
 			"engines": {
@@ -3220,209 +3218,19 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			},
 			"peerDependencies": {
-				"eslint": "^8.57.0 || ^9.0.0",
+				"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
 				"typescript": ">=4.8.4 <6.0.0"
 			}
 		},
-		"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/project-service": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.1.tgz",
-			"integrity": "sha512-WYC4FB5Ra0xidsmlPb+1SsnaSKPmS3gsjIARwbEkHkoWloQmuzcfypljaJcR78uyLA1h8sHdWWPHSLDI+MtNog==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"@typescript-eslint/tsconfig-utils": "^8.53.1",
-				"@typescript-eslint/types": "^8.53.1",
-				"debug": "^4.4.3"
-			},
-			"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 <6.0.0"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.1.tgz",
-			"integrity": "sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"@typescript-eslint/types": "8.53.1",
-				"@typescript-eslint/visitor-keys": "8.53.1"
-			},
-			"engines": {
-				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/typescript-eslint"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/tsconfig-utils": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.1.tgz",
-			"integrity": "sha512-qfvLXS6F6b1y43pnf0pPbXJ+YoXIC7HKg0UGZ27uMIemKMKA6XH2DTxsEDdpdN29D+vHV07x/pnlPNVLhdhWiA==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": 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 <6.0.0"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.1.tgz",
-			"integrity": "sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": 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/parser/node_modules/@typescript-eslint/typescript-estree": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.1.tgz",
-			"integrity": "sha512-RGlVipGhQAG4GxV1s34O91cxQ/vWiHJTDHbXRr0li2q/BGg3RR/7NM8QDWgkEgrwQYCvmJV9ichIwyoKCQ+DTg==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"@typescript-eslint/project-service": "8.53.1",
-				"@typescript-eslint/tsconfig-utils": "8.53.1",
-				"@typescript-eslint/types": "8.53.1",
-				"@typescript-eslint/visitor-keys": "8.53.1",
-				"debug": "^4.4.3",
-				"minimatch": "^9.0.5",
-				"semver": "^7.7.3",
-				"tinyglobby": "^0.2.15",
-				"ts-api-utils": "^2.4.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 <6.0.0"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
-			"version": "8.53.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.1.tgz",
-			"integrity": "sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"@typescript-eslint/types": "8.53.1",
-				"eslint-visitor-keys": "^4.2.1"
-			},
-			"engines": {
-				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/typescript-eslint"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/brace-expansion": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
-			"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"balanced-match": "^1.0.0"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/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,
-			"license": "Apache-2.0",
-			"optional": true,
-			"peer": true,
-			"engines": {
-				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-			},
-			"funding": {
-				"url": "https://opencollective.com/eslint"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/minimatch": {
-			"version": "9.0.5",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
-			"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
-			"dev": true,
-			"license": "ISC",
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"brace-expansion": "^2.0.1"
-			},
-			"engines": {
-				"node": ">=16 || 14 >=14.17"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
-		"node_modules/@typescript-eslint/parser/node_modules/semver": {
-			"version": "7.7.3",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
-			"integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
-			"dev": true,
-			"license": "ISC",
-			"optional": true,
-			"peer": true,
-			"bin": {
-				"semver": "bin/semver.js"
-			},
-			"engines": {
-				"node": ">=10"
-			}
-		},
 		"node_modules/@typescript-eslint/project-service": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.50.0.tgz",
-			"integrity": "sha512-Cg/nQcL1BcoTijEWyx4mkVC56r8dj44bFDvBdygifuS20f3OZCHmFbjF34DPSi07kwlFvqfv/xOLnJ5DquxSGQ==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.0.tgz",
+			"integrity": "sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/tsconfig-utils": "^8.50.0",
-				"@typescript-eslint/types": "^8.50.0",
-				"debug": "^4.3.4"
+				"@typescript-eslint/tsconfig-utils": "^8.56.0",
+				"@typescript-eslint/types": "^8.56.0",
+				"debug": "^4.4.3"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3436,14 +3244,13 @@
 			}
 		},
 		"node_modules/@typescript-eslint/scope-manager": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.50.0.tgz",
-			"integrity": "sha512-xCwfuCZjhIqy7+HKxBLrDVT5q/iq7XBVBXLn57RTIIpelLtEIZHXAF/Upa3+gaCpeV1NNS5Z9A+ID6jn50VD4A==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.0.tgz",
+			"integrity": "sha512-7UiO/XwMHquH+ZzfVCfUNkIXlp/yQjjnlYUyYz7pfvlK3/EyyN6BK+emDmGNyQLBtLGaYrTAI6KOw8tFucWL2w==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/types": "8.50.0",
-				"@typescript-eslint/visitor-keys": "8.50.0"
+				"@typescript-eslint/types": "8.56.0",
+				"@typescript-eslint/visitor-keys": "8.56.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3454,11 +3261,10 @@
 			}
 		},
 		"node_modules/@typescript-eslint/tsconfig-utils": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.50.0.tgz",
-			"integrity": "sha512-vxd3G/ybKTSlm31MOA96gqvrRGv9RJ7LGtZCn2Vrc5htA0zCDvcMqUkifcjrWNNKXHUU3WCkYOzzVSFBd0wa2w==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.0.tgz",
+			"integrity": "sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 			},
@@ -3471,19 +3277,18 @@
 			}
 		},
 		"node_modules/@typescript-eslint/type-utils": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.50.0.tgz",
-			"integrity": "sha512-7OciHT2lKCewR0mFoBrvZJ4AXTMe/sYOe87289WAViOocEmDjjv8MvIOT2XESuKj9jp8u3SZYUSh89QA4S1kQw==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.56.0.tgz",
+			"integrity": "sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==",
 			"dev": true,
-			"license": "MIT",
 			"optional": true,
 			"peer": true,
 			"dependencies": {
-				"@typescript-eslint/types": "8.50.0",
-				"@typescript-eslint/typescript-estree": "8.50.0",
-				"@typescript-eslint/utils": "8.50.0",
-				"debug": "^4.3.4",
-				"ts-api-utils": "^2.1.0"
+				"@typescript-eslint/types": "8.56.0",
+				"@typescript-eslint/typescript-estree": "8.56.0",
+				"@typescript-eslint/utils": "8.56.0",
+				"debug": "^4.4.3",
+				"ts-api-utils": "^2.4.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3493,16 +3298,15 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			},
 			"peerDependencies": {
-				"eslint": "^8.57.0 || ^9.0.0",
+				"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
 				"typescript": ">=4.8.4 <6.0.0"
 			}
 		},
 		"node_modules/@typescript-eslint/types": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.50.0.tgz",
-			"integrity": "sha512-iX1mgmGrXdANhhITbpp2QQM2fGehBse9LbTf0sidWK6yg/NE+uhV5dfU1g6EYPlcReYmkE9QLPq/2irKAmtS9w==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.0.tgz",
+			"integrity": "sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 			},
@@ -3512,21 +3316,20 @@
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.50.0.tgz",
-			"integrity": "sha512-W7SVAGBR/IX7zm1t70Yujpbk+zdPq/u4soeFSknWFdXIFuWsBGBOUu/Tn/I6KHSKvSh91OiMuaSnYp3mtPt5IQ==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.0.tgz",
+			"integrity": "sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/project-service": "8.50.0",
-				"@typescript-eslint/tsconfig-utils": "8.50.0",
-				"@typescript-eslint/types": "8.50.0",
-				"@typescript-eslint/visitor-keys": "8.50.0",
-				"debug": "^4.3.4",
-				"minimatch": "^9.0.4",
-				"semver": "^7.6.0",
+				"@typescript-eslint/project-service": "8.56.0",
+				"@typescript-eslint/tsconfig-utils": "8.56.0",
+				"@typescript-eslint/types": "8.56.0",
+				"@typescript-eslint/visitor-keys": "8.56.0",
+				"debug": "^4.4.3",
+				"minimatch": "^9.0.5",
+				"semver": "^7.7.3",
 				"tinyglobby": "^0.2.15",
-				"ts-api-utils": "^2.1.0"
+				"ts-api-utils": "^2.4.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3544,7 +3347,6 @@
 			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
 			"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"balanced-match": "^1.0.0"
 			}
@@ -3554,7 +3356,6 @@
 			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
 			"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
 			"dev": true,
-			"license": "ISC",
 			"dependencies": {
 				"brace-expansion": "^2.0.1"
 			},
@@ -3566,11 +3367,10 @@
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
-			"version": "7.7.3",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
-			"integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+			"version": "7.7.4",
+			"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+			"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
 			"dev": true,
-			"license": "ISC",
 			"bin": {
 				"semver": "bin/semver.js"
 			},
@@ -3579,16 +3379,15 @@
 			}
 		},
 		"node_modules/@typescript-eslint/utils": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.50.0.tgz",
-			"integrity": "sha512-87KgUXET09CRjGCi2Ejxy3PULXna63/bMYv72tCAlDJC3Yqwln0HiFJ3VJMst2+mEtNtZu5oFvX4qJGjKsnAgg==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.56.0.tgz",
+			"integrity": "sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@eslint-community/eslint-utils": "^4.7.0",
-				"@typescript-eslint/scope-manager": "8.50.0",
-				"@typescript-eslint/types": "8.50.0",
-				"@typescript-eslint/typescript-estree": "8.50.0"
+				"@eslint-community/eslint-utils": "^4.9.1",
+				"@typescript-eslint/scope-manager": "8.56.0",
+				"@typescript-eslint/types": "8.56.0",
+				"@typescript-eslint/typescript-estree": "8.56.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3598,19 +3397,18 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			},
 			"peerDependencies": {
-				"eslint": "^8.57.0 || ^9.0.0",
+				"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
 				"typescript": ">=4.8.4 <6.0.0"
 			}
 		},
 		"node_modules/@typescript-eslint/visitor-keys": {
-			"version": "8.50.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.50.0.tgz",
-			"integrity": "sha512-Xzmnb58+Db78gT/CCj/PVCvK+zxbnsw6F+O1oheYszJbBSdEjVhQi3C/Xttzxgi/GLmpvOggRs1RFpiJ8+c34Q==",
+			"version": "8.56.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.0.tgz",
+			"integrity": "sha512-q+SL+b+05Ud6LbEE35qe4A99P+htKTKVbyiNEe45eCbJFyh/HVK9QXwlrbz+Q4L8SOW4roxSVwXYj4DMBT7Ieg==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/types": "8.50.0",
-				"eslint-visitor-keys": "^4.2.1"
+				"@typescript-eslint/types": "8.56.0",
+				"eslint-visitor-keys": "^5.0.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3621,13 +3419,12 @@
 			}
 		},
 		"node_modules/@typescript-eslint/visitor-keys/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==",
+			"version": "5.0.1",
+			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+			"integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
 			"dev": true,
-			"license": "Apache-2.0",
 			"engines": {
-				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+				"node": "^20.19.0 || ^22.13.0 || >=24"
 			},
 			"funding": {
 				"url": "https://opencollective.com/eslint"
@@ -4508,9 +4305,10 @@
 			}
 		},
 		"node_modules/ajv": {
-			"version": "6.12.6",
+			"version": "6.14.0",
+			"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+			"integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"fast-deep-equal": "^3.1.1",
 				"fast-json-stable-stringify": "^2.0.0",
@@ -5108,12 +4906,15 @@
 			]
 		},
 		"node_modules/baseline-browser-mapping": {
-			"version": "2.8.28",
-			"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.28.tgz",
-			"integrity": "sha512-gYjt7OIqdM0PcttNYP2aVrr2G0bMALkBaoehD4BuRGjAOtipg0b6wHg1yNL+s5zSnLZZrGHOw4IrND8CD+3oIQ==",
+			"version": "2.10.0",
+			"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz",
+			"integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==",
 			"dev": true,
 			"bin": {
-				"baseline-browser-mapping": "dist/cli.js"
+				"baseline-browser-mapping": "dist/cli.cjs"
+			},
+			"engines": {
+				"node": ">=6.0.0"
 			}
 		},
 		"node_modules/basic-ftp": {
@@ -5180,9 +4981,9 @@
 			"license": "ISC"
 		},
 		"node_modules/browserslist": {
-			"version": "4.28.0",
-			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz",
-			"integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+			"integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
 			"dev": true,
 			"funding": [
 				{
@@ -5199,11 +5000,11 @@
 				}
 			],
 			"dependencies": {
-				"baseline-browser-mapping": "^2.8.25",
-				"caniuse-lite": "^1.0.30001754",
-				"electron-to-chromium": "^1.5.249",
+				"baseline-browser-mapping": "^2.9.0",
+				"caniuse-lite": "^1.0.30001759",
+				"electron-to-chromium": "^1.5.263",
 				"node-releases": "^2.0.27",
-				"update-browserslist-db": "^1.1.4"
+				"update-browserslist-db": "^1.2.0"
 			},
 			"bin": {
 				"browserslist": "cli.js"
@@ -5320,9 +5121,9 @@
 			}
 		},
 		"node_modules/caniuse-lite": {
-			"version": "1.0.30001754",
-			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz",
-			"integrity": "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==",
+			"version": "1.0.30001770",
+			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001770.tgz",
+			"integrity": "sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw==",
 			"dev": true,
 			"funding": [
 				{
@@ -6643,19 +6444,18 @@
 			}
 		},
 		"node_modules/doiuse": {
-			"version": "6.0.5",
-			"resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.5.tgz",
-			"integrity": "sha512-ljuf9ndGqKST0GlPAYyCg04hbQAeR1xIIWVDjQaDDkoTY/Y1Vb+8FNoy6NuVuJIEEKe/nKUH8NRWjG7JJxZ9Eg==",
+			"version": "6.0.6",
+			"resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.6.tgz",
+			"integrity": "sha512-XuPRslcWHhQJ+WjCjimRUcNfhZvOiC0610FsY6WeSlzXvoZYtm6iOpR9K0N4wRoM/lP4i7LatT+IhltAzouSOw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"browserslist": "^4.24.0",
-				"caniuse-lite": "^1.0.30001669",
+				"browserslist": "^4.28.1",
+				"caniuse-lite": "^1.0.30001760",
 				"css-tokenize": "^1.0.1",
 				"duplexify": "^4.1.3",
 				"multimatch": "^5.0.0",
-				"postcss": "^8.4.47",
-				"source-map": "^0.7.4",
+				"postcss": "^8.5.6",
+				"source-map": "^0.7.6",
 				"yargs": "^17.7.2"
 			},
 			"bin": {
@@ -6666,13 +6466,12 @@
 			}
 		},
 		"node_modules/doiuse/node_modules/source-map": {
-			"version": "0.7.4",
-			"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
-			"integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+			"version": "0.7.6",
+			"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz",
+			"integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==",
 			"dev": true,
-			"license": "BSD-3-Clause",
 			"engines": {
-				"node": ">= 8"
+				"node": ">= 12"
 			}
 		},
 		"node_modules/dom-serializer": {
@@ -6927,9 +6726,9 @@
 			}
 		},
 		"node_modules/electron-to-chromium": {
-			"version": "1.5.252",
-			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.252.tgz",
-			"integrity": "sha512-53uTpjtRgS7gjIxZ4qCgFdNO2q+wJt/Z8+xAvxbCqXPJrY6h7ighUkadQmNMXH96crtpa6gPFNP7BF4UBGDuaA==",
+			"version": "1.5.302",
+			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz",
+			"integrity": "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==",
 			"dev": true
 		},
 		"node_modules/emittery": {
@@ -7612,11 +7411,10 @@
 			}
 		},
 		"node_modules/eslint-plugin-jest": {
-			"version": "29.5.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.5.0.tgz",
-			"integrity": "sha512-DAi9H8xN/TUuNOt+xDP1RqpCJLsSxBb5u1zXSpCyp0VAWGL8MBAg5t7/Dk+76iX7d1LhWu4DDH77IQNUolLDyg==",
+			"version": "29.15.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.15.0.tgz",
+			"integrity": "sha512-ZCGr7vTH2WSo2hrK5oM2RULFmMruQ7W3cX7YfwoTiPfzTGTFBMmrVIz45jZHd++cGKj/kWf02li/RhTGcANJSA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"@typescript-eslint/utils": "^8.0.0"
 			},
@@ -7625,8 +7423,9 @@
 			},
 			"peerDependencies": {
 				"@typescript-eslint/eslint-plugin": "^8.0.0",
-				"eslint": "^8.57.0 || ^9.0.0",
-				"jest": "*"
+				"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+				"jest": "*",
+				"typescript": ">=4.8.4 <6.0.0"
 			},
 			"peerDependenciesMeta": {
 				"@typescript-eslint/eslint-plugin": {
@@ -7634,6 +7433,9 @@
 				},
 				"jest": {
 					"optional": true
+				},
+				"typescript": {
+					"optional": true
 				}
 			}
 		},
@@ -8379,35 +8181,35 @@
 			}
 		},
 		"node_modules/expect": {
-			"version": "30.1.2",
-			"resolved": "https://registry.npmjs.org/expect/-/expect-30.1.2.tgz",
-			"integrity": "sha512-xvHszRavo28ejws8FpemjhwswGj4w/BetHIL8cU49u4sGyXDw2+p3YbeDbj6xzlxi6kWTjIRSTJ+9sNXPnF0Zg==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz",
+			"integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==",
 			"dev": true,
 			"dependencies": {
-				"@jest/expect-utils": "30.1.2",
+				"@jest/expect-utils": "30.2.0",
 				"@jest/get-type": "30.1.0",
-				"jest-matcher-utils": "30.1.2",
-				"jest-message-util": "30.1.0",
-				"jest-mock": "30.0.5",
-				"jest-util": "30.0.5"
+				"jest-matcher-utils": "30.2.0",
+				"jest-message-util": "30.2.0",
+				"jest-mock": "30.2.0",
+				"jest-util": "30.2.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/expect-webdriverio": {
-			"version": "5.4.2",
-			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.4.2.tgz",
-			"integrity": "sha512-7bc5I2dU3onKJaRhBdxKh/C+W+ot7R+RcRMCLTSR7cbfHM9Shk8ocbNDVvjrxaBdA52kbZONVSyhexp7cq2xNA==",
+			"version": "5.6.4",
+			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.6.4.tgz",
+			"integrity": "sha512-Bkoqs+39fHwjos51qab7ZWmvZrYNBbzgSAIykH2CrgLOLhHJXzC30DP9lZq2MsmaUsbBnN5c5m8VqAhOHTrCRw==",
 			"dev": true,
 			"dependencies": {
-				"@vitest/snapshot": "^3.2.4",
+				"@vitest/snapshot": "^4.0.16",
 				"deep-eql": "^5.0.2",
-				"expect": "^30.0.0",
-				"jest-matcher-utils": "^30.0.0"
+				"expect": "^30.2.0",
+				"jest-matcher-utils": "^30.2.0"
 			},
 			"engines": {
-				"node": ">=18 || >=20 || >=22"
+				"node": ">=20"
 			},
 			"peerDependencies": {
 				"@wdio/globals": "^9.0.0",
@@ -8427,25 +8229,25 @@
 			}
 		},
 		"node_modules/expect-webdriverio/node_modules/@vitest/pretty-format": {
-			"version": "3.2.4",
-			"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz",
-			"integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==",
+			"version": "4.0.18",
+			"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.18.tgz",
+			"integrity": "sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==",
 			"dev": true,
 			"dependencies": {
-				"tinyrainbow": "^2.0.0"
+				"tinyrainbow": "^3.0.3"
 			},
 			"funding": {
 				"url": "https://opencollective.com/vitest"
 			}
 		},
 		"node_modules/expect-webdriverio/node_modules/@vitest/snapshot": {
-			"version": "3.2.4",
-			"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz",
-			"integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==",
+			"version": "4.0.18",
+			"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.18.tgz",
+			"integrity": "sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==",
 			"dev": true,
 			"dependencies": {
-				"@vitest/pretty-format": "3.2.4",
-				"magic-string": "^0.30.17",
+				"@vitest/pretty-format": "4.0.18",
+				"magic-string": "^0.30.21",
 				"pathe": "^2.0.3"
 			},
 			"funding": {
@@ -8459,9 +8261,9 @@
 			"dev": true
 		},
 		"node_modules/expect-webdriverio/node_modules/tinyrainbow": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
-			"integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz",
+			"integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==",
 			"dev": true,
 			"engines": {
 				"node": ">=14.0.0"
@@ -8480,9 +8282,9 @@
 			}
 		},
 		"node_modules/expect/node_modules/@jest/types": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz",
-			"integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
+			"integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
 			"dev": true,
 			"dependencies": {
 				"@jest/pattern": "30.0.1",
@@ -8498,20 +8300,20 @@
 			}
 		},
 		"node_modules/expect/node_modules/@sinclair/typebox": {
-			"version": "0.34.41",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
-			"integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"node_modules/expect/node_modules/jest-mock": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.0.5.tgz",
-			"integrity": "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz",
+			"integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==",
 			"dev": true,
 			"dependencies": {
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.2.0",
 				"@types/node": "*",
-				"jest-util": "30.0.5"
+				"jest-util": "30.2.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -8606,9 +8408,9 @@
 			"license": "BSD-3-Clause"
 		},
 		"node_modules/fast-xml-parser": {
-			"version": "5.3.5",
-			"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.5.tgz",
-			"integrity": "sha512-JeaA2Vm9ffQKp9VjvfzObuMCjUYAp5WDYhRYL5LrBPY/jUDlUtOvDfot0vKSkB9tuX885BDHjtw4fZadD95wnA==",
+			"version": "5.3.7",
+			"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.7.tgz",
+			"integrity": "sha512-JzVLro9NQv92pOM/jTCR6mHlJh2FGwtomH8ZQjhFj/R29P2Fnj38OgPJVtcvYw6SuKClhgYuwUZf5b3rd8u2mA==",
 			"dev": true,
 			"funding": [
 				{
@@ -8616,7 +8418,6 @@
 					"url": "https://github.com/sponsors/NaturalIntelligence"
 				}
 			],
-			"license": "MIT",
 			"dependencies": {
 				"strnum": "^2.1.2"
 			},
@@ -10315,15 +10116,15 @@
 			}
 		},
 		"node_modules/jest-diff": {
-			"version": "30.1.2",
-			"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.1.2.tgz",
-			"integrity": "sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz",
+			"integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==",
 			"dev": true,
 			"dependencies": {
 				"@jest/diff-sequences": "30.0.1",
 				"@jest/get-type": "30.1.0",
 				"chalk": "^4.1.2",
-				"pretty-format": "30.0.5"
+				"pretty-format": "30.2.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -10342,9 +10143,9 @@
 			}
 		},
 		"node_modules/jest-diff/node_modules/@sinclair/typebox": {
-			"version": "0.34.41",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
-			"integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"node_modules/jest-diff/node_modules/ansi-styles": {
@@ -10360,9 +10161,9 @@
 			}
 		},
 		"node_modules/jest-diff/node_modules/pretty-format": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz",
-			"integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
+			"integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
 			"dev": true,
 			"dependencies": {
 				"@jest/schemas": "30.0.5",
@@ -10654,15 +10455,15 @@
 			}
 		},
 		"node_modules/jest-matcher-utils": {
-			"version": "30.1.2",
-			"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.1.2.tgz",
-			"integrity": "sha512-7ai16hy4rSbDjvPTuUhuV8nyPBd6EX34HkBsBcBX2lENCuAQ0qKCPb/+lt8OSWUa9WWmGYLy41PrEzkwRwoGZQ==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz",
+			"integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==",
 			"dev": true,
 			"dependencies": {
 				"@jest/get-type": "30.1.0",
 				"chalk": "^4.1.2",
-				"jest-diff": "30.1.2",
-				"pretty-format": "30.0.5"
+				"jest-diff": "30.2.0",
+				"pretty-format": "30.2.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -10681,9 +10482,9 @@
 			}
 		},
 		"node_modules/jest-matcher-utils/node_modules/@sinclair/typebox": {
-			"version": "0.34.41",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
-			"integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"node_modules/jest-matcher-utils/node_modules/ansi-styles": {
@@ -10699,9 +10500,9 @@
 			}
 		},
 		"node_modules/jest-matcher-utils/node_modules/pretty-format": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz",
-			"integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
+			"integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
 			"dev": true,
 			"dependencies": {
 				"@jest/schemas": "30.0.5",
@@ -10713,18 +10514,18 @@
 			}
 		},
 		"node_modules/jest-message-util": {
-			"version": "30.1.0",
-			"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.1.0.tgz",
-			"integrity": "sha512-HizKDGG98cYkWmaLUHChq4iN+oCENohQLb7Z5guBPumYs+/etonmNFlg1Ps6yN9LTPyZn+M+b/9BbnHx3WTMDg==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz",
+			"integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==",
 			"dev": true,
 			"dependencies": {
 				"@babel/code-frame": "^7.27.1",
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.2.0",
 				"@types/stack-utils": "^2.0.3",
 				"chalk": "^4.1.2",
 				"graceful-fs": "^4.2.11",
 				"micromatch": "^4.0.8",
-				"pretty-format": "30.0.5",
+				"pretty-format": "30.2.0",
 				"slash": "^3.0.0",
 				"stack-utils": "^2.0.6"
 			},
@@ -10745,9 +10546,9 @@
 			}
 		},
 		"node_modules/jest-message-util/node_modules/@jest/types": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz",
-			"integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
+			"integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
 			"dev": true,
 			"dependencies": {
 				"@jest/pattern": "30.0.1",
@@ -10763,9 +10564,9 @@
 			}
 		},
 		"node_modules/jest-message-util/node_modules/@sinclair/typebox": {
-			"version": "0.34.41",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
-			"integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"node_modules/jest-message-util/node_modules/ansi-styles": {
@@ -10781,9 +10582,9 @@
 			}
 		},
 		"node_modules/jest-message-util/node_modules/pretty-format": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz",
-			"integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
+			"integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
 			"dev": true,
 			"dependencies": {
 				"@jest/schemas": "30.0.5",
@@ -11212,12 +11013,12 @@
 			"license": "ISC"
 		},
 		"node_modules/jest-util": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.0.5.tgz",
-			"integrity": "sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz",
+			"integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==",
 			"dev": true,
 			"dependencies": {
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.2.0",
 				"@types/node": "*",
 				"chalk": "^4.1.2",
 				"ci-info": "^4.2.0",
@@ -11241,9 +11042,9 @@
 			}
 		},
 		"node_modules/jest-util/node_modules/@jest/types": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz",
-			"integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==",
+			"version": "30.2.0",
+			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
+			"integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
 			"dev": true,
 			"dependencies": {
 				"@jest/pattern": "30.0.1",
@@ -11259,15 +11060,15 @@
 			}
 		},
 		"node_modules/jest-util/node_modules/@sinclair/typebox": {
-			"version": "0.34.41",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
-			"integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"node_modules/jest-util/node_modules/ci-info": {
-			"version": "4.3.0",
-			"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz",
-			"integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==",
+			"version": "4.4.0",
+			"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz",
+			"integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==",
 			"dev": true,
 			"funding": [
 				{
@@ -11939,9 +11740,9 @@
 			"license": "MIT"
 		},
 		"node_modules/magic-string": {
-			"version": "0.30.19",
-			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz",
-			"integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==",
+			"version": "0.30.21",
+			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+			"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
 			"dev": true,
 			"dependencies": {
 				"@jridgewell/sourcemap-codec": "^1.5.5"
@@ -11971,9 +11772,9 @@
 			}
 		},
 		"node_modules/markdown-it": {
-			"version": "14.1.0",
-			"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
-			"integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
+			"version": "14.1.1",
+			"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz",
+			"integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==",
 			"dev": true,
 			"dependencies": {
 				"argparse": "^2.0.1",
@@ -13358,9 +13159,10 @@
 			"license": "MIT"
 		},
 		"node_modules/qs": {
-			"version": "6.5.3",
+			"version": "6.5.5",
+			"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.5.tgz",
+			"integrity": "sha512-mzR4sElr1bfCaPJe7m8ilJ6ZXdDaGoObcYR0ZHSsktM/Lt21MVHj5De30GQH2eiZ1qGRTO7LCAzQsUeXTNexWQ==",
 			"dev": true,
-			"license": "BSD-3-Clause",
 			"engines": {
 				"node": ">=0.6"
 			}
@@ -14941,11 +14743,10 @@
 			}
 		},
 		"node_modules/table/node_modules/ajv": {
-			"version": "8.17.1",
-			"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
-			"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+			"version": "8.18.0",
+			"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+			"integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"fast-deep-equal": "^3.1.3",
 				"fast-uri": "^3.0.1",
@@ -15299,16 +15100,17 @@
 			}
 		},
 		"node_modules/typescript": {
-			"version": "4.9.5",
+			"version": "5.9.3",
+			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+			"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
 			"dev": true,
-			"license": "Apache-2.0",
 			"peer": true,
 			"bin": {
 				"tsc": "bin/tsc",
 				"tsserver": "bin/tsserver"
 			},
 			"engines": {
-				"node": ">=4.2.0"
+				"node": ">=14.17"
 			}
 		},
 		"node_modules/uc.micro": {
@@ -15360,9 +15162,9 @@
 			}
 		},
 		"node_modules/update-browserslist-db": {
-			"version": "1.1.4",
-			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz",
-			"integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==",
+			"version": "1.2.3",
+			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+			"integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
 			"dev": true,
 			"funding": [
 				{
-- 
2.47.3


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