mediawiki/extensions/ProofreadPage: main (log #2413082)

sourcepatches

This run took 101 seconds.

From 51d92d7167a1f0256fa5e25f80df6e18231007c7 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Thu, 26 Mar 2026 21:39:34 +0000
Subject: [PATCH] build: Updating npm dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* picomatch: 2.3.1, 4.0.3 → 2.3.2, 4.0.4
  * https://github.com/advisories/GHSA-3v7f-55p6-f55p
  * https://github.com/advisories/GHSA-c2c7-rcm5-vvqj
* yaml: 2.8.1 → 2.8.3
  * https://github.com/advisories/GHSA-48c2-rrv3-qjmp

Change-Id: I14db2a880684a22a1b93cd049a071d69933fd8a7
---
 package-lock.json | 794 ++++++++++++++++++++++++++--------------------
 1 file changed, 454 insertions(+), 340 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 87a64e9..51e151f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -603,21 +603,22 @@
 			}
 		},
 		"node_modules/@eslint/js": {
-			"version": "8.57.0",
-			"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
-			"integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
+			"version": "8.57.1",
+			"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+			"integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
 			"dev": true,
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
 			}
 		},
 		"node_modules/@humanwhocodes/config-array": {
-			"version": "0.11.14",
-			"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
-			"integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+			"version": "0.13.0",
+			"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+			"integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
+			"deprecated": "Use @eslint/config-array instead",
 			"dev": true,
 			"dependencies": {
-				"@humanwhocodes/object-schema": "^2.0.2",
+				"@humanwhocodes/object-schema": "^2.0.3",
 				"debug": "^4.3.1",
 				"minimatch": "^3.0.5"
 			},
@@ -639,9 +640,10 @@
 			}
 		},
 		"node_modules/@humanwhocodes/object-schema": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
-			"integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+			"version": "2.0.3",
+			"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+			"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+			"deprecated": "Use @eslint/object-schema instead",
 			"dev": true
 		},
 		"node_modules/@inquirer/ansi": {
@@ -1105,30 +1107,30 @@
 			}
 		},
 		"node_modules/@jest/diff-sequences": {
-			"version": "30.0.1",
-			"resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz",
-			"integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz",
+			"integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==",
 			"dev": true,
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/@jest/expect-utils": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.0.5.tgz",
-			"integrity": "sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.3.0.tgz",
+			"integrity": "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==",
 			"dev": true,
 			"dependencies": {
-				"@jest/get-type": "30.0.1"
+				"@jest/get-type": "30.1.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/@jest/get-type": {
-			"version": "30.0.1",
-			"resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.0.1.tgz",
-			"integrity": "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==",
+			"version": "30.1.0",
+			"resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz",
+			"integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==",
 			"dev": true,
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -1160,9 +1162,9 @@
 			}
 		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz",
+			"integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==",
 			"dev": true,
 			"dependencies": {
 				"@jest/pattern": "30.0.1",
@@ -1178,9 +1180,9 @@
 			}
 		},
 		"node_modules/@jridgewell/sourcemap-codec": {
-			"version": "1.5.0",
-			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
-			"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+			"version": "1.5.5",
+			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+			"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
 			"dev": true
 		},
 		"node_modules/@mdn/browser-compat-data": {
@@ -1322,9 +1324,9 @@
 			"dev": true
 		},
 		"node_modules/@sinclair/typebox": {
-			"version": "0.34.38",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.38.tgz",
-			"integrity": "sha512-HpkxMmc2XmZKhvaKIZZThlHmx1L0I/V1hWK1NubtlFnr6ZqdiOpV72TKudZUNQjZNsyDBay72qFEhEvb+bcwcA==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"node_modules/@sindresorhus/base62": {
@@ -1400,9 +1402,9 @@
 			}
 		},
 		"node_modules/@stylistic/eslint-plugin/node_modules/picomatch": {
-			"version": "4.0.3",
-			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
-			"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+			"version": "4.0.4",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+			"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
 			"dev": true,
 			"engines": {
 				"node": ">=12"
@@ -1548,9 +1550,9 @@
 			}
 		},
 		"node_modules/@types/yargs": {
-			"version": "17.0.33",
-			"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
-			"integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+			"version": "17.0.35",
+			"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz",
+			"integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==",
 			"dev": true,
 			"dependencies": {
 				"@types/yargs-parser": "*"
@@ -1861,6 +1863,41 @@
 				"url": "https://opencollective.com/vitest"
 			}
 		},
+		"node_modules/@vitest/utils": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.2.tgz",
+			"integrity": "sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==",
+			"dev": true,
+			"dependencies": {
+				"@vitest/pretty-format": "4.1.2",
+				"convert-source-map": "^2.0.0",
+				"tinyrainbow": "^3.1.0"
+			},
+			"funding": {
+				"url": "https://opencollective.com/vitest"
+			}
+		},
+		"node_modules/@vitest/utils/node_modules/@vitest/pretty-format": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz",
+			"integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==",
+			"dev": true,
+			"dependencies": {
+				"tinyrainbow": "^3.1.0"
+			},
+			"funding": {
+				"url": "https://opencollective.com/vitest"
+			}
+		},
+		"node_modules/@vitest/utils/node_modules/tinyrainbow": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz",
+			"integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==",
+			"dev": true,
+			"engines": {
+				"node": ">=14.0.0"
+			}
+		},
 		"node_modules/@wdio/cli": {
 			"version": "9.23.2",
 			"resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-9.23.2.tgz",
@@ -3049,12 +3086,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.11",
+			"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.11.tgz",
+			"integrity": "sha512-DAKrHphkJyiGuau/cFieRYhcTFeK/lBuD++C7cZ6KZHbMhBrisoi+EvhQ5RZrIfV5qwsW8kgQ07JIC+MDJRAhg==",
 			"dev": true,
 			"bin": {
-				"baseline-browser-mapping": "dist/cli.js"
+				"baseline-browser-mapping": "dist/cli.cjs"
+			},
+			"engines": {
+				"node": ">=6.0.0"
 			}
 		},
 		"node_modules/basic-ftp": {
@@ -3110,9 +3150,9 @@
 			"dev": true
 		},
 		"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": [
 				{
@@ -3129,11 +3169,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"
@@ -3215,9 +3255,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.30001781",
+			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz",
+			"integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==",
 			"dev": true,
 			"funding": [
 				{
@@ -3546,6 +3586,12 @@
 			"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
 			"dev": true
 		},
+		"node_modules/convert-source-map": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+			"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+			"dev": true
+		},
 		"node_modules/core-js-compat": {
 			"version": "3.46.0",
 			"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz",
@@ -4139,6 +4185,15 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
+		"node_modules/deep-eql": {
+			"version": "5.0.2",
+			"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+			"integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
+			"dev": true,
+			"engines": {
+				"node": ">=6"
+			}
+		},
 		"node_modules/deep-is": {
 			"version": "0.1.4",
 			"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -4233,18 +4288,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,
 			"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": {
@@ -4484,9 +4539,9 @@
 			}
 		},
 		"node_modules/electron-to-chromium": {
-			"version": "1.5.253",
-			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.253.tgz",
-			"integrity": "sha512-O0tpQ/35rrgdiGQ0/OFWhy1itmd9A6TY9uQzlqj3hKSu/aYpe7UIn5d7CU2N9myH6biZiWF3VMZVuup8pw5U9w==",
+			"version": "1.5.325",
+			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.325.tgz",
+			"integrity": "sha512-PwfIw7WQSt3xX7yOf5OE/unLzsK9CaN2f/FvV3WjPR1Knoc1T9vePRVV4W1EM301JzzysK51K7FNKcusCr0zYA==",
 			"dev": true
 		},
 		"node_modules/emoji-regex": {
@@ -4653,16 +4708,17 @@
 			}
 		},
 		"node_modules/eslint": {
-			"version": "8.57.0",
-			"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
-			"integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+			"version": "8.57.1",
+			"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+			"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
+			"deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
 			"dev": true,
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.2.0",
 				"@eslint-community/regexpp": "^4.6.1",
 				"@eslint/eslintrc": "^2.1.4",
-				"@eslint/js": "8.57.0",
-				"@humanwhocodes/config-array": "^0.11.14",
+				"@eslint/js": "8.57.1",
+				"@humanwhocodes/config-array": "^0.13.0",
 				"@humanwhocodes/module-importer": "^1.0.1",
 				"@nodelib/fs.walk": "^1.2.8",
 				"@ungap/structured-clone": "^1.2.0",
@@ -4809,9 +4865,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-jest": {
-			"version": "29.1.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.1.0.tgz",
-			"integrity": "sha512-LabxXbASXVjguqL+kBHTPMf3gUeSqwH4fsrEyHTY/MCs42I/p9+ctg09SJpYiD8eGaIsP6GwYr5xW6xWS9XgZg==",
+			"version": "29.15.1",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.15.1.tgz",
+			"integrity": "sha512-6BjyErCQauz3zfJvzLw/kAez2lf4LEpbHLvWBfEcG4EI0ZiRSwjoH2uZulMouU8kRkBH+S0rhqn11IhTvxKgKw==",
 			"dev": true,
 			"dependencies": {
 				"@typescript-eslint/utils": "^8.0.0"
@@ -4821,8 +4877,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 <7.0.0"
 			},
 			"peerDependenciesMeta": {
 				"@typescript-eslint/eslint-plugin": {
@@ -4830,6 +4887,9 @@
 				},
 				"jest": {
 					"optional": true
+				},
+				"typescript": {
+					"optional": true
 				}
 			}
 		},
@@ -5387,35 +5447,35 @@
 			}
 		},
 		"node_modules/expect": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/expect/-/expect-30.0.5.tgz",
-			"integrity": "sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz",
+			"integrity": "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==",
 			"dev": true,
 			"dependencies": {
-				"@jest/expect-utils": "30.0.5",
-				"@jest/get-type": "30.0.1",
-				"jest-matcher-utils": "30.0.5",
-				"jest-message-util": "30.0.5",
-				"jest-mock": "30.0.5",
-				"jest-util": "30.0.5"
+				"@jest/expect-utils": "30.3.0",
+				"@jest/get-type": "30.1.0",
+				"jest-matcher-utils": "30.3.0",
+				"jest-message-util": "30.3.0",
+				"jest-mock": "30.3.0",
+				"jest-util": "30.3.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/expect-webdriverio": {
-			"version": "5.4.1",
-			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.4.1.tgz",
-			"integrity": "sha512-jH4qhahRNGPWbCCVcCpLDl/kvFJ1eOzVnrd1K/sG1RhKr6bZsgZQUiOE3bafVqSOfKP+ay8bM/VagP4+XsO9Xw==",
+			"version": "5.6.5",
+			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.6.5.tgz",
+			"integrity": "sha512-5ot+Apo0bEvMD/nqzWymQpgyWnOdu0kVpmahLx5T7NzUc6RyifucZ24Gsfr6F6C8yRGBhmoFh7ZeY+W9kteEBQ==",
 			"dev": true,
 			"dependencies": {
-				"@vitest/snapshot": "^3.2.4",
-				"expect": "^30.0.0",
-				"jest-matcher-utils": "^30.0.0",
-				"lodash.isequal": "^4.5.0"
+				"@vitest/snapshot": "^4.0.16",
+				"deep-eql": "^5.0.2",
+				"expect": "^30.2.0",
+				"jest-matcher-utils": "^30.2.0"
 			},
 			"engines": {
-				"node": ">=18 || >=20 || >=22"
+				"node": ">=20"
 			},
 			"peerDependencies": {
 				"@wdio/globals": "^9.0.0",
@@ -5435,25 +5495,26 @@
 			}
 		},
 		"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.1.2",
+			"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz",
+			"integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==",
 			"dev": true,
 			"dependencies": {
-				"tinyrainbow": "^2.0.0"
+				"tinyrainbow": "^3.1.0"
 			},
 			"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.1.2",
+			"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.2.tgz",
+			"integrity": "sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==",
 			"dev": true,
 			"dependencies": {
-				"@vitest/pretty-format": "3.2.4",
-				"magic-string": "^0.30.17",
+				"@vitest/pretty-format": "4.1.2",
+				"@vitest/utils": "4.1.2",
+				"magic-string": "^0.30.21",
 				"pathe": "^2.0.3"
 			},
 			"funding": {
@@ -5467,9 +5528,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.1.0",
+			"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz",
+			"integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==",
 			"dev": true,
 			"engines": {
 				"node": ">=14.0.0"
@@ -5703,9 +5764,9 @@
 			"dev": true
 		},
 		"node_modules/filelist": {
-			"version": "1.0.4",
-			"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
-			"integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+			"version": "1.0.6",
+			"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz",
+			"integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==",
 			"dev": true,
 			"dependencies": {
 				"minimatch": "^5.0.1"
@@ -5810,12 +5871,13 @@
 			}
 		},
 		"node_modules/flat-cache": {
-			"version": "3.0.4",
-			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
-			"integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+			"version": "3.2.0",
+			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+			"integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
 			"dev": true,
 			"dependencies": {
-				"flatted": "^3.1.0",
+				"flatted": "^3.2.9",
+				"keyv": "^4.5.3",
 				"rimraf": "^3.0.2"
 			},
 			"engines": {
@@ -6940,48 +7002,48 @@
 			}
 		},
 		"node_modules/jest-diff": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.0.5.tgz",
-			"integrity": "sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz",
+			"integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==",
 			"dev": true,
 			"dependencies": {
-				"@jest/diff-sequences": "30.0.1",
-				"@jest/get-type": "30.0.1",
+				"@jest/diff-sequences": "30.3.0",
+				"@jest/get-type": "30.1.0",
 				"chalk": "^4.1.2",
-				"pretty-format": "30.0.5"
+				"pretty-format": "30.3.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/jest-matcher-utils": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.0.5.tgz",
-			"integrity": "sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz",
+			"integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==",
 			"dev": true,
 			"dependencies": {
-				"@jest/get-type": "30.0.1",
+				"@jest/get-type": "30.1.0",
 				"chalk": "^4.1.2",
-				"jest-diff": "30.0.5",
-				"pretty-format": "30.0.5"
+				"jest-diff": "30.3.0",
+				"pretty-format": "30.3.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/jest-message-util": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.0.5.tgz",
-			"integrity": "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz",
+			"integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==",
 			"dev": true,
 			"dependencies": {
 				"@babel/code-frame": "^7.27.1",
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.3.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",
+				"picomatch": "^4.0.3",
+				"pretty-format": "30.3.0",
 				"slash": "^3.0.0",
 				"stack-utils": "^2.0.6"
 			},
@@ -6989,15 +7051,27 @@
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
+		"node_modules/jest-message-util/node_modules/picomatch": {
+			"version": "4.0.4",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+			"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/jonschlinkert"
+			}
+		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz",
+			"integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==",
 			"dev": true,
 			"dependencies": {
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.3.0",
 				"@types/node": "*",
-				"jest-util": "30.0.5"
+				"jest-util": "30.3.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -7013,26 +7087,26 @@
 			}
 		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz",
+			"integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==",
 			"dev": true,
 			"dependencies": {
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.3.0",
 				"@types/node": "*",
 				"chalk": "^4.1.2",
 				"ci-info": "^4.2.0",
 				"graceful-fs": "^4.2.11",
-				"picomatch": "^4.0.2"
+				"picomatch": "^4.0.3"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/jest-util/node_modules/picomatch": {
-			"version": "4.0.3",
-			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
-			"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+			"version": "4.0.4",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+			"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
 			"dev": true,
 			"engines": {
 				"node": ">=12"
@@ -7360,13 +7434,6 @@
 			"integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
 			"dev": true
 		},
-		"node_modules/lodash.isequal": {
-			"version": "4.5.0",
-			"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
-			"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
-			"deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.",
-			"dev": true
-		},
 		"node_modules/lodash.memoize": {
 			"version": "4.1.2",
 			"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
@@ -7448,12 +7515,12 @@
 			}
 		},
 		"node_modules/magic-string": {
-			"version": "0.30.17",
-			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
-			"integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
+			"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.0"
+				"@jridgewell/sourcemap-codec": "^1.5.5"
 			}
 		},
 		"node_modules/make-dir": {
@@ -7722,9 +7789,9 @@
 			}
 		},
 		"node_modules/nanoid": {
-			"version": "3.3.8",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
-			"integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
+			"version": "3.3.11",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+			"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
 			"dev": true,
 			"funding": [
 				{
@@ -8335,9 +8402,9 @@
 			"dev": true
 		},
 		"node_modules/picomatch": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
-			"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+			"integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
 			"dev": true,
 			"engines": {
 				"node": ">=8.6"
@@ -8356,9 +8423,9 @@
 			}
 		},
 		"node_modules/postcss": {
-			"version": "8.4.49",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
-			"integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
+			"version": "8.5.8",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
+			"integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
 			"dev": true,
 			"funding": [
 				{
@@ -8375,7 +8442,7 @@
 				}
 			],
 			"dependencies": {
-				"nanoid": "^3.3.7",
+				"nanoid": "^3.3.11",
 				"picocolors": "^1.1.1",
 				"source-map-js": "^1.2.1"
 			},
@@ -8467,9 +8534,9 @@
 			}
 		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz",
+			"integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==",
 			"dev": true,
 			"dependencies": {
 				"@jest/schemas": "30.0.5",
@@ -9283,12 +9350,12 @@
 			}
 		},
 		"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,
 			"engines": {
-				"node": ">= 8"
+				"node": ">= 12"
 			}
 		},
 		"node_modules/source-map-js": {
@@ -9999,9 +10066,9 @@
 			}
 		},
 		"node_modules/ts-declaration-location/node_modules/picomatch": {
-			"version": "4.0.3",
-			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
-			"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+			"version": "4.0.4",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+			"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
 			"dev": true,
 			"engines": {
 				"node": ">=12"
@@ -10133,9 +10200,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": [
 				{
@@ -10503,15 +10570,18 @@
 			}
 		},
 		"node_modules/yaml": {
-			"version": "2.8.1",
-			"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
-			"integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz",
+			"integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==",
 			"dev": true,
 			"bin": {
 				"yaml": "bin.mjs"
 			},
 			"engines": {
 				"node": ">= 14.6"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/eemeli"
 			}
 		},
 		"node_modules/yaml-eslint-parser": {
@@ -10935,18 +11005,18 @@
 			}
 		},
 		"@eslint/js": {
-			"version": "8.57.0",
-			"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
-			"integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
+			"version": "8.57.1",
+			"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+			"integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
 			"dev": true
 		},
 		"@humanwhocodes/config-array": {
-			"version": "0.11.14",
-			"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
-			"integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+			"version": "0.13.0",
+			"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+			"integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
 			"dev": true,
 			"requires": {
-				"@humanwhocodes/object-schema": "^2.0.2",
+				"@humanwhocodes/object-schema": "^2.0.3",
 				"debug": "^4.3.1",
 				"minimatch": "^3.0.5"
 			}
@@ -10958,9 +11028,9 @@
 			"dev": true
 		},
 		"@humanwhocodes/object-schema": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
-			"integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+			"version": "2.0.3",
+			"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+			"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
 			"dev": true
 		},
 		"@inquirer/ansi": {
@@ -11228,24 +11298,24 @@
 			}
 		},
 		"@jest/diff-sequences": {
-			"version": "30.0.1",
-			"resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz",
-			"integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz",
+			"integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==",
 			"dev": true
 		},
 		"@jest/expect-utils": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.0.5.tgz",
-			"integrity": "sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.3.0.tgz",
+			"integrity": "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==",
 			"dev": true,
 			"requires": {
-				"@jest/get-type": "30.0.1"
+				"@jest/get-type": "30.1.0"
 			}
 		},
 		"@jest/get-type": {
-			"version": "30.0.1",
-			"resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.0.1.tgz",
-			"integrity": "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==",
+			"version": "30.1.0",
+			"resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz",
+			"integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==",
 			"dev": true
 		},
 		"@jest/pattern": {
@@ -11268,9 +11338,9 @@
 			}
 		},
 		"@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.3.0",
+			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz",
+			"integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==",
 			"dev": true,
 			"requires": {
 				"@jest/pattern": "30.0.1",
@@ -11283,9 +11353,9 @@
 			}
 		},
 		"@jridgewell/sourcemap-codec": {
-			"version": "1.5.0",
-			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
-			"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+			"version": "1.5.5",
+			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+			"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
 			"dev": true
 		},
 		"@mdn/browser-compat-data": {
@@ -11392,9 +11462,9 @@
 			"dev": true
 		},
 		"@sinclair/typebox": {
-			"version": "0.34.38",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.38.tgz",
-			"integrity": "sha512-HpkxMmc2XmZKhvaKIZZThlHmx1L0I/V1hWK1NubtlFnr6ZqdiOpV72TKudZUNQjZNsyDBay72qFEhEvb+bcwcA==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"@sindresorhus/base62": {
@@ -11440,9 +11510,9 @@
 					}
 				},
 				"picomatch": {
-					"version": "4.0.3",
-					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
-					"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+					"version": "4.0.4",
+					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+					"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
 					"dev": true
 				}
 			}
@@ -11571,9 +11641,9 @@
 			}
 		},
 		"@types/yargs": {
-			"version": "17.0.33",
-			"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
-			"integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+			"version": "17.0.35",
+			"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz",
+			"integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==",
 			"dev": true,
 			"requires": {
 				"@types/yargs-parser": "*"
@@ -11774,6 +11844,34 @@
 				"pathe": "^1.1.2"
 			}
 		},
+		"@vitest/utils": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.2.tgz",
+			"integrity": "sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==",
+			"dev": true,
+			"requires": {
+				"@vitest/pretty-format": "4.1.2",
+				"convert-source-map": "^2.0.0",
+				"tinyrainbow": "^3.1.0"
+			},
+			"dependencies": {
+				"@vitest/pretty-format": {
+					"version": "4.1.2",
+					"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz",
+					"integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==",
+					"dev": true,
+					"requires": {
+						"tinyrainbow": "^3.1.0"
+					}
+				},
+				"tinyrainbow": {
+					"version": "3.1.0",
+					"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz",
+					"integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==",
+					"dev": true
+				}
+			}
+		},
 		"@wdio/cli": {
 			"version": "9.23.2",
 			"resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-9.23.2.tgz",
@@ -12613,9 +12711,9 @@
 			"dev": true
 		},
 		"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.11",
+			"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.11.tgz",
+			"integrity": "sha512-DAKrHphkJyiGuau/cFieRYhcTFeK/lBuD++C7cZ6KZHbMhBrisoi+EvhQ5RZrIfV5qwsW8kgQ07JIC+MDJRAhg==",
 			"dev": true
 		},
 		"basic-ftp": {
@@ -12662,16 +12760,16 @@
 			"dev": true
 		},
 		"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,
 			"requires": {
-				"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"
 			}
 		},
 		"browserslist-config-wikimedia": {
@@ -12715,9 +12813,9 @@
 			"dev": true
 		},
 		"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.30001781",
+			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz",
+			"integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==",
 			"dev": true
 		},
 		"chalk": {
@@ -12944,6 +13042,12 @@
 			"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
 			"dev": true
 		},
+		"convert-source-map": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+			"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+			"dev": true
+		},
 		"core-js-compat": {
 			"version": "3.46.0",
 			"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz",
@@ -13365,6 +13469,12 @@
 			"integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
 			"dev": true
 		},
+		"deep-eql": {
+			"version": "5.0.2",
+			"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+			"integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
+			"dev": true
+		},
 		"deep-is": {
 			"version": "0.1.4",
 			"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -13435,18 +13545,18 @@
 			}
 		},
 		"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,
 			"requires": {
-				"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"
 			},
 			"dependencies": {
@@ -13615,9 +13725,9 @@
 			}
 		},
 		"electron-to-chromium": {
-			"version": "1.5.253",
-			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.253.tgz",
-			"integrity": "sha512-O0tpQ/35rrgdiGQ0/OFWhy1itmd9A6TY9uQzlqj3hKSu/aYpe7UIn5d7CU2N9myH6biZiWF3VMZVuup8pw5U9w==",
+			"version": "1.5.325",
+			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.325.tgz",
+			"integrity": "sha512-PwfIw7WQSt3xX7yOf5OE/unLzsK9CaN2f/FvV3WjPR1Knoc1T9vePRVV4W1EM301JzzysK51K7FNKcusCr0zYA==",
 			"dev": true
 		},
 		"emoji-regex": {
@@ -13743,16 +13853,16 @@
 			}
 		},
 		"eslint": {
-			"version": "8.57.0",
-			"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
-			"integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+			"version": "8.57.1",
+			"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+			"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
 			"dev": true,
 			"requires": {
 				"@eslint-community/eslint-utils": "^4.2.0",
 				"@eslint-community/regexpp": "^4.6.1",
 				"@eslint/eslintrc": "^2.1.4",
-				"@eslint/js": "8.57.0",
-				"@humanwhocodes/config-array": "^0.11.14",
+				"@eslint/js": "8.57.1",
+				"@humanwhocodes/config-array": "^0.13.0",
 				"@humanwhocodes/module-importer": "^1.0.1",
 				"@nodelib/fs.walk": "^1.2.8",
 				"@ungap/structured-clone": "^1.2.0",
@@ -13872,9 +13982,9 @@
 			}
 		},
 		"eslint-plugin-jest": {
-			"version": "29.1.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.1.0.tgz",
-			"integrity": "sha512-LabxXbASXVjguqL+kBHTPMf3gUeSqwH4fsrEyHTY/MCs42I/p9+ctg09SJpYiD8eGaIsP6GwYr5xW6xWS9XgZg==",
+			"version": "29.15.1",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.15.1.tgz",
+			"integrity": "sha512-6BjyErCQauz3zfJvzLw/kAez2lf4LEpbHLvWBfEcG4EI0ZiRSwjoH2uZulMouU8kRkBH+S0rhqn11IhTvxKgKw==",
 			"dev": true,
 			"requires": {
 				"@typescript-eslint/utils": "^8.0.0"
@@ -14248,48 +14358,49 @@
 			}
 		},
 		"expect": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/expect/-/expect-30.0.5.tgz",
-			"integrity": "sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz",
+			"integrity": "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==",
 			"dev": true,
 			"requires": {
-				"@jest/expect-utils": "30.0.5",
-				"@jest/get-type": "30.0.1",
-				"jest-matcher-utils": "30.0.5",
-				"jest-message-util": "30.0.5",
-				"jest-mock": "30.0.5",
-				"jest-util": "30.0.5"
+				"@jest/expect-utils": "30.3.0",
+				"@jest/get-type": "30.1.0",
+				"jest-matcher-utils": "30.3.0",
+				"jest-message-util": "30.3.0",
+				"jest-mock": "30.3.0",
+				"jest-util": "30.3.0"
 			}
 		},
 		"expect-webdriverio": {
-			"version": "5.4.1",
-			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.4.1.tgz",
-			"integrity": "sha512-jH4qhahRNGPWbCCVcCpLDl/kvFJ1eOzVnrd1K/sG1RhKr6bZsgZQUiOE3bafVqSOfKP+ay8bM/VagP4+XsO9Xw==",
+			"version": "5.6.5",
+			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.6.5.tgz",
+			"integrity": "sha512-5ot+Apo0bEvMD/nqzWymQpgyWnOdu0kVpmahLx5T7NzUc6RyifucZ24Gsfr6F6C8yRGBhmoFh7ZeY+W9kteEBQ==",
 			"dev": true,
 			"requires": {
-				"@vitest/snapshot": "^3.2.4",
-				"expect": "^30.0.0",
-				"jest-matcher-utils": "^30.0.0",
-				"lodash.isequal": "^4.5.0"
+				"@vitest/snapshot": "^4.0.16",
+				"deep-eql": "^5.0.2",
+				"expect": "^30.2.0",
+				"jest-matcher-utils": "^30.2.0"
 			},
 			"dependencies": {
 				"@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.1.2",
+					"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz",
+					"integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==",
 					"dev": true,
 					"requires": {
-						"tinyrainbow": "^2.0.0"
+						"tinyrainbow": "^3.1.0"
 					}
 				},
 				"@vitest/snapshot": {
-					"version": "3.2.4",
-					"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz",
-					"integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==",
+					"version": "4.1.2",
+					"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.2.tgz",
+					"integrity": "sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==",
 					"dev": true,
 					"requires": {
-						"@vitest/pretty-format": "3.2.4",
-						"magic-string": "^0.30.17",
+						"@vitest/pretty-format": "4.1.2",
+						"@vitest/utils": "4.1.2",
+						"magic-string": "^0.30.21",
 						"pathe": "^2.0.3"
 					}
 				},
@@ -14300,9 +14411,9 @@
 					"dev": true
 				},
 				"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.1.0",
+					"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz",
+					"integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==",
 					"dev": true
 				}
 			}
@@ -14466,9 +14577,9 @@
 			"dev": true
 		},
 		"filelist": {
-			"version": "1.0.4",
-			"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
-			"integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+			"version": "1.0.6",
+			"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz",
+			"integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==",
 			"dev": true,
 			"requires": {
 				"minimatch": "^5.0.1"
@@ -14551,12 +14662,13 @@
 			"dev": true
 		},
 		"flat-cache": {
-			"version": "3.0.4",
-			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
-			"integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+			"version": "3.2.0",
+			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+			"integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
 			"dev": true,
 			"requires": {
-				"flatted": "^3.1.0",
+				"flatted": "^3.2.9",
+				"keyv": "^4.5.3",
 				"rimraf": "^3.0.2"
 			}
 		},
@@ -15364,55 +15476,63 @@
 			}
 		},
 		"jest-diff": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.0.5.tgz",
-			"integrity": "sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz",
+			"integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==",
 			"dev": true,
 			"requires": {
-				"@jest/diff-sequences": "30.0.1",
-				"@jest/get-type": "30.0.1",
+				"@jest/diff-sequences": "30.3.0",
+				"@jest/get-type": "30.1.0",
 				"chalk": "^4.1.2",
-				"pretty-format": "30.0.5"
+				"pretty-format": "30.3.0"
 			}
 		},
 		"jest-matcher-utils": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.0.5.tgz",
-			"integrity": "sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz",
+			"integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==",
 			"dev": true,
 			"requires": {
-				"@jest/get-type": "30.0.1",
+				"@jest/get-type": "30.1.0",
 				"chalk": "^4.1.2",
-				"jest-diff": "30.0.5",
-				"pretty-format": "30.0.5"
+				"jest-diff": "30.3.0",
+				"pretty-format": "30.3.0"
 			}
 		},
 		"jest-message-util": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.0.5.tgz",
-			"integrity": "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz",
+			"integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==",
 			"dev": true,
 			"requires": {
 				"@babel/code-frame": "^7.27.1",
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.3.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",
+				"picomatch": "^4.0.3",
+				"pretty-format": "30.3.0",
 				"slash": "^3.0.0",
 				"stack-utils": "^2.0.6"
+			},
+			"dependencies": {
+				"picomatch": {
+					"version": "4.0.4",
+					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+					"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+					"dev": true
+				}
 			}
 		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz",
+			"integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==",
 			"dev": true,
 			"requires": {
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.3.0",
 				"@types/node": "*",
-				"jest-util": "30.0.5"
+				"jest-util": "30.3.0"
 			}
 		},
 		"jest-regex-util": {
@@ -15422,23 +15542,23 @@
 			"dev": true
 		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz",
+			"integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==",
 			"dev": true,
 			"requires": {
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.3.0",
 				"@types/node": "*",
 				"chalk": "^4.1.2",
 				"ci-info": "^4.2.0",
 				"graceful-fs": "^4.2.11",
-				"picomatch": "^4.0.2"
+				"picomatch": "^4.0.3"
 			},
 			"dependencies": {
 				"picomatch": {
-					"version": "4.0.3",
-					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
-					"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+					"version": "4.0.4",
+					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+					"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
 					"dev": true
 				}
 			}
@@ -15718,12 +15838,6 @@
 			"integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
 			"dev": true
 		},
-		"lodash.isequal": {
-			"version": "4.5.0",
-			"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
-			"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
-			"dev": true
-		},
 		"lodash.memoize": {
 			"version": "4.1.2",
 			"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
@@ -15789,12 +15903,12 @@
 			"dev": true
 		},
 		"magic-string": {
-			"version": "0.30.17",
-			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
-			"integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
+			"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,
 			"requires": {
-				"@jridgewell/sourcemap-codec": "^1.5.0"
+				"@jridgewell/sourcemap-codec": "^1.5.5"
 			}
 		},
 		"make-dir": {
@@ -15992,9 +16106,9 @@
 			"dev": true
 		},
 		"nanoid": {
-			"version": "3.3.8",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
-			"integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
+			"version": "3.3.11",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+			"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
 			"dev": true
 		},
 		"natural-compare": {
@@ -16436,9 +16550,9 @@
 			"dev": true
 		},
 		"picomatch": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
-			"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+			"integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
 			"dev": true
 		},
 		"pluralize": {
@@ -16448,12 +16562,12 @@
 			"dev": true
 		},
 		"postcss": {
-			"version": "8.4.49",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
-			"integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
+			"version": "8.5.8",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
+			"integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
 			"dev": true,
 			"requires": {
-				"nanoid": "^3.3.7",
+				"nanoid": "^3.3.11",
 				"picocolors": "^1.1.1",
 				"source-map-js": "^1.2.1"
 			}
@@ -16521,9 +16635,9 @@
 			"dev": true
 		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz",
+			"integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==",
 			"dev": true,
 			"requires": {
 				"@jest/schemas": "30.0.5",
@@ -17109,9 +17223,9 @@
 			}
 		},
 		"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
 		},
 		"source-map-js": {
@@ -17597,9 +17711,9 @@
 			},
 			"dependencies": {
 				"picomatch": {
-					"version": "4.0.3",
-					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
-					"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+					"version": "4.0.4",
+					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+					"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
 					"dev": true
 				}
 			}
@@ -17684,9 +17798,9 @@
 			"dev": true
 		},
 		"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,
 			"requires": {
 				"escalade": "^3.2.0",
@@ -17941,9 +18055,9 @@
 			"dev": true
 		},
 		"yaml": {
-			"version": "2.8.1",
-			"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
-			"integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz",
+			"integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==",
 			"dev": true
 		},
 		"yaml-eslint-parser": {
-- 
2.47.3

$ date
--- stdout ---
Thu Mar 26 21:38:08 UTC 2026

--- end ---
$ git clone file:///srv/git/mediawiki-extensions-ProofreadPage.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 ---
c19b9a7f9894de9f808667251c8a2dca8ef0a3d2 refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@eslint/eslintrc": {
      "name": "@eslint/eslintrc",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint"
      ],
      "range": "0.0.1 || >=0.1.1",
      "nodes": [
        "node_modules/@eslint/eslintrc"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "@humanwhocodes/config-array": {
      "name": "@humanwhocodes/config-array",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@humanwhocodes/config-array"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/eslint-plugin": {
      "name": "@typescript-eslint/eslint-plugin",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@typescript-eslint/type-utils",
        "@typescript-eslint/utils",
        "eslint"
      ],
      "effects": [],
      "range": "<=8.56.1-alpha.2",
      "nodes": [
        "node_modules/@typescript-eslint/eslint-plugin"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/parser": {
      "name": "@typescript-eslint/parser",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "1.1.1-alpha.0 - 8.56.1-alpha.2",
      "nodes": [
        "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": "moderate",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "@typescript-eslint/utils",
        "eslint"
      ],
      "effects": [
        "@typescript-eslint/eslint-plugin"
      ],
      "range": "5.62.1-alpha.0 - 8.56.1-alpha.2",
      "nodes": [
        "node_modules/@typescript-eslint/type-utils"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/parser",
        "@typescript-eslint/type-utils",
        "@typescript-eslint/utils"
      ],
      "range": "6.16.0 - 8.56.1-alpha.2",
      "nodes": [
        "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": "moderate",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "eslint"
      ],
      "effects": [],
      "range": "<=8.56.1-alpha.2",
      "nodes": [
        "node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": true
    },
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "moderate",
      "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": "moderate",
      "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": "moderate",
      "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": "moderate",
      "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": ">=6.1.19",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "6.1.17",
        "isSemVerMajor": true
      }
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "expect-webdriverio",
        "webdriver",
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": false
    },
    "archiver": {
      "name": "archiver",
      "severity": "moderate",
      "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": "moderate",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "archiver",
        "zip-stream"
      ],
      "range": ">=0.2.0",
      "nodes": [
        "node_modules/archiver-utils"
      ],
      "fixAvailable": false
    },
    "brace-expansion": {
      "name": "brace-expansion",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1115432,
          "name": "brace-expansion",
          "dependency": "brace-expansion",
          "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
          "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
          },
          "range": "<5.0.5"
        }
      ],
      "effects": [
        "minimatch"
      ],
      "range": "<5.0.5",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion",
        "node_modules/@wdio/config/node_modules/brace-expansion",
        "node_modules/archiver-utils/node_modules/brace-expansion",
        "node_modules/brace-expansion",
        "node_modules/filelist/node_modules/brace-expansion",
        "node_modules/mocha/node_modules/brace-expansion",
        "node_modules/readdir-glob/node_modules/brace-expansion"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "create-wdio": {
      "name": "create-wdio",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "ejs",
        "recursive-readdir"
      ],
      "effects": [
        "@wdio/cli"
      ],
      "range": ">=9.17.0",
      "nodes": [
        "node_modules/create-wdio"
      ],
      "fixAvailable": false
    },
    "doiuse": {
      "name": "doiuse",
      "severity": "moderate",
      "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": "moderate",
      "isDirect": false,
      "via": [
        "jake"
      ],
      "effects": [],
      "range": "3.1.2 - 4.0.1",
      "nodes": [
        "node_modules/ejs"
      ],
      "fixAvailable": true
    },
    "eslint": {
      "name": "eslint",
      "severity": "moderate",
      "isDirect": false,
      "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",
        "grunt-eslint"
      ],
      "range": "0.12.0 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2",
      "nodes": [
        "node_modules/eslint"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "eslint-config-wikimedia": {
      "name": "eslint-config-wikimedia",
      "severity": "moderate",
      "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": "moderate",
      "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": "moderate",
      "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": "moderate",
      "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": "moderate",
      "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
    },
    "file-entry-cache": {
      "name": "file-entry-cache",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "flat-cache"
      ],
      "effects": [
        "eslint"
      ],
      "range": "4.0.0 - 7.0.2",
      "nodes": [
        "node_modules/file-entry-cache"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "filelist": {
      "name": "filelist",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "jake"
      ],
      "range": "0.0.5 - 1.0.6",
      "nodes": [
        "node_modules/filelist"
      ],
      "fixAvailable": true
    },
    "flat-cache": {
      "name": "flat-cache",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "rimraf"
      ],
      "effects": [
        "file-entry-cache"
      ],
      "range": "1.3.4 - 4.0.0",
      "nodes": [
        "node_modules/flat-cache"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "glob": {
      "name": "glob",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@wdio/config",
        "archiver-utils",
        "grunt",
        "mocha",
        "rimraf"
      ],
      "range": "4.3.0 - 10.5.0",
      "nodes": [
        "node_modules/@wdio/config/node_modules/glob",
        "node_modules/archiver-utils/node_modules/glob",
        "node_modules/glob",
        "node_modules/grunt/node_modules/glob",
        "node_modules/mocha/node_modules/glob"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "grunt": {
      "name": "grunt",
      "severity": "high",
      "isDirect": true,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "grunt-eslint"
      ],
      "range": ">=0.4.0-a",
      "nodes": [
        "node_modules/grunt"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "0.3.17",
        "isSemVerMajor": true
      }
    },
    "grunt-eslint": {
      "name": "grunt-eslint",
      "severity": "high",
      "isDirect": true,
      "via": [
        "eslint",
        "grunt"
      ],
      "effects": [],
      "range": "<=1.0.0 || 4.0.0 - 17.3.2 || >=18.1.0",
      "nodes": [
        "node_modules/grunt-eslint"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "jake": {
      "name": "jake",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "filelist"
      ],
      "effects": [
        "ejs"
      ],
      "range": "10.6.1 - 10.9.4",
      "nodes": [
        "node_modules/jake"
      ],
      "fixAvailable": true
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113459,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
          "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<3.1.3"
        },
        {
          "source": 1113538,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
          "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
          "severity": "high",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.1.3"
        },
        {
          "source": 1113546,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
          "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.1.4"
        },
        "brace-expansion"
      ],
      "effects": [
        "@eslint/eslintrc",
        "@humanwhocodes/config-array",
        "@typescript-eslint/typescript-estree",
        "eslint",
        "filelist",
        "glob",
        "grunt",
        "mocha",
        "multimatch",
        "readdir-glob",
        "recursive-readdir"
      ],
      "range": "<=10.0.2",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch",
        "node_modules/@wdio/config/node_modules/minimatch",
        "node_modules/archiver-utils/node_modules/minimatch",
        "node_modules/filelist/node_modules/minimatch",
        "node_modules/grunt/node_modules/minimatch",
        "node_modules/minimatch",
        "node_modules/mocha/node_modules/minimatch",
        "node_modules/readdir-glob/node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "mocha": {
      "name": "mocha",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob",
        "minimatch",
        "serialize-javascript"
      ],
      "effects": [
        "@wdio/mocha-framework"
      ],
      "range": ">=3.0.0-0",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "6.1.17",
        "isSemVerMajor": true
      }
    },
    "multimatch": {
      "name": "multimatch",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "doiuse"
      ],
      "range": "2.0.0 - 7.0.0",
      "nodes": [
        "node_modules/multimatch"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "picomatch": {
      "name": "picomatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1115382,
          "name": "picomatch",
          "dependency": "picomatch",
          "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers",
          "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<2.3.2"
        },
        {
          "source": 1115384,
          "name": "picomatch",
          "dependency": "picomatch",
          "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers",
          "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=4.0.0 <4.0.4"
        },
        {
          "source": 1115394,
          "name": "picomatch",
          "dependency": "picomatch",
          "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
          "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<2.3.2"
        },
        {
          "source": 1115396,
          "name": "picomatch",
          "dependency": "picomatch",
          "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
          "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": ">=4.0.0 <4.0.4"
        }
      ],
      "effects": [],
      "range": "<=2.3.1 || 4.0.0 - 4.0.3",
      "nodes": [
        "node_modules/@stylistic/eslint-plugin/node_modules/picomatch",
        "node_modules/jest-util/node_modules/picomatch",
        "node_modules/picomatch",
        "node_modules/ts-declaration-location/node_modules/picomatch"
      ],
      "fixAvailable": true
    },
    "readdir-glob": {
      "name": "readdir-glob",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "archiver"
      ],
      "range": "<=2.0.3",
      "nodes": [
        "node_modules/readdir-glob"
      ],
      "fixAvailable": false
    },
    "recursive-readdir": {
      "name": "recursive-readdir",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "create-wdio"
      ],
      "range": ">=2.1.0",
      "nodes": [
        "node_modules/recursive-readdir"
      ],
      "fixAvailable": false
    },
    "rimraf": {
      "name": "rimraf",
      "severity": "moderate",
      "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": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "serialize-javascript": {
      "name": "serialize-javascript",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113686,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()",
          "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq",
          "severity": "high",
          "cwe": [
            "CWE-96"
          ],
          "cvss": {
            "score": 8.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": "<=7.0.2"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<=7.0.2",
      "nodes": [
        "node_modules/serialize-javascript"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "6.1.17",
        "isSemVerMajor": true
      }
    },
    "stylelint-config-wikimedia": {
      "name": "stylelint-config-wikimedia",
      "severity": "moderate",
      "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": "moderate",
      "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
      }
    },
    "webdriver": {
      "name": "webdriver",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@wdio/config"
      ],
      "effects": [
        "@wdio/runner"
      ],
      "range": ">=5.0.0-alpha.2",
      "nodes": [
        "node_modules/webdriver"
      ],
      "fixAvailable": false
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "archiver",
        "webdriver"
      ],
      "effects": [
        "@wdio/globals",
        "expect-webdriverio"
      ],
      "range": ">=5.0.0-alpha.2",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": false
    },
    "yaml": {
      "name": "yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1115369,
          "name": "yaml",
          "dependency": "yaml",
          "title": "yaml is vulnerable to Stack Overflow via deeply nested YAML collections",
          "url": "https://github.com/advisories/GHSA-48c2-rrv3-qjmp",
          "severity": "moderate",
          "cwe": [
            "CWE-674"
          ],
          "cvss": {
            "score": 4.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=2.0.0 <2.8.3"
        }
      ],
      "effects": [],
      "range": "2.0.0 - 2.8.2",
      "nodes": [
        "node_modules/yaml"
      ],
      "fixAvailable": true
    },
    "zip-stream": {
      "name": "zip-stream",
      "severity": "moderate",
      "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": 39,
      "high": 7,
      "critical": 0,
      "total": 46
    },
    "dependencies": {
      "prod": 1,
      "dev": 835,
      "optional": 39,
      "peer": 1,
      "peerOptional": 0,
      "total": 835
    }
  }
}

--- 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/installers (v2.3.0)
  - 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 danog/advanced-json-rpc (v3.2.3)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.0)
  - Locking doctrine/deprecations (1.1.6)
  - Locking mediawiki/mediawiki-codesniffer (v50.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.20.0)
  - Locking mediawiki/minus-x (2.0.1)
  - Locking mediawiki/phan-taint-check-plugin (9.1.0)
  - Locking netresearch/jsonmapper (v5.0.1)
  - Locking phan/phan (6.0.2)
  - Locking phan/tolerant-php-parser (v0.2.0)
  - Locking phan/var_representation_polyfill (0.1.4)
  - 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 (6.0.3)
  - Locking phpdocumentor/type-resolver (2.0.0)
  - Locking phpstan/phpdoc-parser (2.3.2)
  - Locking psr/container (2.0.2)
  - Locking psr/log (3.0.2)
  - Locking sabre/event (6.0.1)
  - Locking squizlabs/php_codesniffer (3.13.5)
  - Locking symfony/console (v8.0.7)
  - 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/service-contracts (v3.6.1)
  - Locking symfony/string (v8.0.6)
  - Locking webmozart/assert (2.1.6)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 38 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Installing composer/installers (v2.3.0): Extracting archive
  - 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 (v50.0.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.33.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.33.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.33.0): Extracting archive
  - Installing symfony/string (v8.0.6): Extracting archive
  - Installing symfony/deprecation-contracts (v3.6.0): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.6.1): Extracting archive
  - Installing symfony/console (v8.0.7): Extracting archive
  - Installing sabre/event (6.0.1): Extracting archive
  - Installing phan/var_representation_polyfill (0.1.4): Extracting archive
  - Installing phan/tolerant-php-parser (v0.2.0): Extracting archive
  - Installing netresearch/jsonmapper (v5.0.1): Extracting archive
  - Installing webmozart/assert (2.1.6): Extracting archive
  - Installing phpstan/phpdoc-parser (2.3.2): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing doctrine/deprecations (1.1.6): Extracting archive
  - Installing phpdocumentor/type-resolver (2.0.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (6.0.3): Extracting archive
  - Installing danog/advanced-json-rpc (v3.2.3): Extracting archive
  - Installing psr/log (3.0.2): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (6.0.2): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (9.1.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.20.0): Extracting archive
  - Installing mediawiki/minus-x (2.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
  0/35 [>---------------------------]   0%
 20/35 [================>-----------]  57%
 34/35 [===========================>]  97%
 35/35 [============================] 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 ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@eslint/eslintrc": {
      "name": "@eslint/eslintrc",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint"
      ],
      "range": "0.0.1 || >=0.1.1",
      "nodes": [
        "node_modules/@eslint/eslintrc"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "@humanwhocodes/config-array": {
      "name": "@humanwhocodes/config-array",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@humanwhocodes/config-array"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/eslint-plugin": {
      "name": "@typescript-eslint/eslint-plugin",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@typescript-eslint/type-utils",
        "@typescript-eslint/utils",
        "eslint"
      ],
      "effects": [],
      "range": "<=8.55.1-alpha.3",
      "nodes": [
        "node_modules/@typescript-eslint/eslint-plugin"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/parser": {
      "name": "@typescript-eslint/parser",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "1.1.1-alpha.0 - 8.56.1-alpha.2",
      "nodes": [
        "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": "moderate",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "@typescript-eslint/utils",
        "eslint"
      ],
      "effects": [
        "@typescript-eslint/eslint-plugin"
      ],
      "range": "5.9.2-alpha.0 - 8.56.1-alpha.2",
      "nodes": [
        "node_modules/@typescript-eslint/type-utils"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/parser",
        "@typescript-eslint/type-utils",
        "@typescript-eslint/utils"
      ],
      "range": "6.16.0 - 8.56.1-alpha.2",
      "nodes": [
        "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": "moderate",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "eslint"
      ],
      "effects": [
        "@typescript-eslint/eslint-plugin",
        "@typescript-eslint/type-utils"
      ],
      "range": "<=8.56.1-alpha.2",
      "nodes": [
        "node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": true
    },
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "moderate",
      "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": "moderate",
      "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": "moderate",
      "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": "moderate",
      "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": ">=6.1.19",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "6.1.17",
        "isSemVerMajor": true
      }
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "expect-webdriverio",
        "webdriver",
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": false
    },
    "archiver": {
      "name": "archiver",
      "severity": "moderate",
      "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": "moderate",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "archiver",
        "zip-stream"
      ],
      "range": ">=0.2.0",
      "nodes": [
        "node_modules/archiver-utils"
      ],
      "fixAvailable": false
    },
    "brace-expansion": {
      "name": "brace-expansion",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1115432,
          "name": "brace-expansion",
          "dependency": "brace-expansion",
          "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
          "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
          },
          "range": "<5.0.5"
        }
      ],
      "effects": [
        "minimatch"
      ],
      "range": "<5.0.5",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion",
        "node_modules/@wdio/config/node_modules/brace-expansion",
        "node_modules/archiver-utils/node_modules/brace-expansion",
        "node_modules/brace-expansion",
        "node_modules/filelist/node_modules/brace-expansion",
        "node_modules/mocha/node_modules/brace-expansion",
        "node_modules/readdir-glob/node_modules/brace-expansion"
      ],
      "fixAvailable": false
    },
    "create-wdio": {
      "name": "create-wdio",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "ejs",
        "recursive-readdir"
      ],
      "effects": [
        "@wdio/cli"
      ],
      "range": ">=9.17.0",
      "nodes": [
        "node_modules/create-wdio"
      ],
      "fixAvailable": false
    },
    "doiuse": {
      "name": "doiuse",
      "severity": "moderate",
      "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": "moderate",
      "isDirect": false,
      "via": [
        "jake"
      ],
      "effects": [],
      "range": "3.1.2 - 4.0.1",
      "nodes": [
        "node_modules/ejs"
      ],
      "fixAvailable": true
    },
    "eslint": {
      "name": "eslint",
      "severity": "moderate",
      "isDirect": false,
      "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",
        "grunt-eslint"
      ],
      "range": "0.12.0 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2",
      "nodes": [
        "node_modules/eslint"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "eslint-config-wikimedia": {
      "name": "eslint-config-wikimedia",
      "severity": "moderate",
      "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": "moderate",
      "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": "moderate",
      "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": "moderate",
      "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": "moderate",
      "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
    },
    "file-entry-cache": {
      "name": "file-entry-cache",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "flat-cache"
      ],
      "effects": [
        "eslint"
      ],
      "range": "4.0.0 - 7.0.2",
      "nodes": [
        "node_modules/file-entry-cache"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "filelist": {
      "name": "filelist",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "jake"
      ],
      "range": "0.0.5 - 1.0.6",
      "nodes": [
        "node_modules/filelist"
      ],
      "fixAvailable": true
    },
    "flat-cache": {
      "name": "flat-cache",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "rimraf"
      ],
      "effects": [
        "file-entry-cache"
      ],
      "range": "1.3.4 - 4.0.0",
      "nodes": [
        "node_modules/flat-cache"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "glob": {
      "name": "glob",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@wdio/config",
        "archiver-utils",
        "grunt",
        "mocha",
        "rimraf"
      ],
      "range": "4.3.0 - 10.5.0",
      "nodes": [
        "node_modules/@wdio/config/node_modules/glob",
        "node_modules/archiver-utils/node_modules/glob",
        "node_modules/glob",
        "node_modules/grunt/node_modules/glob",
        "node_modules/mocha/node_modules/glob"
      ],
      "fixAvailable": false
    },
    "grunt": {
      "name": "grunt",
      "severity": "high",
      "isDirect": true,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "grunt-eslint"
      ],
      "range": ">=0.4.0-a",
      "nodes": [
        "node_modules/grunt"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "0.3.17",
        "isSemVerMajor": true
      }
    },
    "grunt-eslint": {
      "name": "grunt-eslint",
      "severity": "high",
      "isDirect": true,
      "via": [
        "eslint",
        "grunt"
      ],
      "effects": [],
      "range": "<=1.0.0 || 4.0.0 - 17.3.2 || >=18.1.0",
      "nodes": [
        "node_modules/grunt-eslint"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "jake": {
      "name": "jake",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "filelist"
      ],
      "effects": [
        "ejs"
      ],
      "range": "10.6.1 - 10.9.4",
      "nodes": [
        "node_modules/jake"
      ],
      "fixAvailable": true
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113459,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
          "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<3.1.3"
        },
        {
          "source": 1113538,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
          "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
          "severity": "high",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.1.3"
        },
        {
          "source": 1113546,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
          "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.1.4"
        },
        "brace-expansion"
      ],
      "effects": [
        "@eslint/eslintrc",
        "@humanwhocodes/config-array",
        "@typescript-eslint/typescript-estree",
        "eslint",
        "filelist",
        "glob",
        "grunt",
        "mocha",
        "multimatch",
        "readdir-glob",
        "recursive-readdir"
      ],
      "range": "<=10.0.2",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch",
        "node_modules/@wdio/config/node_modules/minimatch",
        "node_modules/archiver-utils/node_modules/minimatch",
        "node_modules/filelist/node_modules/minimatch",
        "node_modules/grunt/node_modules/minimatch",
        "node_modules/minimatch",
        "node_modules/mocha/node_modules/minimatch",
        "node_modules/readdir-glob/node_modules/minimatch"
      ],
      "fixAvailable": false
    },
    "mocha": {
      "name": "mocha",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob",
        "minimatch",
        "serialize-javascript"
      ],
      "effects": [
        "@wdio/mocha-framework"
      ],
      "range": ">=3.0.0-0",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "6.1.17",
        "isSemVerMajor": true
      }
    },
    "multimatch": {
      "name": "multimatch",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "doiuse"
      ],
      "range": "2.0.0 - 7.0.0",
      "nodes": [
        "node_modules/multimatch"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "picomatch": {
      "name": "picomatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1115382,
          "name": "picomatch",
          "dependency": "picomatch",
          "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers",
          "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<2.3.2"
        },
        {
          "source": 1115384,
          "name": "picomatch",
          "dependency": "picomatch",
          "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers",
          "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=4.0.0 <4.0.4"
        },
        {
          "source": 1115394,
          "name": "picomatch",
          "dependency": "picomatch",
          "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
          "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<2.3.2"
        },
        {
          "source": 1115396,
          "name": "picomatch",
          "dependency": "picomatch",
          "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
          "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": ">=4.0.0 <4.0.4"
        }
      ],
      "effects": [],
      "range": "<=2.3.1 || 4.0.0 - 4.0.3",
      "nodes": [
        "node_modules/@stylistic/eslint-plugin/node_modules/picomatch",
        "node_modules/jest-util/node_modules/picomatch",
        "node_modules/picomatch",
        "node_modules/ts-declaration-location/node_modules/picomatch"
      ],
      "fixAvailable": true
    },
    "readdir-glob": {
      "name": "readdir-glob",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "archiver"
      ],
      "range": "<=2.0.3",
      "nodes": [
        "node_modules/readdir-glob"
      ],
      "fixAvailable": false
    },
    "recursive-readdir": {
      "name": "recursive-readdir",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "create-wdio"
      ],
      "range": ">=2.1.0",
      "nodes": [
        "node_modules/recursive-readdir"
      ],
      "fixAvailable": false
    },
    "rimraf": {
      "name": "rimraf",
      "severity": "moderate",
      "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": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "serialize-javascript": {
      "name": "serialize-javascript",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113686,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()",
          "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq",
          "severity": "high",
          "cwe": [
            "CWE-96"
          ],
          "cvss": {
            "score": 8.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": "<=7.0.2"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<=7.0.2",
      "nodes": [
        "node_modules/serialize-javascript"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "6.1.17",
        "isSemVerMajor": true
      }
    },
    "stylelint-config-wikimedia": {
      "name": "stylelint-config-wikimedia",
      "severity": "moderate",
      "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": "moderate",
      "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
      }
    },
    "webdriver": {
      "name": "webdriver",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@wdio/config"
      ],
      "effects": [
        "@wdio/runner"
      ],
      "range": ">=5.0.0-alpha.2",
      "nodes": [
        "node_modules/webdriver"
      ],
      "fixAvailable": false
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "archiver",
        "webdriver"
      ],
      "effects": [
        "@wdio/globals",
        "expect-webdriverio"
      ],
      "range": ">=5.0.0-alpha.2",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": false
    },
    "yaml": {
      "name": "yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1115369,
          "name": "yaml",
          "dependency": "yaml",
          "title": "yaml is vulnerable to Stack Overflow via deeply nested YAML collections",
          "url": "https://github.com/advisories/GHSA-48c2-rrv3-qjmp",
          "severity": "moderate",
          "cwe": [
            "CWE-674"
          ],
          "cvss": {
            "score": 4.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=2.0.0 <2.8.3"
        }
      ],
      "effects": [],
      "range": "2.0.0 - 2.8.2",
      "nodes": [
        "node_modules/yaml"
      ],
      "fixAvailable": true
    },
    "zip-stream": {
      "name": "zip-stream",
      "severity": "moderate",
      "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": 39,
      "high": 7,
      "critical": 0,
      "total": 46
    },
    "dependencies": {
      "prod": 1,
      "dev": 835,
      "optional": 39,
      "peer": 1,
      "peerOptional": 0,
      "total": 835
    }
  }
}

--- end ---
Attempting to npm audit fix
$ /usr/bin/npm audit fix --dry-run --only=dev --json
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
--- stdout ---
{
  "added": 840,
  "removed": 0,
  "changed": 0,
  "audited": 841,
  "funding": 197,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@eslint/eslintrc": {
        "name": "@eslint/eslintrc",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "eslint"
        ],
        "range": "0.0.1 || >=0.1.1",
        "nodes": [
          "node_modules/@eslint/eslintrc"
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "@humanwhocodes/config-array": {
        "name": "@humanwhocodes/config-array",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "eslint"
        ],
        "range": "*",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "@typescript-eslint/eslint-plugin": {
        "name": "@typescript-eslint/eslint-plugin",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@typescript-eslint/type-utils",
          "@typescript-eslint/utils",
          "eslint"
        ],
        "effects": [],
        "range": "<=8.55.1-alpha.3",
        "nodes": [
          "node_modules/@typescript-eslint/eslint-plugin"
        ],
        "fixAvailable": true
      },
      "@typescript-eslint/parser": {
        "name": "@typescript-eslint/parser",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@typescript-eslint/typescript-estree",
          "eslint"
        ],
        "effects": [
          "eslint-config-wikimedia"
        ],
        "range": "1.1.1-alpha.0 - 8.56.1-alpha.2",
        "nodes": [
          "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": "moderate",
        "isDirect": false,
        "via": [
          "@typescript-eslint/typescript-estree",
          "@typescript-eslint/utils",
          "eslint"
        ],
        "effects": [
          "@typescript-eslint/eslint-plugin"
        ],
        "range": "5.9.2-alpha.0 - 8.56.1-alpha.2",
        "nodes": [
          "node_modules/@typescript-eslint/type-utils"
        ],
        "fixAvailable": true
      },
      "@typescript-eslint/typescript-estree": {
        "name": "@typescript-eslint/typescript-estree",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "@typescript-eslint/parser",
          "@typescript-eslint/type-utils",
          "@typescript-eslint/utils"
        ],
        "range": "6.16.0 - 8.56.1-alpha.2",
        "nodes": [
          "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": "moderate",
        "isDirect": false,
        "via": [
          "@typescript-eslint/typescript-estree",
          "eslint"
        ],
        "effects": [
          "@typescript-eslint/eslint-plugin",
          "@typescript-eslint/type-utils"
        ],
        "range": "<=8.56.1-alpha.2",
        "nodes": [
          "node_modules/@typescript-eslint/utils"
        ],
        "fixAvailable": true
      },
      "@wdio/cli": {
        "name": "@wdio/cli",
        "severity": "moderate",
        "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": "moderate",
        "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": "moderate",
        "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": "moderate",
        "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": ">=6.1.19",
        "nodes": [
          "node_modules/@wdio/mocha-framework"
        ],
        "fixAvailable": {
          "name": "@wdio/mocha-framework",
          "version": "6.1.17",
          "isSemVerMajor": true
        }
      },
      "@wdio/runner": {
        "name": "@wdio/runner",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@wdio/config",
          "@wdio/globals",
          "expect-webdriverio",
          "webdriver",
          "webdriverio"
        ],
        "effects": [
          "@wdio/local-runner"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@wdio/runner"
        ],
        "fixAvailable": false
      },
      "archiver": {
        "name": "archiver",
        "severity": "moderate",
        "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": "moderate",
        "isDirect": false,
        "via": [
          "glob"
        ],
        "effects": [
          "archiver",
          "zip-stream"
        ],
        "range": ">=0.2.0",
        "nodes": [
          "node_modules/archiver-utils"
        ],
        "fixAvailable": false
      },
      "brace-expansion": {
        "name": "brace-expansion",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1115432,
            "name": "brace-expansion",
            "dependency": "brace-expansion",
            "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
            "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v",
            "severity": "moderate",
            "cwe": [
              "CWE-400"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
            },
            "range": "<5.0.5"
          }
        ],
        "effects": [
          "minimatch"
        ],
        "range": "<5.0.5",
        "nodes": [
          "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion",
          "node_modules/@wdio/config/node_modules/brace-expansion",
          "node_modules/archiver-utils/node_modules/brace-expansion",
          "node_modules/brace-expansion",
          "node_modules/filelist/node_modules/brace-expansion",
          "node_modules/mocha/node_modules/brace-expansion",
          "node_modules/readdir-glob/node_modules/brace-expansion"
        ],
        "fixAvailable": false
      },
      "create-wdio": {
        "name": "create-wdio",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "ejs",
          "recursive-readdir"
        ],
        "effects": [
          "@wdio/cli"
        ],
        "range": ">=9.17.0",
        "nodes": [
          "node_modules/create-wdio"
        ],
        "fixAvailable": false
      },
      "doiuse": {
        "name": "doiuse",
        "severity": "moderate",
        "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": "moderate",
        "isDirect": false,
        "via": [
          "jake"
        ],
        "effects": [],
        "range": "3.1.2 - 4.0.1",
        "nodes": [
          "node_modules/ejs"
        ],
        "fixAvailable": true
      },
      "eslint": {
        "name": "eslint",
        "severity": "moderate",
        "isDirect": false,
        "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",
          "grunt-eslint"
        ],
        "range": "0.12.0 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2",
        "nodes": [
          "",
          "node_modules/eslint"
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "eslint-config-wikimedia": {
        "name": "eslint-config-wikimedia",
        "severity": "moderate",
        "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": "moderate",
        "isDirect": false,
        "via": [
          "eslint"
        ],
        "effects": [],
        "range": "25.0.1 - 29.12.2",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "eslint-plugin-jsdoc": {
        "name": "eslint-plugin-jsdoc",
        "severity": "moderate",
        "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": "moderate",
        "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": "moderate",
        "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
      },
      "file-entry-cache": {
        "name": "file-entry-cache",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "flat-cache"
        ],
        "effects": [
          "eslint"
        ],
        "range": "4.0.0 - 7.0.2",
        "nodes": [
          "node_modules/file-entry-cache"
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "filelist": {
        "name": "filelist",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "jake"
        ],
        "range": "0.0.5 - 1.0.6",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "flat-cache": {
        "name": "flat-cache",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "rimraf"
        ],
        "effects": [
          "file-entry-cache"
        ],
        "range": "1.3.4 - 4.0.0",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "glob": {
        "name": "glob",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "@wdio/config",
          "archiver-utils",
          "grunt",
          "mocha",
          "rimraf"
        ],
        "range": "4.3.0 - 10.5.0",
        "nodes": [
          "node_modules/@wdio/config/node_modules/glob",
          "node_modules/archiver-utils/node_modules/glob",
          "node_modules/glob",
          "node_modules/grunt/node_modules/glob",
          "node_modules/mocha/node_modules/glob"
        ],
        "fixAvailable": false
      },
      "grunt": {
        "name": "grunt",
        "severity": "high",
        "isDirect": true,
        "via": [
          "glob",
          "minimatch"
        ],
        "effects": [
          "grunt-eslint"
        ],
        "range": ">=0.4.0-a",
        "nodes": [
          "node_modules/grunt"
        ],
        "fixAvailable": {
          "name": "grunt",
          "version": "0.3.17",
          "isSemVerMajor": true
        }
      },
      "grunt-eslint": {
        "name": "grunt-eslint",
        "severity": "high",
        "isDirect": true,
        "via": [
          "eslint",
          "grunt"
        ],
        "effects": [],
        "range": "<=1.0.0 || 4.0.0 - 17.3.2 || >=18.1.0",
        "nodes": [
          "node_modules/grunt-eslint"
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "jake": {
        "name": "jake",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "filelist"
        ],
        "effects": [
          "ejs"
        ],
        "range": "10.6.1 - 10.9.4",
        "nodes": [
          "node_modules/jake"
        ],
        "fixAvailable": true
      },
      "minimatch": {
        "name": "minimatch",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1113459,
            "name": "minimatch",
            "dependency": "minimatch",
            "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
            "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
            "severity": "high",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<3.1.3"
          },
          {
            "source": 1113538,
            "name": "minimatch",
            "dependency": "minimatch",
            "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
            "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
            "severity": "high",
            "cwe": [
              "CWE-407"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<3.1.3"
          },
          {
            "source": 1113546,
            "name": "minimatch",
            "dependency": "minimatch",
            "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
            "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
            "severity": "high",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<3.1.4"
          },
          "brace-expansion"
        ],
        "effects": [
          "@eslint/eslintrc",
          "@humanwhocodes/config-array",
          "@typescript-eslint/typescript-estree",
          "eslint",
          "filelist",
          "glob",
          "grunt",
          "mocha",
          "multimatch",
          "readdir-glob",
          "recursive-readdir"
        ],
        "range": "<=10.0.2",
        "nodes": [
          "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch",
          "node_modules/@wdio/config/node_modules/minimatch",
          "node_modules/archiver-utils/node_modules/minimatch",
          "node_modules/filelist/node_modules/minimatch",
          "node_modules/grunt/node_modules/minimatch",
          "node_modules/minimatch",
          "node_modules/mocha/node_modules/minimatch",
          "node_modules/readdir-glob/node_modules/minimatch"
        ],
        "fixAvailable": false
      },
      "mocha": {
        "name": "mocha",
        "severity": "high",
        "isDirect": false,
        "via": [
          "glob",
          "minimatch",
          "serialize-javascript"
        ],
        "effects": [
          "@wdio/mocha-framework"
        ],
        "range": ">=3.0.0-0",
        "nodes": [
          "node_modules/mocha"
        ],
        "fixAvailable": {
          "name": "@wdio/mocha-framework",
          "version": "6.1.17",
          "isSemVerMajor": true
        }
      },
      "multimatch": {
        "name": "multimatch",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "doiuse"
        ],
        "range": "2.0.0 - 7.0.0",
        "nodes": [
          "node_modules/multimatch"
        ],
        "fixAvailable": {
          "name": "stylelint-config-wikimedia",
          "version": "0.10.1",
          "isSemVerMajor": true
        }
      },
      "picomatch": {
        "name": "picomatch",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1115382,
            "name": "picomatch",
            "dependency": "picomatch",
            "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers",
            "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj",
            "severity": "high",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<2.3.2"
          },
          {
            "source": 1115384,
            "name": "picomatch",
            "dependency": "picomatch",
            "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers",
            "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj",
            "severity": "high",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": ">=4.0.0 <4.0.4"
          },
          {
            "source": 1115394,
            "name": "picomatch",
            "dependency": "picomatch",
            "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
            "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p",
            "severity": "moderate",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 5.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": "<2.3.2"
          },
          {
            "source": 1115396,
            "name": "picomatch",
            "dependency": "picomatch",
            "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
            "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p",
            "severity": "moderate",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 5.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": ">=4.0.0 <4.0.4"
          }
        ],
        "effects": [],
        "range": "<=2.3.1 || 4.0.0 - 4.0.3",
        "nodes": [
          "",
          "",
          "",
          ""
        ],
        "fixAvailable": true
      },
      "readdir-glob": {
        "name": "readdir-glob",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "archiver"
        ],
        "range": "<=2.0.3",
        "nodes": [
          "node_modules/readdir-glob"
        ],
        "fixAvailable": false
      },
      "recursive-readdir": {
        "name": "recursive-readdir",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "create-wdio"
        ],
        "range": ">=2.1.0",
        "nodes": [
          "node_modules/recursive-readdir"
        ],
        "fixAvailable": false
      },
      "rimraf": {
        "name": "rimraf",
        "severity": "moderate",
        "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": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "serialize-javascript": {
        "name": "serialize-javascript",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1113686,
            "name": "serialize-javascript",
            "dependency": "serialize-javascript",
            "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()",
            "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq",
            "severity": "high",
            "cwe": [
              "CWE-96"
            ],
            "cvss": {
              "score": 8.1,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
            },
            "range": "<=7.0.2"
          }
        ],
        "effects": [
          "mocha"
        ],
        "range": "<=7.0.2",
        "nodes": [
          "node_modules/serialize-javascript"
        ],
        "fixAvailable": {
          "name": "@wdio/mocha-framework",
          "version": "6.1.17",
          "isSemVerMajor": true
        }
      },
      "stylelint-config-wikimedia": {
        "name": "stylelint-config-wikimedia",
        "severity": "moderate",
        "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": "moderate",
        "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
        }
      },
      "webdriver": {
        "name": "webdriver",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@wdio/config"
        ],
        "effects": [
          "@wdio/runner"
        ],
        "range": ">=5.0.0-alpha.2",
        "nodes": [
          "node_modules/webdriver"
        ],
        "fixAvailable": false
      },
      "webdriverio": {
        "name": "webdriverio",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@wdio/config",
          "archiver",
          "webdriver"
        ],
        "effects": [
          "@wdio/globals",
          "expect-webdriverio"
        ],
        "range": ">=5.0.0-alpha.2",
        "nodes": [
          "node_modules/webdriverio"
        ],
        "fixAvailable": false
      },
      "yaml": {
        "name": "yaml",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1115369,
            "name": "yaml",
            "dependency": "yaml",
            "title": "yaml is vulnerable to Stack Overflow via deeply nested YAML collections",
            "url": "https://github.com/advisories/GHSA-48c2-rrv3-qjmp",
            "severity": "moderate",
            "cwe": [
              "CWE-674"
            ],
            "cvss": {
              "score": 4.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": ">=2.0.0 <2.8.3"
          }
        ],
        "effects": [],
        "range": "2.0.0 - 2.8.2",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "zip-stream": {
        "name": "zip-stream",
        "severity": "moderate",
        "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": 39,
        "high": 7,
        "critical": 0,
        "total": 46
      },
      "dependencies": {
        "prod": 1,
        "dev": 840,
        "optional": 39,
        "peer": 1,
        "peerOptional": 0,
        "total": 840
      }
    }
  }
}

--- end ---
{"added": 840, "removed": 0, "changed": 0, "audited": 841, "funding": 197, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@eslint/eslintrc": {"name": "@eslint/eslintrc", "severity": "moderate", "isDirect": false, "via": ["minimatch"], "effects": ["eslint"], "range": "0.0.1 || >=0.1.1", "nodes": ["node_modules/@eslint/eslintrc"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "@humanwhocodes/config-array": {"name": "@humanwhocodes/config-array", "severity": "moderate", "isDirect": false, "via": ["minimatch"], "effects": ["eslint"], "range": "*", "nodes": [""], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "@typescript-eslint/eslint-plugin": {"name": "@typescript-eslint/eslint-plugin", "severity": "moderate", "isDirect": false, "via": ["@typescript-eslint/type-utils", "@typescript-eslint/utils", "eslint"], "effects": [], "range": "<=8.55.1-alpha.3", "nodes": ["node_modules/@typescript-eslint/eslint-plugin"], "fixAvailable": true}, "@typescript-eslint/parser": {"name": "@typescript-eslint/parser", "severity": "moderate", "isDirect": false, "via": ["@typescript-eslint/typescript-estree", "eslint"], "effects": ["eslint-config-wikimedia"], "range": "1.1.1-alpha.0 - 8.56.1-alpha.2", "nodes": ["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": "moderate", "isDirect": false, "via": ["@typescript-eslint/typescript-estree", "@typescript-eslint/utils", "eslint"], "effects": ["@typescript-eslint/eslint-plugin"], "range": "5.9.2-alpha.0 - 8.56.1-alpha.2", "nodes": ["node_modules/@typescript-eslint/type-utils"], "fixAvailable": true}, "@typescript-eslint/typescript-estree": {"name": "@typescript-eslint/typescript-estree", "severity": "moderate", "isDirect": false, "via": ["minimatch"], "effects": ["@typescript-eslint/parser", "@typescript-eslint/type-utils", "@typescript-eslint/utils"], "range": "6.16.0 - 8.56.1-alpha.2", "nodes": ["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": "moderate", "isDirect": false, "via": ["@typescript-eslint/typescript-estree", "eslint"], "effects": ["@typescript-eslint/eslint-plugin", "@typescript-eslint/type-utils"], "range": "<=8.56.1-alpha.2", "nodes": ["node_modules/@typescript-eslint/utils"], "fixAvailable": true}, "@wdio/cli": {"name": "@wdio/cli", "severity": "moderate", "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": "moderate", "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": "moderate", "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": "moderate", "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": ">=6.1.19", "nodes": ["node_modules/@wdio/mocha-framework"], "fixAvailable": {"name": "@wdio/mocha-framework", "version": "6.1.17", "isSemVerMajor": true}}, "@wdio/runner": {"name": "@wdio/runner", "severity": "moderate", "isDirect": false, "via": ["@wdio/config", "@wdio/globals", "expect-webdriverio", "webdriver", "webdriverio"], "effects": ["@wdio/local-runner"], "range": "*", "nodes": ["node_modules/@wdio/runner"], "fixAvailable": false}, "archiver": {"name": "archiver", "severity": "moderate", "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": "moderate", "isDirect": false, "via": ["glob"], "effects": ["archiver", "zip-stream"], "range": ">=0.2.0", "nodes": ["node_modules/archiver-utils"], "fixAvailable": false}, "brace-expansion": {"name": "brace-expansion", "severity": "moderate", "isDirect": false, "via": [{"source": 1115432, "name": "brace-expansion", "dependency": "brace-expansion", "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion", "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v", "severity": "moderate", "cwe": ["CWE-400"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"}, "range": "<5.0.5"}], "effects": ["minimatch"], "range": "<5.0.5", "nodes": ["node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion", "node_modules/@wdio/config/node_modules/brace-expansion", "node_modules/archiver-utils/node_modules/brace-expansion", "node_modules/brace-expansion", "node_modules/filelist/node_modules/brace-expansion", "node_modules/mocha/node_modules/brace-expansion", "node_modules/readdir-glob/node_modules/brace-expansion"], "fixAvailable": false}, "create-wdio": {"name": "create-wdio", "severity": "moderate", "isDirect": false, "via": ["ejs", "recursive-readdir"], "effects": ["@wdio/cli"], "range": ">=9.17.0", "nodes": ["node_modules/create-wdio"], "fixAvailable": false}, "doiuse": {"name": "doiuse", "severity": "moderate", "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": "moderate", "isDirect": false, "via": ["jake"], "effects": [], "range": "3.1.2 - 4.0.1", "nodes": ["node_modules/ejs"], "fixAvailable": true}, "eslint": {"name": "eslint", "severity": "moderate", "isDirect": false, "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", "grunt-eslint"], "range": "0.12.0 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2", "nodes": ["", "node_modules/eslint"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "eslint-config-wikimedia": {"name": "eslint-config-wikimedia", "severity": "moderate", "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": "moderate", "isDirect": false, "via": ["eslint"], "effects": [], "range": "25.0.1 - 29.12.2", "nodes": [""], "fixAvailable": true}, "eslint-plugin-jsdoc": {"name": "eslint-plugin-jsdoc", "severity": "moderate", "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": "moderate", "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": "moderate", "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}, "file-entry-cache": {"name": "file-entry-cache", "severity": "moderate", "isDirect": false, "via": ["flat-cache"], "effects": ["eslint"], "range": "4.0.0 - 7.0.2", "nodes": ["node_modules/file-entry-cache"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "filelist": {"name": "filelist", "severity": "moderate", "isDirect": false, "via": ["minimatch"], "effects": ["jake"], "range": "0.0.5 - 1.0.6", "nodes": [""], "fixAvailable": true}, "flat-cache": {"name": "flat-cache", "severity": "moderate", "isDirect": false, "via": ["rimraf"], "effects": ["file-entry-cache"], "range": "1.3.4 - 4.0.0", "nodes": [""], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "glob": {"name": "glob", "severity": "moderate", "isDirect": false, "via": ["minimatch"], "effects": ["@wdio/config", "archiver-utils", "grunt", "mocha", "rimraf"], "range": "4.3.0 - 10.5.0", "nodes": ["node_modules/@wdio/config/node_modules/glob", "node_modules/archiver-utils/node_modules/glob", "node_modules/glob", "node_modules/grunt/node_modules/glob", "node_modules/mocha/node_modules/glob"], "fixAvailable": false}, "grunt": {"name": "grunt", "severity": "high", "isDirect": true, "via": ["glob", "minimatch"], "effects": ["grunt-eslint"], "range": ">=0.4.0-a", "nodes": ["node_modules/grunt"], "fixAvailable": {"name": "grunt", "version": "0.3.17", "isSemVerMajor": true}}, "grunt-eslint": {"name": "grunt-eslint", "severity": "high", "isDirect": true, "via": ["eslint", "grunt"], "effects": [], "range": "<=1.0.0 || 4.0.0 - 17.3.2 || >=18.1.0", "nodes": ["node_modules/grunt-eslint"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "jake": {"name": "jake", "severity": "moderate", "isDirect": false, "via": ["filelist"], "effects": ["ejs"], "range": "10.6.1 - 10.9.4", "nodes": ["node_modules/jake"], "fixAvailable": true}, "minimatch": {"name": "minimatch", "severity": "high", "isDirect": false, "via": [{"source": 1113459, "name": "minimatch", "dependency": "minimatch", "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern", "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": "<3.1.3"}, {"source": 1113538, "name": "minimatch", "dependency": "minimatch", "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments", "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj", "severity": "high", "cwe": ["CWE-407"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<3.1.3"}, {"source": 1113546, "name": "minimatch", "dependency": "minimatch", "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions", "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<3.1.4"}, "brace-expansion"], "effects": ["@eslint/eslintrc", "@humanwhocodes/config-array", "@typescript-eslint/typescript-estree", "eslint", "filelist", "glob", "grunt", "mocha", "multimatch", "readdir-glob", "recursive-readdir"], "range": "<=10.0.2", "nodes": ["node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch", "node_modules/@wdio/config/node_modules/minimatch", "node_modules/archiver-utils/node_modules/minimatch", "node_modules/filelist/node_modules/minimatch", "node_modules/grunt/node_modules/minimatch", "node_modules/minimatch", "node_modules/mocha/node_modules/minimatch", "node_modules/readdir-glob/node_modules/minimatch"], "fixAvailable": false}, "mocha": {"name": "mocha", "severity": "high", "isDirect": false, "via": ["glob", "minimatch", "serialize-javascript"], "effects": ["@wdio/mocha-framework"], "range": ">=3.0.0-0", "nodes": ["node_modules/mocha"], "fixAvailable": {"name": "@wdio/mocha-framework", "version": "6.1.17", "isSemVerMajor": true}}, "multimatch": {"name": "multimatch", "severity": "moderate", "isDirect": false, "via": ["minimatch"], "effects": ["doiuse"], "range": "2.0.0 - 7.0.0", "nodes": ["node_modules/multimatch"], "fixAvailable": {"name": "stylelint-config-wikimedia", "version": "0.10.1", "isSemVerMajor": true}}, "picomatch": {"name": "picomatch", "severity": "high", "isDirect": false, "via": [{"source": 1115382, "name": "picomatch", "dependency": "picomatch", "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers", "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<2.3.2"}, {"source": 1115384, "name": "picomatch", "dependency": "picomatch", "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers", "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=4.0.0 <4.0.4"}, {"source": 1115394, "name": "picomatch", "dependency": "picomatch", "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching", "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": "<2.3.2"}, {"source": 1115396, "name": "picomatch", "dependency": "picomatch", "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching", "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": ">=4.0.0 <4.0.4"}], "effects": [], "range": "<=2.3.1 || 4.0.0 - 4.0.3", "nodes": ["", "", "", ""], "fixAvailable": true}, "readdir-glob": {"name": "readdir-glob", "severity": "moderate", "isDirect": false, "via": ["minimatch"], "effects": ["archiver"], "range": "<=2.0.3", "nodes": ["node_modules/readdir-glob"], "fixAvailable": false}, "recursive-readdir": {"name": "recursive-readdir", "severity": "moderate", "isDirect": false, "via": ["minimatch"], "effects": ["create-wdio"], "range": ">=2.1.0", "nodes": ["node_modules/recursive-readdir"], "fixAvailable": false}, "rimraf": {"name": "rimraf", "severity": "moderate", "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": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "serialize-javascript": {"name": "serialize-javascript", "severity": "high", "isDirect": false, "via": [{"source": 1113686, "name": "serialize-javascript", "dependency": "serialize-javascript", "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()", "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq", "severity": "high", "cwe": ["CWE-96"], "cvss": {"score": 8.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"}, "range": "<=7.0.2"}], "effects": ["mocha"], "range": "<=7.0.2", "nodes": ["node_modules/serialize-javascript"], "fixAvailable": {"name": "@wdio/mocha-framework", "version": "6.1.17", "isSemVerMajor": true}}, "stylelint-config-wikimedia": {"name": "stylelint-config-wikimedia", "severity": "moderate", "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": "moderate", "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}}, "webdriver": {"name": "webdriver", "severity": "moderate", "isDirect": false, "via": ["@wdio/config"], "effects": ["@wdio/runner"], "range": ">=5.0.0-alpha.2", "nodes": ["node_modules/webdriver"], "fixAvailable": false}, "webdriverio": {"name": "webdriverio", "severity": "moderate", "isDirect": false, "via": ["@wdio/config", "archiver", "webdriver"], "effects": ["@wdio/globals", "expect-webdriverio"], "range": ">=5.0.0-alpha.2", "nodes": ["node_modules/webdriverio"], "fixAvailable": false}, "yaml": {"name": "yaml", "severity": "moderate", "isDirect": false, "via": [{"source": 1115369, "name": "yaml", "dependency": "yaml", "title": "yaml is vulnerable to Stack Overflow via deeply nested YAML collections", "url": "https://github.com/advisories/GHSA-48c2-rrv3-qjmp", "severity": "moderate", "cwe": ["CWE-674"], "cvss": {"score": 4.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=2.0.0 <2.8.3"}], "effects": [], "range": "2.0.0 - 2.8.2", "nodes": [""], "fixAvailable": true}, "zip-stream": {"name": "zip-stream", "severity": "moderate", "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": 39, "high": 7, "critical": 0, "total": 46}, "dependencies": {"prod": 1, "dev": 840, "optional": 39, "peer": 1, "peerOptional": 0, "total": 840}}}}
$ /usr/bin/npm audit fix --only=dev
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm WARN deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
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 815 packages, and audited 816 packages in 19s

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

# npm audit report

brace-expansion  <5.0.5
Severity: moderate
brace-expansion: Zero-step sequence causes process hang and memory exhaustion - https://github.com/advisories/GHSA-f886-m6hf-6m8v
fix available via `npm audit fix --force`
Will install eslint-config-wikimedia@0.8.1, which is a breaking change
node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion
node_modules/@wdio/config/node_modules/brace-expansion
node_modules/archiver-utils/node_modules/brace-expansion
node_modules/brace-expansion
node_modules/filelist/node_modules/brace-expansion
node_modules/mocha/node_modules/brace-expansion
node_modules/readdir-glob/node_modules/brace-expansion
  minimatch  <=10.0.2
  Depends on vulnerable versions of brace-expansion
  node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch
  node_modules/@wdio/config/node_modules/minimatch
  node_modules/archiver-utils/node_modules/minimatch
  node_modules/filelist/node_modules/minimatch
  node_modules/grunt/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.12.0 - 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  <=8.56.1-alpha.2
        Depends on vulnerable versions of @typescript-eslint/type-utils
        Depends on vulnerable versions of @typescript-eslint/utils
        Depends on vulnerable versions of eslint
        node_modules/@typescript-eslint/eslint-plugin
        @typescript-eslint/parser  1.1.1-alpha.0 - 8.56.1-alpha.2
        Depends on vulnerable versions of @typescript-eslint/typescript-estree
        Depends on vulnerable versions of eslint
        node_modules/@typescript-eslint/parser
          eslint-config-wikimedia  >=0.9.0
          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-jsdoc
          Depends on vulnerable versions of eslint-plugin-vue
          node_modules/eslint-config-wikimedia
        @typescript-eslint/type-utils  5.62.1-alpha.0 - 8.56.1-alpha.2
        Depends on vulnerable versions of @typescript-eslint/typescript-estree
        Depends on vulnerable versions of @typescript-eslint/utils
        Depends on vulnerable versions of eslint
        node_modules/@typescript-eslint/type-utils
        @typescript-eslint/utils  <=8.56.1-alpha.2
        Depends on vulnerable versions of @typescript-eslint/typescript-estree
        Depends on vulnerable versions of eslint
        node_modules/@typescript-eslint/utils
        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
        grunt-eslint  <=1.0.0 || 4.0.0 - 17.3.2 || >=18.1.0
        Depends on vulnerable versions of eslint
        Depends on vulnerable versions of grunt
        node_modules/grunt-eslint
    @humanwhocodes/config-array  *
    Depends on vulnerable versions of minimatch
    node_modules/@humanwhocodes/config-array
    @typescript-eslint/typescript-estree  6.16.0 - 8.56.1-alpha.2
    Depends on vulnerable versions of minimatch
    node_modules/@typescript-eslint/typescript-estree
    filelist  0.0.5 - 1.0.6
    Depends on vulnerable versions of minimatch
    node_modules/filelist
      jake  10.6.1 - 10.9.4
      Depends on vulnerable versions of filelist
      node_modules/jake
        ejs  3.1.2 - 4.0.1
        Depends on vulnerable versions of jake
        node_modules/ejs
    glob  4.3.0 - 10.5.0
    Depends on vulnerable versions of minimatch
    node_modules/@wdio/config/node_modules/glob
    node_modules/archiver-utils/node_modules/glob
    node_modules/glob
    node_modules/grunt/node_modules/glob
    node_modules/mocha/node_modules/glob
      @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
      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
      grunt  >=0.4.0-a
      Depends on vulnerable versions of glob
      Depends on vulnerable versions of minimatch
      node_modules/grunt
      mocha  >=3.0.0-0
      Depends on vulnerable versions of glob
      Depends on vulnerable versions of minimatch
      Depends on vulnerable versions of serialize-javascript
      node_modules/mocha
        @wdio/mocha-framework  >=6.1.19
        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
    multimatch  2.0.0 - 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.3
    Depends on vulnerable versions of minimatch
    node_modules/readdir-glob
    recursive-readdir  >=2.1.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


serialize-javascript  <=7.0.2
Severity: high
Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString() - https://github.com/advisories/GHSA-5c6j-r48x-rmvq
fix available via `npm audit fix --force`
Will install @wdio/mocha-framework@6.1.17, which is a breaking change
node_modules/serialize-javascript

43 vulnerabilities (37 moderate, 6 high)

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

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

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

--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm WARN deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
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 815 packages, and audited 816 packages in 22s

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

43 vulnerabilities (37 moderate, 6 high)

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

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

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

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stdout ---

> test
> grunt test

Running "eslint:all" (eslint) task

/src/repo/modules/index.pagelist/PagelistInputWidget.DialogModel.js
  55:2  warning  Prefer .then to .done  no-jquery/no-done-fail

/src/repo/modules/index.pagelist/PagelistInputWidget.Model.js
  196:2  warning  Prefer .then to .done  no-jquery/no-done-fail

/src/repo/modules/index.pagelist/PagelistInputWidget.TopPanel.js
  23:17  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  27:18  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  31:15  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/index.pagelist/init.js
  6:1  warning  @internal should not have a name  jsdoc/valid-types

/src/repo/modules/page.editinsequence/EditorController.js
  93:26  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/page.editinsequence/PageModel.js
  138:1  warning  The type 'pageModelUpdated' is undefined  jsdoc/no-undefined-types
  280:1  warning  The type 'pageModelUpdated' is undefined  jsdoc/no-undefined-types

/src/repo/modules/page.editinsequence/PagelistModel.js
   33:2  warning  Prefer .then to .done                  no-jquery/no-done-fail
   98:1  warning  The type 'pageListReady' is undefined  jsdoc/no-undefined-types
   99:1  warning  The type 'pageUpdated' is undefined    jsdoc/no-undefined-types
  100:1  warning  The type 'lastReached' is undefined    jsdoc/no-undefined-types
  101:1  warning  The type 'firstReached' is undefined   jsdoc/no-undefined-types
  145:1  warning  The type 'pageUpdated' is undefined    jsdoc/no-undefined-types
  146:1  warning  The type 'lastReached' is undefined    jsdoc/no-undefined-types
  181:1  warning  The type 'pageUpdated' is undefined    jsdoc/no-undefined-types
  182:1  warning  The type 'firstReached' is undefined   jsdoc/no-undefined-types

/src/repo/modules/page/OpenseadragonController.js
  22:1  warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check

/src/repo/modules/page/ext.proofreadpage.page.edit.js
  149:14  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  157:14  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  165:14  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  173:14  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  181:14  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  418:1   warning  @internal should not have a name                                                                     jsdoc/valid-types

/src/repo/modules/ve/node/ve.ui.MWPagesInspector.js
  72:2  warning  Prefer .then to .done  no-jquery/no-done-fail

/src/repo/tests/selenium/util/eis-util.js
  14:2  warning  Unused eslint-disable directive (no problems were reported from 'security/detect-non-literal-fs-filename')

✖ 27 problems (0 errors, 27 warnings)
  0 errors and 1 warning potentially fixable with the `--fix` option.


Running "stylelint:all" (stylelint) task
>> modules/ext.proofreadpage.base.less
>>    6:1  ⚠  Unexpected browser feature "css-paged-media" is not supported by Safari 12-15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16,16.1,16.2,16.3,16.4,16.5,16.6,17,17.1,17.2,17.3,17.4,17.5,17.6,18,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18,18.1, Android Browser 146  plugin/no-unsupported-browser-features
>>    7:1  ⚠  Unexpected browser feature "css-paged-media" is not supported by Safari 12-15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16,16.1,16.2,16.3,16.4,16.5,16.6,17,17.1,17.2,17.3,17.4,17.5,17.6,18,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18,18.1, Android Browser 146  plugin/no-unsupported-browser-features
>>    8:1  ⚠  Unexpected browser feature "css-paged-media" is not supported by Safari 12-15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16,16.1,16.2,16.3,16.4,16.5,16.6,17,17.1,17.2,17.3,17.4,17.5,17.6,18,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18,18.1, Android Browser 146  plugin/no-unsupported-browser-features
>>    9:1  ⚠  Unexpected browser feature "css-paged-media" is not supported by Safari 12-15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16,16.1,16.2,16.3,16.4,16.5,16.6,17,17.1,17.2,17.3,17.4,17.5,17.6,18,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18,18.1, Android Browser 146  plugin/no-unsupported-browser-features
>>   10:1  ⚠  Unexpected browser feature "css-paged-media" is not supported by Safari 12-15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16,16.1,16.2,16.3,16.4,16.5,16.6,17,17.1,17.2,17.3,17.4,17.5,17.6,18,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18,18.1, Android Browser 146  plugin/no-unsupported-browser-features
>>   13:1  ⚠  Unexpected browser feature "css-paged-media" is not supported by Safari 12-15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16,16.1,16.2,16.3,16.4,16.5,16.6,17,17.1,17.2,17.3,17.4,17.5,17.6,18,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18,18.1, Android Browser 146  plugin/no-unsupported-browser-features
>>   14:1  ⚠  Unexpected browser feature "css-paged-media" is not supported by Safari 12-15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16,16.1,16.2,16.3,16.4,16.5,16.6,17,17.1,17.2,17.3,17.4,17.5,17.6,18,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18,18.1, Android Browser 146  plugin/no-unsupported-browser-features
>>   15:1  ⚠  Unexpected browser feature "css-paged-media" is not supported by Safari 12-15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16,16.1,16.2,16.3,16.4,16.5,16.6,17,17.1,17.2,17.3,17.4,17.5,17.6,18,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18,18.1, Android Browser 146  plugin/no-unsupported-browser-features
>>   16:1  ⚠  Unexpected browser feature "css-paged-media" is not supported by Safari 12-15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16,16.1,16.2,16.3,16.4,16.5,16.6,17,17.1,17.2,17.3,17.4,17.5,17.6,18,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18,18.1, Android Browser 146  plugin/no-unsupported-browser-features
>>   17:1  ⚠  Unexpected browser feature "css-paged-media" is not supported by Safari 12-15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16,16.1,16.2,16.3,16.4,16.5,16.6,17,17.1,17.2,17.3,17.4,17.5,17.6,18,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18,18.1, Android Browser 146  plugin/no-unsupported-browser-features
>>   78:1  ⚠  Unexpected browser feature "prefers-color-scheme" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5                                                                                                                                                                                                                                                                                                                          plugin/no-unsupported-browser-features
>> 
>> ⚠ 11 problems (0 errors, 11 warnings)

⚠ 11 warnings

>> Linted 12 files without errors

Running "banana:ProofreadPage" (banana) task
>> 2 message directories checked.

Done.

--- end ---
{}
{}
{}
{}
{}
{}
{}
{"1115382": {"source": 1115382, "name": "picomatch", "dependency": "picomatch", "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers", "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<2.3.2"}, "1115384": {"source": 1115384, "name": "picomatch", "dependency": "picomatch", "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers", "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=4.0.0 <4.0.4"}, "1115394": {"source": 1115394, "name": "picomatch", "dependency": "picomatch", "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching", "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": "<2.3.2"}, "1115396": {"source": 1115396, "name": "picomatch", "dependency": "picomatch", "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching", "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": ">=4.0.0 <4.0.4"}}
Upgrading n:picomatch from 2.3.1, 4.0.3 -> 2.3.2, 4.0.4
{"1115369": {"source": 1115369, "name": "yaml", "dependency": "yaml", "title": "yaml is vulnerable to Stack Overflow via deeply nested YAML collections", "url": "https://github.com/advisories/GHSA-48c2-rrv3-qjmp", "severity": "moderate", "cwe": ["CWE-674"], "cvss": {"score": 4.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=2.0.0 <2.8.3"}}
Upgrading n:yaml from 2.8.1 -> 2.8.3
{}
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json

--- end ---
build: Updating npm dependencies

* picomatch: 2.3.1, 4.0.3 → 2.3.2, 4.0.4
  * https://github.com/advisories/GHSA-3v7f-55p6-f55p
  * https://github.com/advisories/GHSA-c2c7-rcm5-vvqj
* yaml: 2.8.1 → 2.8.3
  * https://github.com/advisories/GHSA-48c2-rrv3-qjmp

$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmpwer768hh
--- stdout ---
[master 51d92d7] build: Updating npm dependencies
 1 file changed, 454 insertions(+), 340 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From 51d92d7167a1f0256fa5e25f80df6e18231007c7 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Thu, 26 Mar 2026 21:39:34 +0000
Subject: [PATCH] build: Updating npm dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* picomatch: 2.3.1, 4.0.3 → 2.3.2, 4.0.4
  * https://github.com/advisories/GHSA-3v7f-55p6-f55p
  * https://github.com/advisories/GHSA-c2c7-rcm5-vvqj
* yaml: 2.8.1 → 2.8.3
  * https://github.com/advisories/GHSA-48c2-rrv3-qjmp

Change-Id: I14db2a880684a22a1b93cd049a071d69933fd8a7
---
 package-lock.json | 794 ++++++++++++++++++++++++++--------------------
 1 file changed, 454 insertions(+), 340 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 87a64e9..51e151f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -603,21 +603,22 @@
 			}
 		},
 		"node_modules/@eslint/js": {
-			"version": "8.57.0",
-			"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
-			"integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
+			"version": "8.57.1",
+			"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+			"integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
 			"dev": true,
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
 			}
 		},
 		"node_modules/@humanwhocodes/config-array": {
-			"version": "0.11.14",
-			"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
-			"integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+			"version": "0.13.0",
+			"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+			"integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
+			"deprecated": "Use @eslint/config-array instead",
 			"dev": true,
 			"dependencies": {
-				"@humanwhocodes/object-schema": "^2.0.2",
+				"@humanwhocodes/object-schema": "^2.0.3",
 				"debug": "^4.3.1",
 				"minimatch": "^3.0.5"
 			},
@@ -639,9 +640,10 @@
 			}
 		},
 		"node_modules/@humanwhocodes/object-schema": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
-			"integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+			"version": "2.0.3",
+			"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+			"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+			"deprecated": "Use @eslint/object-schema instead",
 			"dev": true
 		},
 		"node_modules/@inquirer/ansi": {
@@ -1105,30 +1107,30 @@
 			}
 		},
 		"node_modules/@jest/diff-sequences": {
-			"version": "30.0.1",
-			"resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz",
-			"integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz",
+			"integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==",
 			"dev": true,
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/@jest/expect-utils": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.0.5.tgz",
-			"integrity": "sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.3.0.tgz",
+			"integrity": "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==",
 			"dev": true,
 			"dependencies": {
-				"@jest/get-type": "30.0.1"
+				"@jest/get-type": "30.1.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/@jest/get-type": {
-			"version": "30.0.1",
-			"resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.0.1.tgz",
-			"integrity": "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==",
+			"version": "30.1.0",
+			"resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz",
+			"integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==",
 			"dev": true,
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -1160,9 +1162,9 @@
 			}
 		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz",
+			"integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==",
 			"dev": true,
 			"dependencies": {
 				"@jest/pattern": "30.0.1",
@@ -1178,9 +1180,9 @@
 			}
 		},
 		"node_modules/@jridgewell/sourcemap-codec": {
-			"version": "1.5.0",
-			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
-			"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+			"version": "1.5.5",
+			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+			"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
 			"dev": true
 		},
 		"node_modules/@mdn/browser-compat-data": {
@@ -1322,9 +1324,9 @@
 			"dev": true
 		},
 		"node_modules/@sinclair/typebox": {
-			"version": "0.34.38",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.38.tgz",
-			"integrity": "sha512-HpkxMmc2XmZKhvaKIZZThlHmx1L0I/V1hWK1NubtlFnr6ZqdiOpV72TKudZUNQjZNsyDBay72qFEhEvb+bcwcA==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"node_modules/@sindresorhus/base62": {
@@ -1400,9 +1402,9 @@
 			}
 		},
 		"node_modules/@stylistic/eslint-plugin/node_modules/picomatch": {
-			"version": "4.0.3",
-			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
-			"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+			"version": "4.0.4",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+			"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
 			"dev": true,
 			"engines": {
 				"node": ">=12"
@@ -1548,9 +1550,9 @@
 			}
 		},
 		"node_modules/@types/yargs": {
-			"version": "17.0.33",
-			"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
-			"integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+			"version": "17.0.35",
+			"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz",
+			"integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==",
 			"dev": true,
 			"dependencies": {
 				"@types/yargs-parser": "*"
@@ -1861,6 +1863,41 @@
 				"url": "https://opencollective.com/vitest"
 			}
 		},
+		"node_modules/@vitest/utils": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.2.tgz",
+			"integrity": "sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==",
+			"dev": true,
+			"dependencies": {
+				"@vitest/pretty-format": "4.1.2",
+				"convert-source-map": "^2.0.0",
+				"tinyrainbow": "^3.1.0"
+			},
+			"funding": {
+				"url": "https://opencollective.com/vitest"
+			}
+		},
+		"node_modules/@vitest/utils/node_modules/@vitest/pretty-format": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz",
+			"integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==",
+			"dev": true,
+			"dependencies": {
+				"tinyrainbow": "^3.1.0"
+			},
+			"funding": {
+				"url": "https://opencollective.com/vitest"
+			}
+		},
+		"node_modules/@vitest/utils/node_modules/tinyrainbow": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz",
+			"integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==",
+			"dev": true,
+			"engines": {
+				"node": ">=14.0.0"
+			}
+		},
 		"node_modules/@wdio/cli": {
 			"version": "9.23.2",
 			"resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-9.23.2.tgz",
@@ -3049,12 +3086,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.11",
+			"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.11.tgz",
+			"integrity": "sha512-DAKrHphkJyiGuau/cFieRYhcTFeK/lBuD++C7cZ6KZHbMhBrisoi+EvhQ5RZrIfV5qwsW8kgQ07JIC+MDJRAhg==",
 			"dev": true,
 			"bin": {
-				"baseline-browser-mapping": "dist/cli.js"
+				"baseline-browser-mapping": "dist/cli.cjs"
+			},
+			"engines": {
+				"node": ">=6.0.0"
 			}
 		},
 		"node_modules/basic-ftp": {
@@ -3110,9 +3150,9 @@
 			"dev": true
 		},
 		"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": [
 				{
@@ -3129,11 +3169,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"
@@ -3215,9 +3255,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.30001781",
+			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz",
+			"integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==",
 			"dev": true,
 			"funding": [
 				{
@@ -3546,6 +3586,12 @@
 			"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
 			"dev": true
 		},
+		"node_modules/convert-source-map": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+			"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+			"dev": true
+		},
 		"node_modules/core-js-compat": {
 			"version": "3.46.0",
 			"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz",
@@ -4139,6 +4185,15 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
+		"node_modules/deep-eql": {
+			"version": "5.0.2",
+			"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+			"integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
+			"dev": true,
+			"engines": {
+				"node": ">=6"
+			}
+		},
 		"node_modules/deep-is": {
 			"version": "0.1.4",
 			"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -4233,18 +4288,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,
 			"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": {
@@ -4484,9 +4539,9 @@
 			}
 		},
 		"node_modules/electron-to-chromium": {
-			"version": "1.5.253",
-			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.253.tgz",
-			"integrity": "sha512-O0tpQ/35rrgdiGQ0/OFWhy1itmd9A6TY9uQzlqj3hKSu/aYpe7UIn5d7CU2N9myH6biZiWF3VMZVuup8pw5U9w==",
+			"version": "1.5.325",
+			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.325.tgz",
+			"integrity": "sha512-PwfIw7WQSt3xX7yOf5OE/unLzsK9CaN2f/FvV3WjPR1Knoc1T9vePRVV4W1EM301JzzysK51K7FNKcusCr0zYA==",
 			"dev": true
 		},
 		"node_modules/emoji-regex": {
@@ -4653,16 +4708,17 @@
 			}
 		},
 		"node_modules/eslint": {
-			"version": "8.57.0",
-			"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
-			"integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+			"version": "8.57.1",
+			"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+			"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
+			"deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
 			"dev": true,
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.2.0",
 				"@eslint-community/regexpp": "^4.6.1",
 				"@eslint/eslintrc": "^2.1.4",
-				"@eslint/js": "8.57.0",
-				"@humanwhocodes/config-array": "^0.11.14",
+				"@eslint/js": "8.57.1",
+				"@humanwhocodes/config-array": "^0.13.0",
 				"@humanwhocodes/module-importer": "^1.0.1",
 				"@nodelib/fs.walk": "^1.2.8",
 				"@ungap/structured-clone": "^1.2.0",
@@ -4809,9 +4865,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-jest": {
-			"version": "29.1.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.1.0.tgz",
-			"integrity": "sha512-LabxXbASXVjguqL+kBHTPMf3gUeSqwH4fsrEyHTY/MCs42I/p9+ctg09SJpYiD8eGaIsP6GwYr5xW6xWS9XgZg==",
+			"version": "29.15.1",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.15.1.tgz",
+			"integrity": "sha512-6BjyErCQauz3zfJvzLw/kAez2lf4LEpbHLvWBfEcG4EI0ZiRSwjoH2uZulMouU8kRkBH+S0rhqn11IhTvxKgKw==",
 			"dev": true,
 			"dependencies": {
 				"@typescript-eslint/utils": "^8.0.0"
@@ -4821,8 +4877,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 <7.0.0"
 			},
 			"peerDependenciesMeta": {
 				"@typescript-eslint/eslint-plugin": {
@@ -4830,6 +4887,9 @@
 				},
 				"jest": {
 					"optional": true
+				},
+				"typescript": {
+					"optional": true
 				}
 			}
 		},
@@ -5387,35 +5447,35 @@
 			}
 		},
 		"node_modules/expect": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/expect/-/expect-30.0.5.tgz",
-			"integrity": "sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz",
+			"integrity": "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==",
 			"dev": true,
 			"dependencies": {
-				"@jest/expect-utils": "30.0.5",
-				"@jest/get-type": "30.0.1",
-				"jest-matcher-utils": "30.0.5",
-				"jest-message-util": "30.0.5",
-				"jest-mock": "30.0.5",
-				"jest-util": "30.0.5"
+				"@jest/expect-utils": "30.3.0",
+				"@jest/get-type": "30.1.0",
+				"jest-matcher-utils": "30.3.0",
+				"jest-message-util": "30.3.0",
+				"jest-mock": "30.3.0",
+				"jest-util": "30.3.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/expect-webdriverio": {
-			"version": "5.4.1",
-			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.4.1.tgz",
-			"integrity": "sha512-jH4qhahRNGPWbCCVcCpLDl/kvFJ1eOzVnrd1K/sG1RhKr6bZsgZQUiOE3bafVqSOfKP+ay8bM/VagP4+XsO9Xw==",
+			"version": "5.6.5",
+			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.6.5.tgz",
+			"integrity": "sha512-5ot+Apo0bEvMD/nqzWymQpgyWnOdu0kVpmahLx5T7NzUc6RyifucZ24Gsfr6F6C8yRGBhmoFh7ZeY+W9kteEBQ==",
 			"dev": true,
 			"dependencies": {
-				"@vitest/snapshot": "^3.2.4",
-				"expect": "^30.0.0",
-				"jest-matcher-utils": "^30.0.0",
-				"lodash.isequal": "^4.5.0"
+				"@vitest/snapshot": "^4.0.16",
+				"deep-eql": "^5.0.2",
+				"expect": "^30.2.0",
+				"jest-matcher-utils": "^30.2.0"
 			},
 			"engines": {
-				"node": ">=18 || >=20 || >=22"
+				"node": ">=20"
 			},
 			"peerDependencies": {
 				"@wdio/globals": "^9.0.0",
@@ -5435,25 +5495,26 @@
 			}
 		},
 		"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.1.2",
+			"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz",
+			"integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==",
 			"dev": true,
 			"dependencies": {
-				"tinyrainbow": "^2.0.0"
+				"tinyrainbow": "^3.1.0"
 			},
 			"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.1.2",
+			"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.2.tgz",
+			"integrity": "sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==",
 			"dev": true,
 			"dependencies": {
-				"@vitest/pretty-format": "3.2.4",
-				"magic-string": "^0.30.17",
+				"@vitest/pretty-format": "4.1.2",
+				"@vitest/utils": "4.1.2",
+				"magic-string": "^0.30.21",
 				"pathe": "^2.0.3"
 			},
 			"funding": {
@@ -5467,9 +5528,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.1.0",
+			"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz",
+			"integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==",
 			"dev": true,
 			"engines": {
 				"node": ">=14.0.0"
@@ -5703,9 +5764,9 @@
 			"dev": true
 		},
 		"node_modules/filelist": {
-			"version": "1.0.4",
-			"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
-			"integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+			"version": "1.0.6",
+			"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz",
+			"integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==",
 			"dev": true,
 			"dependencies": {
 				"minimatch": "^5.0.1"
@@ -5810,12 +5871,13 @@
 			}
 		},
 		"node_modules/flat-cache": {
-			"version": "3.0.4",
-			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
-			"integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+			"version": "3.2.0",
+			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+			"integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
 			"dev": true,
 			"dependencies": {
-				"flatted": "^3.1.0",
+				"flatted": "^3.2.9",
+				"keyv": "^4.5.3",
 				"rimraf": "^3.0.2"
 			},
 			"engines": {
@@ -6940,48 +7002,48 @@
 			}
 		},
 		"node_modules/jest-diff": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.0.5.tgz",
-			"integrity": "sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz",
+			"integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==",
 			"dev": true,
 			"dependencies": {
-				"@jest/diff-sequences": "30.0.1",
-				"@jest/get-type": "30.0.1",
+				"@jest/diff-sequences": "30.3.0",
+				"@jest/get-type": "30.1.0",
 				"chalk": "^4.1.2",
-				"pretty-format": "30.0.5"
+				"pretty-format": "30.3.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/jest-matcher-utils": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.0.5.tgz",
-			"integrity": "sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz",
+			"integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==",
 			"dev": true,
 			"dependencies": {
-				"@jest/get-type": "30.0.1",
+				"@jest/get-type": "30.1.0",
 				"chalk": "^4.1.2",
-				"jest-diff": "30.0.5",
-				"pretty-format": "30.0.5"
+				"jest-diff": "30.3.0",
+				"pretty-format": "30.3.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/jest-message-util": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.0.5.tgz",
-			"integrity": "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz",
+			"integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==",
 			"dev": true,
 			"dependencies": {
 				"@babel/code-frame": "^7.27.1",
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.3.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",
+				"picomatch": "^4.0.3",
+				"pretty-format": "30.3.0",
 				"slash": "^3.0.0",
 				"stack-utils": "^2.0.6"
 			},
@@ -6989,15 +7051,27 @@
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
+		"node_modules/jest-message-util/node_modules/picomatch": {
+			"version": "4.0.4",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+			"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/jonschlinkert"
+			}
+		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz",
+			"integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==",
 			"dev": true,
 			"dependencies": {
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.3.0",
 				"@types/node": "*",
-				"jest-util": "30.0.5"
+				"jest-util": "30.3.0"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -7013,26 +7087,26 @@
 			}
 		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz",
+			"integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==",
 			"dev": true,
 			"dependencies": {
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.3.0",
 				"@types/node": "*",
 				"chalk": "^4.1.2",
 				"ci-info": "^4.2.0",
 				"graceful-fs": "^4.2.11",
-				"picomatch": "^4.0.2"
+				"picomatch": "^4.0.3"
 			},
 			"engines": {
 				"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
 			}
 		},
 		"node_modules/jest-util/node_modules/picomatch": {
-			"version": "4.0.3",
-			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
-			"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+			"version": "4.0.4",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+			"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
 			"dev": true,
 			"engines": {
 				"node": ">=12"
@@ -7360,13 +7434,6 @@
 			"integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
 			"dev": true
 		},
-		"node_modules/lodash.isequal": {
-			"version": "4.5.0",
-			"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
-			"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
-			"deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.",
-			"dev": true
-		},
 		"node_modules/lodash.memoize": {
 			"version": "4.1.2",
 			"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
@@ -7448,12 +7515,12 @@
 			}
 		},
 		"node_modules/magic-string": {
-			"version": "0.30.17",
-			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
-			"integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
+			"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.0"
+				"@jridgewell/sourcemap-codec": "^1.5.5"
 			}
 		},
 		"node_modules/make-dir": {
@@ -7722,9 +7789,9 @@
 			}
 		},
 		"node_modules/nanoid": {
-			"version": "3.3.8",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
-			"integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
+			"version": "3.3.11",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+			"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
 			"dev": true,
 			"funding": [
 				{
@@ -8335,9 +8402,9 @@
 			"dev": true
 		},
 		"node_modules/picomatch": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
-			"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+			"integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
 			"dev": true,
 			"engines": {
 				"node": ">=8.6"
@@ -8356,9 +8423,9 @@
 			}
 		},
 		"node_modules/postcss": {
-			"version": "8.4.49",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
-			"integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
+			"version": "8.5.8",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
+			"integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
 			"dev": true,
 			"funding": [
 				{
@@ -8375,7 +8442,7 @@
 				}
 			],
 			"dependencies": {
-				"nanoid": "^3.3.7",
+				"nanoid": "^3.3.11",
 				"picocolors": "^1.1.1",
 				"source-map-js": "^1.2.1"
 			},
@@ -8467,9 +8534,9 @@
 			}
 		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz",
+			"integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==",
 			"dev": true,
 			"dependencies": {
 				"@jest/schemas": "30.0.5",
@@ -9283,12 +9350,12 @@
 			}
 		},
 		"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,
 			"engines": {
-				"node": ">= 8"
+				"node": ">= 12"
 			}
 		},
 		"node_modules/source-map-js": {
@@ -9999,9 +10066,9 @@
 			}
 		},
 		"node_modules/ts-declaration-location/node_modules/picomatch": {
-			"version": "4.0.3",
-			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
-			"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+			"version": "4.0.4",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+			"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
 			"dev": true,
 			"engines": {
 				"node": ">=12"
@@ -10133,9 +10200,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": [
 				{
@@ -10503,15 +10570,18 @@
 			}
 		},
 		"node_modules/yaml": {
-			"version": "2.8.1",
-			"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
-			"integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz",
+			"integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==",
 			"dev": true,
 			"bin": {
 				"yaml": "bin.mjs"
 			},
 			"engines": {
 				"node": ">= 14.6"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/eemeli"
 			}
 		},
 		"node_modules/yaml-eslint-parser": {
@@ -10935,18 +11005,18 @@
 			}
 		},
 		"@eslint/js": {
-			"version": "8.57.0",
-			"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
-			"integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
+			"version": "8.57.1",
+			"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+			"integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
 			"dev": true
 		},
 		"@humanwhocodes/config-array": {
-			"version": "0.11.14",
-			"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
-			"integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+			"version": "0.13.0",
+			"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+			"integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
 			"dev": true,
 			"requires": {
-				"@humanwhocodes/object-schema": "^2.0.2",
+				"@humanwhocodes/object-schema": "^2.0.3",
 				"debug": "^4.3.1",
 				"minimatch": "^3.0.5"
 			}
@@ -10958,9 +11028,9 @@
 			"dev": true
 		},
 		"@humanwhocodes/object-schema": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
-			"integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+			"version": "2.0.3",
+			"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+			"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
 			"dev": true
 		},
 		"@inquirer/ansi": {
@@ -11228,24 +11298,24 @@
 			}
 		},
 		"@jest/diff-sequences": {
-			"version": "30.0.1",
-			"resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz",
-			"integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz",
+			"integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==",
 			"dev": true
 		},
 		"@jest/expect-utils": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.0.5.tgz",
-			"integrity": "sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.3.0.tgz",
+			"integrity": "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==",
 			"dev": true,
 			"requires": {
-				"@jest/get-type": "30.0.1"
+				"@jest/get-type": "30.1.0"
 			}
 		},
 		"@jest/get-type": {
-			"version": "30.0.1",
-			"resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.0.1.tgz",
-			"integrity": "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==",
+			"version": "30.1.0",
+			"resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz",
+			"integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==",
 			"dev": true
 		},
 		"@jest/pattern": {
@@ -11268,9 +11338,9 @@
 			}
 		},
 		"@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.3.0",
+			"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz",
+			"integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==",
 			"dev": true,
 			"requires": {
 				"@jest/pattern": "30.0.1",
@@ -11283,9 +11353,9 @@
 			}
 		},
 		"@jridgewell/sourcemap-codec": {
-			"version": "1.5.0",
-			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
-			"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+			"version": "1.5.5",
+			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+			"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
 			"dev": true
 		},
 		"@mdn/browser-compat-data": {
@@ -11392,9 +11462,9 @@
 			"dev": true
 		},
 		"@sinclair/typebox": {
-			"version": "0.34.38",
-			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.38.tgz",
-			"integrity": "sha512-HpkxMmc2XmZKhvaKIZZThlHmx1L0I/V1hWK1NubtlFnr6ZqdiOpV72TKudZUNQjZNsyDBay72qFEhEvb+bcwcA==",
+			"version": "0.34.48",
+			"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+			"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
 			"dev": true
 		},
 		"@sindresorhus/base62": {
@@ -11440,9 +11510,9 @@
 					}
 				},
 				"picomatch": {
-					"version": "4.0.3",
-					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
-					"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+					"version": "4.0.4",
+					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+					"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
 					"dev": true
 				}
 			}
@@ -11571,9 +11641,9 @@
 			}
 		},
 		"@types/yargs": {
-			"version": "17.0.33",
-			"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
-			"integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+			"version": "17.0.35",
+			"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz",
+			"integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==",
 			"dev": true,
 			"requires": {
 				"@types/yargs-parser": "*"
@@ -11774,6 +11844,34 @@
 				"pathe": "^1.1.2"
 			}
 		},
+		"@vitest/utils": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.2.tgz",
+			"integrity": "sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==",
+			"dev": true,
+			"requires": {
+				"@vitest/pretty-format": "4.1.2",
+				"convert-source-map": "^2.0.0",
+				"tinyrainbow": "^3.1.0"
+			},
+			"dependencies": {
+				"@vitest/pretty-format": {
+					"version": "4.1.2",
+					"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz",
+					"integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==",
+					"dev": true,
+					"requires": {
+						"tinyrainbow": "^3.1.0"
+					}
+				},
+				"tinyrainbow": {
+					"version": "3.1.0",
+					"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz",
+					"integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==",
+					"dev": true
+				}
+			}
+		},
 		"@wdio/cli": {
 			"version": "9.23.2",
 			"resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-9.23.2.tgz",
@@ -12613,9 +12711,9 @@
 			"dev": true
 		},
 		"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.11",
+			"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.11.tgz",
+			"integrity": "sha512-DAKrHphkJyiGuau/cFieRYhcTFeK/lBuD++C7cZ6KZHbMhBrisoi+EvhQ5RZrIfV5qwsW8kgQ07JIC+MDJRAhg==",
 			"dev": true
 		},
 		"basic-ftp": {
@@ -12662,16 +12760,16 @@
 			"dev": true
 		},
 		"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,
 			"requires": {
-				"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"
 			}
 		},
 		"browserslist-config-wikimedia": {
@@ -12715,9 +12813,9 @@
 			"dev": true
 		},
 		"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.30001781",
+			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz",
+			"integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==",
 			"dev": true
 		},
 		"chalk": {
@@ -12944,6 +13042,12 @@
 			"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
 			"dev": true
 		},
+		"convert-source-map": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+			"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+			"dev": true
+		},
 		"core-js-compat": {
 			"version": "3.46.0",
 			"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz",
@@ -13365,6 +13469,12 @@
 			"integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
 			"dev": true
 		},
+		"deep-eql": {
+			"version": "5.0.2",
+			"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+			"integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
+			"dev": true
+		},
 		"deep-is": {
 			"version": "0.1.4",
 			"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -13435,18 +13545,18 @@
 			}
 		},
 		"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,
 			"requires": {
-				"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"
 			},
 			"dependencies": {
@@ -13615,9 +13725,9 @@
 			}
 		},
 		"electron-to-chromium": {
-			"version": "1.5.253",
-			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.253.tgz",
-			"integrity": "sha512-O0tpQ/35rrgdiGQ0/OFWhy1itmd9A6TY9uQzlqj3hKSu/aYpe7UIn5d7CU2N9myH6biZiWF3VMZVuup8pw5U9w==",
+			"version": "1.5.325",
+			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.325.tgz",
+			"integrity": "sha512-PwfIw7WQSt3xX7yOf5OE/unLzsK9CaN2f/FvV3WjPR1Knoc1T9vePRVV4W1EM301JzzysK51K7FNKcusCr0zYA==",
 			"dev": true
 		},
 		"emoji-regex": {
@@ -13743,16 +13853,16 @@
 			}
 		},
 		"eslint": {
-			"version": "8.57.0",
-			"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
-			"integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+			"version": "8.57.1",
+			"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+			"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
 			"dev": true,
 			"requires": {
 				"@eslint-community/eslint-utils": "^4.2.0",
 				"@eslint-community/regexpp": "^4.6.1",
 				"@eslint/eslintrc": "^2.1.4",
-				"@eslint/js": "8.57.0",
-				"@humanwhocodes/config-array": "^0.11.14",
+				"@eslint/js": "8.57.1",
+				"@humanwhocodes/config-array": "^0.13.0",
 				"@humanwhocodes/module-importer": "^1.0.1",
 				"@nodelib/fs.walk": "^1.2.8",
 				"@ungap/structured-clone": "^1.2.0",
@@ -13872,9 +13982,9 @@
 			}
 		},
 		"eslint-plugin-jest": {
-			"version": "29.1.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.1.0.tgz",
-			"integrity": "sha512-LabxXbASXVjguqL+kBHTPMf3gUeSqwH4fsrEyHTY/MCs42I/p9+ctg09SJpYiD8eGaIsP6GwYr5xW6xWS9XgZg==",
+			"version": "29.15.1",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.15.1.tgz",
+			"integrity": "sha512-6BjyErCQauz3zfJvzLw/kAez2lf4LEpbHLvWBfEcG4EI0ZiRSwjoH2uZulMouU8kRkBH+S0rhqn11IhTvxKgKw==",
 			"dev": true,
 			"requires": {
 				"@typescript-eslint/utils": "^8.0.0"
@@ -14248,48 +14358,49 @@
 			}
 		},
 		"expect": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/expect/-/expect-30.0.5.tgz",
-			"integrity": "sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz",
+			"integrity": "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==",
 			"dev": true,
 			"requires": {
-				"@jest/expect-utils": "30.0.5",
-				"@jest/get-type": "30.0.1",
-				"jest-matcher-utils": "30.0.5",
-				"jest-message-util": "30.0.5",
-				"jest-mock": "30.0.5",
-				"jest-util": "30.0.5"
+				"@jest/expect-utils": "30.3.0",
+				"@jest/get-type": "30.1.0",
+				"jest-matcher-utils": "30.3.0",
+				"jest-message-util": "30.3.0",
+				"jest-mock": "30.3.0",
+				"jest-util": "30.3.0"
 			}
 		},
 		"expect-webdriverio": {
-			"version": "5.4.1",
-			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.4.1.tgz",
-			"integrity": "sha512-jH4qhahRNGPWbCCVcCpLDl/kvFJ1eOzVnrd1K/sG1RhKr6bZsgZQUiOE3bafVqSOfKP+ay8bM/VagP4+XsO9Xw==",
+			"version": "5.6.5",
+			"resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.6.5.tgz",
+			"integrity": "sha512-5ot+Apo0bEvMD/nqzWymQpgyWnOdu0kVpmahLx5T7NzUc6RyifucZ24Gsfr6F6C8yRGBhmoFh7ZeY+W9kteEBQ==",
 			"dev": true,
 			"requires": {
-				"@vitest/snapshot": "^3.2.4",
-				"expect": "^30.0.0",
-				"jest-matcher-utils": "^30.0.0",
-				"lodash.isequal": "^4.5.0"
+				"@vitest/snapshot": "^4.0.16",
+				"deep-eql": "^5.0.2",
+				"expect": "^30.2.0",
+				"jest-matcher-utils": "^30.2.0"
 			},
 			"dependencies": {
 				"@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.1.2",
+					"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz",
+					"integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==",
 					"dev": true,
 					"requires": {
-						"tinyrainbow": "^2.0.0"
+						"tinyrainbow": "^3.1.0"
 					}
 				},
 				"@vitest/snapshot": {
-					"version": "3.2.4",
-					"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz",
-					"integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==",
+					"version": "4.1.2",
+					"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.2.tgz",
+					"integrity": "sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==",
 					"dev": true,
 					"requires": {
-						"@vitest/pretty-format": "3.2.4",
-						"magic-string": "^0.30.17",
+						"@vitest/pretty-format": "4.1.2",
+						"@vitest/utils": "4.1.2",
+						"magic-string": "^0.30.21",
 						"pathe": "^2.0.3"
 					}
 				},
@@ -14300,9 +14411,9 @@
 					"dev": true
 				},
 				"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.1.0",
+					"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz",
+					"integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==",
 					"dev": true
 				}
 			}
@@ -14466,9 +14577,9 @@
 			"dev": true
 		},
 		"filelist": {
-			"version": "1.0.4",
-			"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
-			"integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+			"version": "1.0.6",
+			"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz",
+			"integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==",
 			"dev": true,
 			"requires": {
 				"minimatch": "^5.0.1"
@@ -14551,12 +14662,13 @@
 			"dev": true
 		},
 		"flat-cache": {
-			"version": "3.0.4",
-			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
-			"integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+			"version": "3.2.0",
+			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+			"integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
 			"dev": true,
 			"requires": {
-				"flatted": "^3.1.0",
+				"flatted": "^3.2.9",
+				"keyv": "^4.5.3",
 				"rimraf": "^3.0.2"
 			}
 		},
@@ -15364,55 +15476,63 @@
 			}
 		},
 		"jest-diff": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.0.5.tgz",
-			"integrity": "sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz",
+			"integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==",
 			"dev": true,
 			"requires": {
-				"@jest/diff-sequences": "30.0.1",
-				"@jest/get-type": "30.0.1",
+				"@jest/diff-sequences": "30.3.0",
+				"@jest/get-type": "30.1.0",
 				"chalk": "^4.1.2",
-				"pretty-format": "30.0.5"
+				"pretty-format": "30.3.0"
 			}
 		},
 		"jest-matcher-utils": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.0.5.tgz",
-			"integrity": "sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz",
+			"integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==",
 			"dev": true,
 			"requires": {
-				"@jest/get-type": "30.0.1",
+				"@jest/get-type": "30.1.0",
 				"chalk": "^4.1.2",
-				"jest-diff": "30.0.5",
-				"pretty-format": "30.0.5"
+				"jest-diff": "30.3.0",
+				"pretty-format": "30.3.0"
 			}
 		},
 		"jest-message-util": {
-			"version": "30.0.5",
-			"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.0.5.tgz",
-			"integrity": "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA==",
+			"version": "30.3.0",
+			"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz",
+			"integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==",
 			"dev": true,
 			"requires": {
 				"@babel/code-frame": "^7.27.1",
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.3.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",
+				"picomatch": "^4.0.3",
+				"pretty-format": "30.3.0",
 				"slash": "^3.0.0",
 				"stack-utils": "^2.0.6"
+			},
+			"dependencies": {
+				"picomatch": {
+					"version": "4.0.4",
+					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+					"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+					"dev": true
+				}
 			}
 		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz",
+			"integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==",
 			"dev": true,
 			"requires": {
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.3.0",
 				"@types/node": "*",
-				"jest-util": "30.0.5"
+				"jest-util": "30.3.0"
 			}
 		},
 		"jest-regex-util": {
@@ -15422,23 +15542,23 @@
 			"dev": true
 		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz",
+			"integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==",
 			"dev": true,
 			"requires": {
-				"@jest/types": "30.0.5",
+				"@jest/types": "30.3.0",
 				"@types/node": "*",
 				"chalk": "^4.1.2",
 				"ci-info": "^4.2.0",
 				"graceful-fs": "^4.2.11",
-				"picomatch": "^4.0.2"
+				"picomatch": "^4.0.3"
 			},
 			"dependencies": {
 				"picomatch": {
-					"version": "4.0.3",
-					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
-					"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+					"version": "4.0.4",
+					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+					"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
 					"dev": true
 				}
 			}
@@ -15718,12 +15838,6 @@
 			"integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
 			"dev": true
 		},
-		"lodash.isequal": {
-			"version": "4.5.0",
-			"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
-			"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
-			"dev": true
-		},
 		"lodash.memoize": {
 			"version": "4.1.2",
 			"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
@@ -15789,12 +15903,12 @@
 			"dev": true
 		},
 		"magic-string": {
-			"version": "0.30.17",
-			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
-			"integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
+			"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,
 			"requires": {
-				"@jridgewell/sourcemap-codec": "^1.5.0"
+				"@jridgewell/sourcemap-codec": "^1.5.5"
 			}
 		},
 		"make-dir": {
@@ -15992,9 +16106,9 @@
 			"dev": true
 		},
 		"nanoid": {
-			"version": "3.3.8",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
-			"integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
+			"version": "3.3.11",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+			"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
 			"dev": true
 		},
 		"natural-compare": {
@@ -16436,9 +16550,9 @@
 			"dev": true
 		},
 		"picomatch": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
-			"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+			"integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
 			"dev": true
 		},
 		"pluralize": {
@@ -16448,12 +16562,12 @@
 			"dev": true
 		},
 		"postcss": {
-			"version": "8.4.49",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
-			"integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
+			"version": "8.5.8",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
+			"integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
 			"dev": true,
 			"requires": {
-				"nanoid": "^3.3.7",
+				"nanoid": "^3.3.11",
 				"picocolors": "^1.1.1",
 				"source-map-js": "^1.2.1"
 			}
@@ -16521,9 +16635,9 @@
 			"dev": true
 		},
 		"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.3.0",
+			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz",
+			"integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==",
 			"dev": true,
 			"requires": {
 				"@jest/schemas": "30.0.5",
@@ -17109,9 +17223,9 @@
 			}
 		},
 		"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
 		},
 		"source-map-js": {
@@ -17597,9 +17711,9 @@
 			},
 			"dependencies": {
 				"picomatch": {
-					"version": "4.0.3",
-					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
-					"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+					"version": "4.0.4",
+					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+					"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
 					"dev": true
 				}
 			}
@@ -17684,9 +17798,9 @@
 			"dev": true
 		},
 		"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,
 			"requires": {
 				"escalade": "^3.2.0",
@@ -17941,9 +18055,9 @@
 			"dev": true
 		},
 		"yaml": {
-			"version": "2.8.1",
-			"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
-			"integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz",
+			"integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==",
 			"dev": true
 		},
 		"yaml-eslint-parser": {
-- 
2.47.3


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