mediawiki/extensions/Wikibase: main (log #1803065)

sourcepatches

This run took 1249 seconds.

From 0efbe6f3f92ef2e25672d1ccb54456c54e191829 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sat, 15 Mar 2025 04:24:34 +0000
Subject: [PATCH] build: Updating dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

composer:
* mediawiki/mediawiki-phan-config: 0.15.0 → 0.15.1

npm:
* stylelint-config-wikimedia: 0.17.2 → 0.18.0
* @babel/helpers: 7.23.2 → 7.26.10
  * https://github.com/advisories/GHSA-968p-4wvh-cqc8
* mocha: 10.2.0, ^10.2.0 → 10.8.2, ^10.2.0
  * https://github.com/advisories/GHSA-76p7-773f-r4q5
  * https://github.com/advisories/GHSA-mwcw-c2x4-8c55
* nanoid: 3.3.3, 3.3.9 → 3.3.9
  * https://github.com/advisories/GHSA-mwcw-c2x4-8c55
* serialize-javascript: 6.0.0 → 6.0.2
  * https://github.com/advisories/GHSA-76p7-773f-r4q5

Additional changes:
* Dropped default excluded folder(s) from .phpcs.xml (T274684).
* Enable stylelint caching.

Change-Id: Iee13ca83ebca7f16f5c930a3f115bdd97ab161d6
---
 .gitignore        |    1 +
 .phpcs.xml        |    1 -
 Gruntfile.js      |    3 +
 composer.json     |    2 +-
 package-lock.json | 2521 ++++++++++++++++++---------------------------
 package.json      |    2 +-
 6 files changed, 1011 insertions(+), 1519 deletions(-)

diff --git a/.gitignore b/.gitignore
index fc19a5f..63eb746 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,3 +56,4 @@ sftp-config.json
 # federated properties VM
 build/federated-properties/vagrant/.vagrant
 .vscode
+/.stylelintcache
diff --git a/.phpcs.xml b/.phpcs.xml
index 94c67e8..c0af976 100644
--- a/.phpcs.xml
+++ b/.phpcs.xml
@@ -115,5 +115,4 @@
 	<exclude-pattern>.phan/stubs</exclude-pattern>
 	<exclude-pattern>repo/tests/browser</exclude-pattern>
 	<exclude-pattern type="relative">^extensions/</exclude-pattern>
-	<exclude-pattern>node_modules/</exclude-pattern>
 </ruleset>
diff --git a/Gruntfile.js b/Gruntfile.js
index 72c8147..240db4f 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -15,6 +15,9 @@ module.exports = function ( grunt ) {
 			all: [ '.' ]
 		},
 		stylelint: {
+			options: {
+				cache: true
+			},
 			all: [
 				'**/*.{css,less}',
 				'!view/resources/jquery/ui/**',
diff --git a/composer.json b/composer.json
index faa1ae3..633b2c3 100644
--- a/composer.json
+++ b/composer.json
@@ -43,7 +43,7 @@
 	},
 	"require-dev": {
 		"mediawiki/mediawiki-codesniffer": "46.0.0",
-		"mediawiki/mediawiki-phan-config": "0.15.0",
+		"mediawiki/mediawiki-phan-config": "0.15.1",
 		"mediawiki/minus-x": "1.1.3",
 		"php-parallel-lint/php-console-highlighter": "1.0.0",
 		"php-parallel-lint/php-parallel-lint": "1.4.0",
diff --git a/package-lock.json b/package-lock.json
index e3da8f7..2707f42 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -24,7 +24,7 @@
 				"jest": "29.7.0",
 				"mocha": "^10.2.0",
 				"npm-run-all": "^4.1.5",
-				"stylelint-config-wikimedia": "0.17.2",
+				"stylelint-config-wikimedia": "0.18.0",
 				"wdio-mediawiki": "2.6.0",
 				"wdio-wikibase": "^6.0.3"
 			}
@@ -52,89 +52,19 @@
 			}
 		},
 		"node_modules/@babel/code-frame": {
-			"version": "7.22.13",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
-			"integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+			"version": "7.26.2",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+			"integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
 			"dev": true,
 			"dependencies": {
-				"@babel/highlight": "^7.22.13",
-				"chalk": "^2.4.2"
+				"@babel/helper-validator-identifier": "^7.25.9",
+				"js-tokens": "^4.0.0",
+				"picocolors": "^1.0.0"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
-		"node_modules/@babel/code-frame/node_modules/ansi-styles": {
-			"version": "3.2.1",
-			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-			"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-			"dev": true,
-			"dependencies": {
-				"color-convert": "^1.9.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/code-frame/node_modules/chalk": {
-			"version": "2.4.2",
-			"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-			"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-			"dev": true,
-			"dependencies": {
-				"ansi-styles": "^3.2.1",
-				"escape-string-regexp": "^1.0.5",
-				"supports-color": "^5.3.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/code-frame/node_modules/color-convert": {
-			"version": "1.9.3",
-			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-			"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-			"dev": true,
-			"dependencies": {
-				"color-name": "1.1.3"
-			}
-		},
-		"node_modules/@babel/code-frame/node_modules/color-name": {
-			"version": "1.1.3",
-			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-			"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-			"dev": true
-		},
-		"node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
-			"version": "1.0.5",
-			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-			"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-			"dev": true,
-			"engines": {
-				"node": ">=0.8.0"
-			}
-		},
-		"node_modules/@babel/code-frame/node_modules/has-flag": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-			"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-			"dev": true,
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/code-frame/node_modules/supports-color": {
-			"version": "5.5.0",
-			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-			"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-			"dev": true,
-			"dependencies": {
-				"has-flag": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
 		"node_modules/@babel/compat-data": {
 			"version": "7.23.2",
 			"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz",
@@ -322,9 +252,9 @@
 			}
 		},
 		"node_modules/@babel/helper-string-parser": {
-			"version": "7.22.5",
-			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
-			"integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+			"version": "7.25.9",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+			"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
@@ -349,109 +279,26 @@
 			}
 		},
 		"node_modules/@babel/helpers": {
-			"version": "7.23.2",
-			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz",
-			"integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==",
-			"dev": true,
-			"dependencies": {
-				"@babel/template": "^7.22.15",
-				"@babel/traverse": "^7.23.2",
-				"@babel/types": "^7.23.0"
-			},
-			"engines": {
-				"node": ">=6.9.0"
-			}
-		},
-		"node_modules/@babel/highlight": {
-			"version": "7.22.20",
-			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
-			"integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+			"version": "7.26.10",
+			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz",
+			"integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-validator-identifier": "^7.22.20",
-				"chalk": "^2.4.2",
-				"js-tokens": "^4.0.0"
+				"@babel/template": "^7.26.9",
+				"@babel/types": "^7.26.10"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
-		"node_modules/@babel/highlight/node_modules/ansi-styles": {
-			"version": "3.2.1",
-			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-			"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-			"dev": true,
-			"dependencies": {
-				"color-convert": "^1.9.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/highlight/node_modules/chalk": {
-			"version": "2.4.2",
-			"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-			"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-			"dev": true,
-			"dependencies": {
-				"ansi-styles": "^3.2.1",
-				"escape-string-regexp": "^1.0.5",
-				"supports-color": "^5.3.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/highlight/node_modules/color-convert": {
-			"version": "1.9.3",
-			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-			"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-			"dev": true,
-			"dependencies": {
-				"color-name": "1.1.3"
-			}
-		},
-		"node_modules/@babel/highlight/node_modules/color-name": {
-			"version": "1.1.3",
-			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-			"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-			"dev": true
-		},
-		"node_modules/@babel/highlight/node_modules/escape-string-regexp": {
-			"version": "1.0.5",
-			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-			"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-			"dev": true,
-			"engines": {
-				"node": ">=0.8.0"
-			}
-		},
-		"node_modules/@babel/highlight/node_modules/has-flag": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-			"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-			"dev": true,
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/highlight/node_modules/supports-color": {
-			"version": "5.5.0",
-			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-			"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+		"node_modules/@babel/parser": {
+			"version": "7.26.10",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz",
+			"integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==",
 			"dev": true,
 			"dependencies": {
-				"has-flag": "^3.0.0"
+				"@babel/types": "^7.26.10"
 			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/parser": {
-			"version": "7.23.0",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
-			"integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
-			"dev": true,
 			"bin": {
 				"parser": "bin/babel-parser.js"
 			},
@@ -637,14 +484,14 @@
 			}
 		},
 		"node_modules/@babel/template": {
-			"version": "7.22.15",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
-			"integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+			"version": "7.26.9",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz",
+			"integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.22.13",
-				"@babel/parser": "^7.22.15",
-				"@babel/types": "^7.22.15"
+				"@babel/code-frame": "^7.26.2",
+				"@babel/parser": "^7.26.9",
+				"@babel/types": "^7.26.9"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -681,14 +528,13 @@
 			}
 		},
 		"node_modules/@babel/types": {
-			"version": "7.23.0",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
-			"integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
+			"version": "7.26.10",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz",
+			"integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-string-parser": "^7.22.5",
-				"@babel/helper-validator-identifier": "^7.22.20",
-				"to-fast-properties": "^2.0.0"
+				"@babel/helper-string-parser": "^7.25.9",
+				"@babel/helper-validator-identifier": "^7.25.9"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -701,9 +547,9 @@
 			"dev": true
 		},
 		"node_modules/@csstools/css-parser-algorithms": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.2.tgz",
-			"integrity": "sha512-6tC/MnlEvs5suR4Ahef4YlBccJDHZuxGsAlxXmybWjZ5jPxlzLSMlRZ9mVHSRvlD+CmtE7+hJ+UQbfXrws/rUQ==",
+			"version": "3.0.4",
+			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
+			"integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==",
 			"dev": true,
 			"funding": [
 				{
@@ -715,18 +561,17 @@
 					"url": "https://opencollective.com/csstools"
 				}
 			],
-			"license": "MIT",
 			"engines": {
 				"node": ">=18"
 			},
 			"peerDependencies": {
-				"@csstools/css-tokenizer": "^3.0.2"
+				"@csstools/css-tokenizer": "^3.0.3"
 			}
 		},
 		"node_modules/@csstools/css-tokenizer": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.2.tgz",
-			"integrity": "sha512-IuTRcD53WHsXPCZ6W7ubfGqReTJ9Ra0yRRFmXYP/Re8hFYYfoIYIK4080X5luslVLWimhIeFq0hj09urVMQzTw==",
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz",
+			"integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==",
 			"dev": true,
 			"funding": [
 				{
@@ -738,7 +583,6 @@
 					"url": "https://opencollective.com/csstools"
 				}
 			],
-			"license": "MIT",
 			"engines": {
 				"node": ">=18"
 			}
@@ -767,29 +611,6 @@
 				"@csstools/css-tokenizer": "^3.0.1"
 			}
 		},
-		"node_modules/@csstools/selector-specificity": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-4.0.0.tgz",
-			"integrity": "sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT-0",
-			"engines": {
-				"node": ">=18"
-			},
-			"peerDependencies": {
-				"postcss-selector-parser": "^6.1.0"
-			}
-		},
 		"node_modules/@dual-bundle/import-meta-resolve": {
 			"version": "4.1.0",
 			"resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
@@ -1741,109 +1562,40 @@
 			}
 		},
 		"node_modules/@stylistic/stylelint-config": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-1.0.1.tgz",
-			"integrity": "sha512-JgFP88HZEyo34k9RpWVdcQJtLPrMxYE58IO3qypXhmvE/NmZohj+xjDtQ8UfaarnYsLecnldw57/GHum07Ctdw==",
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-2.0.0.tgz",
+			"integrity": "sha512-8J4YAxggy2Nzkb8KJIOLbtMXTPZ5gpKVmyhiiuKEUgCl9XFND5lM0e/ZZBMGEYZ68h5qcsS/jgg1wh235erRAw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@stylistic/stylelint-plugin": "^2.0.0"
+				"@stylistic/stylelint-plugin": "^3.0.0"
 			},
 			"engines": {
 				"node": "^18.12 || >=20.9"
 			},
 			"peerDependencies": {
-				"stylelint": "^16.0.2"
+				"stylelint": "^16.8.0"
 			}
 		},
 		"node_modules/@stylistic/stylelint-plugin": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.0.0.tgz",
-			"integrity": "sha512-dHKuT6PGd1WGZLOTuozAM7GdQzdmlmnFXYzvV1jYJXXpcCpV/OJ3+n8TXpMkoOeKHpJydY43EOoZTO1W/FOA4Q==",
+			"version": "3.1.1",
+			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.1.tgz",
+			"integrity": "sha512-XagAHHIa528EvyGybv8EEYGK5zrVW74cHpsjhtovVATbhDRuJYfE+X4HCaAieW9lCkwbX6L+X0I4CiUG3w/hFw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@csstools/css-parser-algorithms": "^2.3.2",
-				"@csstools/css-tokenizer": "^2.2.1",
-				"@csstools/media-query-list-parser": "^2.1.5",
+				"@csstools/css-parser-algorithms": "^3.0.1",
+				"@csstools/css-tokenizer": "^3.0.1",
+				"@csstools/media-query-list-parser": "^3.0.1",
 				"is-plain-object": "^5.0.0",
-				"postcss-selector-parser": "^6.0.13",
+				"postcss-selector-parser": "^6.1.2",
 				"postcss-value-parser": "^4.2.0",
 				"style-search": "^0.1.0",
-				"stylelint": "^16.0.2"
+				"stylelint": "^16.8.2"
 			},
 			"engines": {
 				"node": "^18.12 || >=20.9"
 			},
 			"peerDependencies": {
-				"stylelint": "^16.0.2"
-			}
-		},
-		"node_modules/@stylistic/stylelint-plugin/node_modules/@csstools/css-parser-algorithms": {
-			"version": "2.7.1",
-			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz",
-			"integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT",
-			"engines": {
-				"node": "^14 || ^16 || >=18"
-			},
-			"peerDependencies": {
-				"@csstools/css-tokenizer": "^2.4.1"
-			}
-		},
-		"node_modules/@stylistic/stylelint-plugin/node_modules/@csstools/css-tokenizer": {
-			"version": "2.4.1",
-			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz",
-			"integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT",
-			"engines": {
-				"node": "^14 || ^16 || >=18"
-			}
-		},
-		"node_modules/@stylistic/stylelint-plugin/node_modules/@csstools/media-query-list-parser": {
-			"version": "2.1.13",
-			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz",
-			"integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT",
-			"engines": {
-				"node": "^14 || ^16 || >=18"
-			},
-			"peerDependencies": {
-				"@csstools/css-parser-algorithms": "^2.7.1",
-				"@csstools/css-tokenizer": "^2.4.1"
+				"stylelint": "^16.8.0"
 			}
 		},
 		"node_modules/@stylistic/stylelint-plugin/node_modules/is-plain-object": {
@@ -1851,7 +1603,6 @@
 			"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
 			"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=0.10.0"
 			}
@@ -2342,9 +2093,9 @@
 			"dev": true
 		},
 		"node_modules/@wdio/cli": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.36.0.tgz",
-			"integrity": "sha512-vYL2tB9x7vjK3N7oRFJbUKsU4y04wqk7DQXdbmgBzC9Em4u9yvFxvtiDMCSC8kvFowiIhMtEFk8SQacL8pNszA==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.40.0.tgz",
+			"integrity": "sha512-M0txYEqqamBvJe4FEuqwWq1jd879sElF047BXSv2GRu4R1/iEBPYJHjn9KuL60Fkkpp/L1NMHTl7gW9i445edQ==",
 			"dev": true,
 			"dependencies": {
 				"@types/ejs": "^3.0.5",
@@ -2355,11 +2106,11 @@
 				"@types/lodash.union": "^4.6.6",
 				"@types/node": "^18.0.0",
 				"@types/recursive-readdir": "^2.2.0",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"async-exit-hook": "^2.0.1",
 				"chalk": "^4.0.0",
 				"chokidar": "^3.0.0",
@@ -2372,7 +2123,7 @@
 				"lodash.union": "^4.6.0",
 				"mkdirp": "^3.0.0",
 				"recursive-readdir": "^2.2.2",
-				"webdriverio": "7.36.0",
+				"webdriverio": "7.40.0",
 				"yargs": "^17.0.0",
 				"yarn-install": "^1.0.0"
 			},
@@ -2383,34 +2134,104 @@
 				"node": ">=12.0.0"
 			}
 		},
-		"node_modules/@wdio/config": {
-			"version": "7.33.0",
-			"resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.33.0.tgz",
-			"integrity": "sha512-SaCZNKrDtBghf7ujyaxTiU4pBW+1Kms32shSoXpJ/wFop6/MiA7nb19qpUPoJtEDw5/NOKevUKz8nBMBXphiew==",
+		"node_modules/@wdio/cli/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
 			"dev": true,
 			"dependencies": {
-				"@types/glob": "^8.1.0",
-				"@wdio/logger": "7.26.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
-				"deepmerge": "^4.0.0",
-				"glob": "^8.0.3"
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
 			},
 			"engines": {
 				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
 			}
 		},
-		"node_modules/@wdio/local-runner": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.36.0.tgz",
-			"integrity": "sha512-01uDD4O5RbtuFE0F7PmtZjYuqCfJ2HvP1b+q8OUm5oINoaQ7djSkHCM01UKu5Rn5I1cQa0vSr5r12puD5Gp+Yw==",
+		"node_modules/@wdio/cli/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+			"dev": true,
+			"dependencies": {
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@wdio/config": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.40.0.tgz",
+			"integrity": "sha512-ayQELXyxa+k9/2a509F5a1oTsCa/w8D1nDrd+hzm+1mYb4Te2lceWCCzm+atGKkMpvjLH4GvhrEBYLh3rIWk2A==",
+			"dev": true,
+			"dependencies": {
+				"@types/glob": "^8.1.0",
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
+				"deepmerge": "^4.0.0",
+				"glob": "^8.0.3"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@wdio/config/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/@wdio/config/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+			"dev": true,
+			"dependencies": {
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@wdio/local-runner": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.40.0.tgz",
+			"integrity": "sha512-OBuN7TlFhbPUH7Wbh2S8OKZOjeW4rHXOfuGzJfaKkzjHje2Dqide/uC3Gd25MwmzgZcVkOo9DUYiGFCHXc44ug==",
 			"dev": true,
 			"dependencies": {
 				"@types/stream-buffers": "^3.0.3",
 				"@wdio/logger": "7.26.0",
-				"@wdio/repl": "7.33.0",
-				"@wdio/runner": "7.36.0",
-				"@wdio/types": "7.33.0",
+				"@wdio/repl": "7.40.0",
+				"@wdio/runner": "7.40.0",
+				"@wdio/types": "7.40.0",
 				"async-exit-hook": "^2.0.1",
 				"split2": "^4.0.0",
 				"stream-buffers": "^3.0.2"
@@ -2422,6 +2243,27 @@
 				"@wdio/cli": "^7.0.0"
 			}
 		},
+		"node_modules/@wdio/local-runner/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
 		"node_modules/@wdio/logger": {
 			"version": "7.26.0",
 			"resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.26.0.tgz",
@@ -2464,12 +2306,47 @@
 			}
 		},
 		"node_modules/@wdio/repl": {
-			"version": "7.33.0",
-			"resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.33.0.tgz",
-			"integrity": "sha512-17KM9NCg+UVpZNbS8koT/917vklF5M8IQnw0kGwmJEo444ifTMxmLwQymbS2ovQKAKAQxlfdM7bpqMeI15kzsQ==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.40.0.tgz",
+			"integrity": "sha512-6tzT7lOMxBwdqMVdW4QxlzrQadGPta4HedFcJo4LyRz9PkXPTF68qeIGs0GyZvy/5AqspNWaAJvIR7f3T3tCyw==",
+			"dev": true,
+			"dependencies": {
+				"@wdio/utils": "7.40.0"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@wdio/repl/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/@wdio/repl/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
 			"dev": true,
 			"dependencies": {
-				"@wdio/utils": "7.33.0"
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
 			},
 			"engines": {
 				"node": ">=12.0.0"
@@ -2530,19 +2407,54 @@
 			}
 		},
 		"node_modules/@wdio/runner": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.36.0.tgz",
-			"integrity": "sha512-EU/0XprH6UEqaYarxuSSLYgsxC6/jLHE7Wj/5FIJyFwdx//Ip8DnTXzbJylskeWX2NkCfJH2VerGSo423c98+Q==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.40.0.tgz",
+			"integrity": "sha512-3dGn8sU9Oc0kTq+hcxNSqkF1acqiTAzamyNWsWXAX7V0FOfZxp0wmD9aMqY+sVT6g8mUE5aePT1ydONE5o+6QA==",
 			"dev": true,
 			"dependencies": {
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"deepmerge": "^4.0.0",
 				"gaze": "^1.1.2",
-				"webdriver": "7.33.0",
-				"webdriverio": "7.36.0"
+				"webdriver": "7.40.0",
+				"webdriverio": "7.40.0"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@wdio/runner/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/@wdio/runner/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+			"dev": true,
+			"dependencies": {
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
 			},
 			"engines": {
 				"node": ">=12.0.0"
@@ -2697,9 +2609,9 @@
 			}
 		},
 		"node_modules/ansi-colors": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
-			"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+			"integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
 			"dev": true,
 			"engines": {
 				"node": ">=6"
@@ -3056,7 +2968,6 @@
 			"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
 			"integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=8"
 			}
@@ -3114,7 +3025,6 @@
 			"resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
 			"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=8"
 			}
@@ -3160,7 +3070,6 @@
 			"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
 			"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=8"
 			}
@@ -4340,7 +4249,6 @@
 			"resolved": "https://registry.npmjs.org/css-tokenize/-/css-tokenize-1.0.1.tgz",
 			"integrity": "sha512-gLmmbJdwH9HLY4bcA17lnZ8GgPwEXRbvxBJGHnkiB6gLhRpTzjkjtMIvz7YORGW/Ptv2oMk8b5g+u7mRD6Dd7A==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"inherits": "^2.0.1",
 				"readable-stream": "^1.0.33"
@@ -4350,15 +4258,13 @@
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
 			"integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/css-tokenize/node_modules/readable-stream": {
 			"version": "1.1.14",
 			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
 			"integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"core-util-is": "~1.0.0",
 				"inherits": "~2.0.1",
@@ -4370,17 +4276,15 @@
 			"version": "0.10.31",
 			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
 			"integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/css-tree": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.0.tgz",
-			"integrity": "sha512-o88DVQ6GzsABn1+6+zo2ct801dBO5OASVyxbbvA2W20ue2puSh/VOuqUj90eUeMSX/xqGqBmOKiRQN7tJOuBXw==",
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+			"integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"mdn-data": "2.10.0",
+				"mdn-data": "2.12.2",
 				"source-map-js": "^1.0.1"
 			},
 			"engines": {
@@ -4600,18 +4504,18 @@
 			}
 		},
 		"node_modules/devtools": {
-			"version": "7.35.0",
-			"resolved": "https://registry.npmjs.org/devtools/-/devtools-7.35.0.tgz",
-			"integrity": "sha512-7HMZMcJSCK/PaBCWVs4n4ZhtBNdUQj10iPwXvj/JDkqPreEXN/XW9GJAoMuLPFmCEKfxe+LrIbgs8ocGJ6rp/A==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/devtools/-/devtools-7.40.0.tgz",
+			"integrity": "sha512-hiDPCNG/mpD+bSgegxoe5nwyxWav+QpIvT+7H9D0dUwjB0q04OF473qGflSQ1QpGig6l4qG92tA7dVnLsdP75A==",
 			"dev": true,
 			"dependencies": {
 				"@types/node": "^18.0.0",
 				"@types/ua-parser-js": "^0.7.33",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"chrome-launcher": "^0.15.0",
 				"edge-paths": "^2.1.0",
 				"puppeteer-core": "13.1.3",
@@ -4629,6 +4533,41 @@
 			"integrity": "sha512-9rTIZ4ZjWwalCPiaY+kPiALLfOKgAz5CTi/Zb1L+qSZ8PH3zVo1T8JcgXIIqg1iM3pZ6hF+n9xO5r2jZ/SF+jg==",
 			"dev": true
 		},
+		"node_modules/devtools/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/devtools/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+			"dev": true,
+			"dependencies": {
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
 		"node_modules/devtools/node_modules/debug": {
 			"version": "4.3.2",
 			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
@@ -4743,9 +4682,9 @@
 			}
 		},
 		"node_modules/diff": {
-			"version": "5.1.0",
-			"resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
-			"integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
+			"version": "5.2.0",
+			"resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+			"integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
 			"dev": true,
 			"engines": {
 				"node": ">=0.3.1"
@@ -4794,14 +4733,13 @@
 			}
 		},
 		"node_modules/doiuse": {
-			"version": "6.0.3",
-			"resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.3.tgz",
-			"integrity": "sha512-cgu7al1yxHpRS+Q+ru3LQYUDttoPBGYgY7JunTdr0VeFMjBAwXVHTyZxn48ZOuxpBB30W52kOK6mwbduuqNboQ==",
+			"version": "6.0.5",
+			"resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.5.tgz",
+			"integrity": "sha512-ljuf9ndGqKST0GlPAYyCg04hbQAeR1xIIWVDjQaDDkoTY/Y1Vb+8FNoy6NuVuJIEEKe/nKUH8NRWjG7JJxZ9Eg==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"browserslist": "^4.23.3",
-				"caniuse-lite": "^1.0.30001662",
+				"browserslist": "^4.24.0",
+				"caniuse-lite": "^1.0.30001669",
 				"css-tokenize": "^1.0.1",
 				"duplexify": "^4.1.3",
 				"multimatch": "^5.0.0",
@@ -4821,7 +4759,6 @@
 			"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
 			"integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
 			"dev": true,
-			"license": "BSD-3-Clause",
 			"engines": {
 				"node": ">= 8"
 			}
@@ -4831,7 +4768,6 @@
 			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
 			"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"domelementtype": "^2.3.0",
 				"domhandler": "^5.0.2",
@@ -4851,15 +4787,13 @@
 					"type": "github",
 					"url": "https://github.com/sponsors/fb55"
 				}
-			],
-			"license": "BSD-2-Clause"
+			]
 		},
 		"node_modules/domhandler": {
 			"version": "5.0.3",
 			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
 			"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
 			"dev": true,
-			"license": "BSD-2-Clause",
 			"dependencies": {
 				"domelementtype": "^2.3.0"
 			},
@@ -4871,11 +4805,10 @@
 			}
 		},
 		"node_modules/domutils": {
-			"version": "3.1.0",
-			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
-			"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+			"version": "3.2.2",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
+			"integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
 			"dev": true,
-			"license": "BSD-2-Clause",
 			"dependencies": {
 				"dom-serializer": "^2.0.0",
 				"domelementtype": "^2.3.0",
@@ -4890,7 +4823,6 @@
 			"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
 			"integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"end-of-stream": "^1.4.1",
 				"inherits": "^2.0.3",
@@ -4996,7 +4928,6 @@
 			"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
 			"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
 			"dev": true,
-			"license": "BSD-2-Clause",
 			"engines": {
 				"node": ">=0.12"
 			},
@@ -5967,11 +5898,20 @@
 			"dev": true
 		},
 		"node_modules/fast-uri": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz",
-			"integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==",
+			"version": "3.0.6",
+			"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz",
+			"integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==",
 			"dev": true,
-			"license": "MIT"
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/fastify"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/fastify"
+				}
+			]
 		},
 		"node_modules/fastest-levenshtein": {
 			"version": "1.0.16",
@@ -7133,7 +7073,6 @@
 					"url": "https://github.com/sponsors/fb55"
 				}
 			],
-			"license": "MIT",
 			"dependencies": {
 				"domelementtype": "^2.3.0",
 				"domhandler": "^5.0.3",
@@ -9296,11 +9235,10 @@
 			}
 		},
 		"node_modules/known-css-properties": {
-			"version": "0.34.0",
-			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz",
-			"integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==",
-			"dev": true,
-			"license": "MIT"
+			"version": "0.35.0",
+			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz",
+			"integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==",
+			"dev": true
 		},
 		"node_modules/ky": {
 			"version": "0.30.0",
@@ -9571,8 +9509,7 @@
 			"version": "4.4.2",
 			"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
 			"integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/lodash.union": {
 			"version": "4.6.0",
@@ -9710,11 +9647,10 @@
 			}
 		},
 		"node_modules/mdn-data": {
-			"version": "2.10.0",
-			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.10.0.tgz",
-			"integrity": "sha512-qq7C3EtK3yJXMwz1zAab65pjl+UhohqMOctTgcqjLOWABqmwj+me02LSsCuEUxnst9X1lCBpoE0WArGKgdGDzw==",
-			"dev": true,
-			"license": "CC0-1.0"
+			"version": "2.12.2",
+			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+			"integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+			"dev": true
 		},
 		"node_modules/memorystream": {
 			"version": "0.3.1",
@@ -9879,32 +9815,31 @@
 			"dev": true
 		},
 		"node_modules/mocha": {
-			"version": "10.2.0",
-			"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz",
-			"integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==",
+			"version": "10.8.2",
+			"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
+			"integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==",
 			"dev": true,
 			"dependencies": {
-				"ansi-colors": "4.1.1",
-				"browser-stdout": "1.3.1",
-				"chokidar": "3.5.3",
-				"debug": "4.3.4",
-				"diff": "5.0.0",
-				"escape-string-regexp": "4.0.0",
-				"find-up": "5.0.0",
-				"glob": "7.2.0",
-				"he": "1.2.0",
-				"js-yaml": "4.1.0",
-				"log-symbols": "4.1.0",
-				"minimatch": "5.0.1",
-				"ms": "2.1.3",
-				"nanoid": "3.3.3",
-				"serialize-javascript": "6.0.0",
-				"strip-json-comments": "3.1.1",
-				"supports-color": "8.1.1",
-				"workerpool": "6.2.1",
-				"yargs": "16.2.0",
-				"yargs-parser": "20.2.4",
-				"yargs-unparser": "2.0.0"
+				"ansi-colors": "^4.1.3",
+				"browser-stdout": "^1.3.1",
+				"chokidar": "^3.5.3",
+				"debug": "^4.3.5",
+				"diff": "^5.2.0",
+				"escape-string-regexp": "^4.0.0",
+				"find-up": "^5.0.0",
+				"glob": "^8.1.0",
+				"he": "^1.2.0",
+				"js-yaml": "^4.1.0",
+				"log-symbols": "^4.1.0",
+				"minimatch": "^5.1.6",
+				"ms": "^2.1.3",
+				"serialize-javascript": "^6.0.2",
+				"strip-json-comments": "^3.1.1",
+				"supports-color": "^8.1.1",
+				"workerpool": "^6.5.1",
+				"yargs": "^16.2.0",
+				"yargs-parser": "^20.2.9",
+				"yargs-unparser": "^2.0.0"
 			},
 			"bin": {
 				"_mocha": "bin/_mocha",
@@ -9912,10 +9847,15 @@
 			},
 			"engines": {
 				"node": ">= 14.0.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/mochajs"
+			}
+		},
+		"node_modules/mocha/node_modules/brace-expansion": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+			"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+			"dev": true,
+			"dependencies": {
+				"balanced-match": "^1.0.0"
 			}
 		},
 		"node_modules/mocha/node_modules/cliui": {
@@ -9929,51 +9869,27 @@
 				"wrap-ansi": "^7.0.0"
 			}
 		},
-		"node_modules/mocha/node_modules/diff": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
-			"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
-			"dev": true,
-			"engines": {
-				"node": ">=0.3.1"
-			}
-		},
-		"node_modules/mocha/node_modules/glob": {
-			"version": "7.2.0",
-			"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
-			"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+		"node_modules/mocha/node_modules/debug": {
+			"version": "4.4.0",
+			"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+			"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
 			"dev": true,
 			"dependencies": {
-				"fs.realpath": "^1.0.0",
-				"inflight": "^1.0.4",
-				"inherits": "2",
-				"minimatch": "^3.0.4",
-				"once": "^1.3.0",
-				"path-is-absolute": "^1.0.0"
+				"ms": "^2.1.3"
 			},
 			"engines": {
-				"node": "*"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
-		"node_modules/mocha/node_modules/glob/node_modules/minimatch": {
-			"version": "3.1.2",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
-			"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-			"dev": true,
-			"dependencies": {
-				"brace-expansion": "^1.1.7"
+				"node": ">=6.0"
 			},
-			"engines": {
-				"node": "*"
+			"peerDependenciesMeta": {
+				"supports-color": {
+					"optional": true
+				}
 			}
 		},
 		"node_modules/mocha/node_modules/minimatch": {
-			"version": "5.0.1",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
-			"integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+			"version": "5.1.6",
+			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+			"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
 			"dev": true,
 			"dependencies": {
 				"brace-expansion": "^2.0.1"
@@ -9982,15 +9898,6 @@
 				"node": ">=10"
 			}
 		},
-		"node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-			"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-			"dev": true,
-			"dependencies": {
-				"balanced-match": "^1.0.0"
-			}
-		},
 		"node_modules/mocha/node_modules/ms": {
 			"version": "2.1.3",
 			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -10026,7 +9933,6 @@
 			"resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
 			"integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"@types/minimatch": "^3.0.3",
 				"array-differ": "^3.0.0",
@@ -10045,8 +9951,7 @@
 			"version": "3.0.5",
 			"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
 			"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/mute-stream": {
 			"version": "0.0.8",
@@ -10069,18 +9974,6 @@
 				"node": ">=10.0.0"
 			}
 		},
-		"node_modules/nanoid": {
-			"version": "3.3.3",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
-			"integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
-			"dev": true,
-			"bin": {
-				"nanoid": "bin/nanoid.cjs"
-			},
-			"engines": {
-				"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
-			}
-		},
 		"node_modules/natural-compare": {
 			"version": "1.4.0",
 			"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -10760,11 +10653,10 @@
 			"dev": true
 		},
 		"node_modules/picocolors": {
-			"version": "1.1.0",
-			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
-			"integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
-			"dev": true,
-			"license": "ISC"
+			"version": "1.1.1",
+			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+			"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+			"dev": true
 		},
 		"node_modules/picomatch": {
 			"version": "2.3.1",
@@ -10903,9 +10795,9 @@
 			}
 		},
 		"node_modules/postcss": {
-			"version": "8.4.47",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
-			"integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
+			"version": "8.5.3",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+			"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
 			"dev": true,
 			"funding": [
 				{
@@ -10921,10 +10813,9 @@
 					"url": "https://github.com/sponsors/ai"
 				}
 			],
-			"license": "MIT",
 			"dependencies": {
-				"nanoid": "^3.3.7",
-				"picocolors": "^1.1.0",
+				"nanoid": "^3.3.8",
+				"picocolors": "^1.1.1",
 				"source-map-js": "^1.2.1"
 			},
 			"engines": {
@@ -10932,14 +10823,13 @@
 			}
 		},
 		"node_modules/postcss-html": {
-			"version": "1.6.0",
-			"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.6.0.tgz",
-			"integrity": "sha512-OWgQ9/Pe23MnNJC0PL4uZp8k0EDaUvqpJFSiwFxOLClAhmD7UEisyhO3x5hVsD4xFrjReVTXydlrMes45dJ71w==",
+			"version": "1.7.0",
+			"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.7.0.tgz",
+			"integrity": "sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"htmlparser2": "^8.0.0",
-				"js-tokens": "^8.0.0",
+				"js-tokens": "^9.0.0",
 				"postcss": "^8.4.0",
 				"postcss-safe-parser": "^6.0.0"
 			},
@@ -10948,18 +10838,16 @@
 			}
 		},
 		"node_modules/postcss-html/node_modules/js-tokens": {
-			"version": "8.0.3",
-			"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz",
-			"integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==",
-			"dev": true,
-			"license": "MIT"
+			"version": "9.0.1",
+			"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
+			"integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
+			"dev": true
 		},
 		"node_modules/postcss-html/node_modules/postcss-safe-parser": {
 			"version": "6.0.0",
 			"resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
 			"integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=12.0"
 			},
@@ -11038,9 +10926,9 @@
 			"dev": true
 		},
 		"node_modules/postcss/node_modules/nanoid": {
-			"version": "3.3.7",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
-			"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+			"version": "3.3.9",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz",
+			"integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==",
 			"dev": true,
 			"funding": [
 				{
@@ -11048,7 +10936,6 @@
 					"url": "https://github.com/sponsors/ai"
 				}
 			],
-			"license": "MIT",
 			"bin": {
 				"nanoid": "bin/nanoid.cjs"
 			},
@@ -11624,7 +11511,6 @@
 			"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
 			"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=0.10.0"
 			}
@@ -12029,9 +11915,9 @@
 			}
 		},
 		"node_modules/serialize-javascript": {
-			"version": "6.0.0",
-			"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
-			"integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+			"version": "6.0.2",
+			"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+			"integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
 			"dev": true,
 			"dependencies": {
 				"randombytes": "^2.1.0"
@@ -12121,7 +12007,6 @@
 			"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
 			"integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"ansi-styles": "^4.0.0",
 				"astral-regex": "^2.0.0",
@@ -12269,8 +12154,7 @@
 			"version": "1.0.3",
 			"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
 			"integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/string_decoder": {
 			"version": "1.3.0",
@@ -12428,13 +12312,12 @@
 			"version": "0.1.0",
 			"resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
 			"integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
-			"dev": true,
-			"license": "ISC"
+			"dev": true
 		},
 		"node_modules/stylelint": {
-			"version": "16.10.0",
-			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.10.0.tgz",
-			"integrity": "sha512-z/8X2rZ52dt2c0stVwI9QL2AFJhLhbPkyfpDFcizs200V/g7v+UYY6SNcB9hKOLcDDX/yGLDsY/pX08sLkz9xQ==",
+			"version": "16.12.0",
+			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.12.0.tgz",
+			"integrity": "sha512-F8zZ3L/rBpuoBZRvI4JVT20ZanPLXfQLzMOZg1tzPflRVh9mKpOZ8qcSIhh1my3FjAjZWG4T2POwGnmn6a6hbg==",
 			"dev": true,
 			"funding": [
 				{
@@ -12446,18 +12329,17 @@
 					"url": "https://github.com/sponsors/stylelint"
 				}
 			],
-			"license": "MIT",
 			"dependencies": {
-				"@csstools/css-parser-algorithms": "^3.0.1",
-				"@csstools/css-tokenizer": "^3.0.1",
-				"@csstools/media-query-list-parser": "^3.0.1",
-				"@csstools/selector-specificity": "^4.0.0",
+				"@csstools/css-parser-algorithms": "^3.0.4",
+				"@csstools/css-tokenizer": "^3.0.3",
+				"@csstools/media-query-list-parser": "^4.0.2",
+				"@csstools/selector-specificity": "^5.0.0",
 				"@dual-bundle/import-meta-resolve": "^4.1.0",
 				"balanced-match": "^2.0.0",
 				"colord": "^2.9.3",
 				"cosmiconfig": "^9.0.0",
 				"css-functions-list": "^3.2.3",
-				"css-tree": "^3.0.0",
+				"css-tree": "^3.0.1",
 				"debug": "^4.3.7",
 				"fast-glob": "^3.3.2",
 				"fastest-levenshtein": "^1.0.16",
@@ -12469,22 +12351,22 @@
 				"ignore": "^6.0.2",
 				"imurmurhash": "^0.1.4",
 				"is-plain-object": "^5.0.0",
-				"known-css-properties": "^0.34.0",
+				"known-css-properties": "^0.35.0",
 				"mathml-tag-names": "^2.1.3",
 				"meow": "^13.2.0",
 				"micromatch": "^4.0.8",
 				"normalize-path": "^3.0.0",
-				"picocolors": "^1.0.1",
-				"postcss": "^8.4.47",
+				"picocolors": "^1.1.1",
+				"postcss": "^8.4.49",
 				"postcss-resolve-nested-selector": "^0.1.6",
 				"postcss-safe-parser": "^7.0.1",
-				"postcss-selector-parser": "^6.1.2",
+				"postcss-selector-parser": "^7.0.0",
 				"postcss-value-parser": "^4.2.0",
 				"resolve-from": "^5.0.0",
 				"string-width": "^4.2.3",
 				"supports-hyperlinks": "^3.1.0",
 				"svg-tags": "^1.0.0",
-				"table": "^6.8.2",
+				"table": "^6.9.0",
 				"write-file-atomic": "^5.0.1"
 			},
 			"bin": {
@@ -12495,85 +12377,66 @@
 			}
 		},
 		"node_modules/stylelint-config-recommended": {
-			"version": "14.0.0",
-			"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz",
-			"integrity": "sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==",
+			"version": "14.0.1",
+			"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz",
+			"integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==",
 			"dev": true,
-			"license": "MIT",
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/stylelint"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/stylelint"
+				}
+			],
 			"engines": {
 				"node": ">=18.12.0"
 			},
 			"peerDependencies": {
-				"stylelint": "^16.0.0"
+				"stylelint": "^16.1.0"
 			}
 		},
 		"node_modules/stylelint-config-wikimedia": {
-			"version": "0.17.2",
-			"resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.17.2.tgz",
-			"integrity": "sha512-cc3PYhe1O/GTgsMOp+Ri3ru579YBbZ3Me0oU7xNb06n4iwyXYPz8qO5G4iQ13UH19UW2NIS8Tk0goPRrJ1RAfw==",
+			"version": "0.18.0",
+			"resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.18.0.tgz",
+			"integrity": "sha512-Lr45NIe7pG8i7BPcMc6EddO1pRK8/KNG8gp4o/oOG1Ez10hglJuJb/QT17BlzX8NPkhtP2KdY63NS2f/Wcj6Ww==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@stylistic/stylelint-config": "1.0.1",
-				"@stylistic/stylelint-plugin": "2.0.0",
+				"@stylistic/stylelint-config": "2.0.0",
+				"@stylistic/stylelint-plugin": "3.1.1",
 				"browserslist-config-wikimedia": "0.7.0",
-				"postcss-html": "1.6.0",
+				"postcss-html": "1.7.0",
 				"postcss-less": "6.0.0",
-				"stylelint": "16.2.0",
-				"stylelint-config-recommended": "14.0.0",
-				"stylelint-no-unsupported-browser-features": "8.0.1"
+				"stylelint": "16.12.0",
+				"stylelint-config-recommended": "14.0.1",
+				"stylelint-no-unsupported-browser-features": "8.0.2"
 			},
 			"peerDependencies": {
 				"postcss-less": "^6.0.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/css-parser-algorithms": {
-			"version": "2.7.1",
-			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz",
-			"integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==",
+		"node_modules/stylelint-no-unsupported-browser-features": {
+			"version": "8.0.2",
+			"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-8.0.2.tgz",
+			"integrity": "sha512-4PY2qJ3ZTEje9RgGfaQ82eJoPioXxs6hazeKpji/wzLNVzTX2wd4b0Ds3ewdLkH3ID+o63IInuTquU2MNJO3YQ==",
 			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT",
+			"dependencies": {
+				"doiuse": "^6.0.5",
+				"postcss": "^8.4.32"
+			},
 			"engines": {
-				"node": "^14 || ^16 || >=18"
+				"node": ">=18.12.0"
 			},
 			"peerDependencies": {
-				"@csstools/css-tokenizer": "^2.4.1"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/css-tokenizer": {
-			"version": "2.4.1",
-			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz",
-			"integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT",
-			"engines": {
-				"node": "^14 || ^16 || >=18"
+				"stylelint": "^16.0.2"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/media-query-list-parser": {
-			"version": "2.1.13",
-			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz",
-			"integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==",
+		"node_modules/stylelint/node_modules/@csstools/media-query-list-parser": {
+			"version": "4.0.2",
+			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz",
+			"integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==",
 			"dev": true,
 			"funding": [
 				{
@@ -12585,19 +12448,18 @@
 					"url": "https://opencollective.com/csstools"
 				}
 			],
-			"license": "MIT",
 			"engines": {
-				"node": "^14 || ^16 || >=18"
+				"node": ">=18"
 			},
 			"peerDependencies": {
-				"@csstools/css-parser-algorithms": "^2.7.1",
-				"@csstools/css-tokenizer": "^2.4.1"
+				"@csstools/css-parser-algorithms": "^3.0.4",
+				"@csstools/css-tokenizer": "^3.0.3"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/selector-specificity": {
-			"version": "3.1.1",
-			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz",
-			"integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==",
+		"node_modules/stylelint/node_modules/@csstools/selector-specificity": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+			"integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
 			"dev": true,
 			"funding": [
 				{
@@ -12609,265 +12471,11 @@
 					"url": "https://opencollective.com/csstools"
 				}
 			],
-			"license": "MIT-0",
-			"engines": {
-				"node": "^14 || ^16 || >=18"
-			},
-			"peerDependencies": {
-				"postcss-selector-parser": "^6.0.13"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/ansi-regex": {
-			"version": "6.1.0",
-			"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
-			"integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=12"
-			},
-			"funding": {
-				"url": "https://github.com/chalk/ansi-regex?sponsor=1"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/balanced-match": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
-			"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/css-tree": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
-			"integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"mdn-data": "2.0.30",
-				"source-map-js": "^1.0.1"
-			},
-			"engines": {
-				"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/file-entry-cache": {
-			"version": "8.0.0",
-			"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
-			"integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"flat-cache": "^4.0.0"
-			},
 			"engines": {
-				"node": ">=16.0.0"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/flat-cache": {
-			"version": "4.0.1",
-			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
-			"integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"flatted": "^3.2.9",
-				"keyv": "^4.5.4"
-			},
-			"engines": {
-				"node": ">=16"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/global-modules": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
-			"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"global-prefix": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=6"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/global-prefix": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
-			"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"ini": "^1.3.5",
-				"kind-of": "^6.0.2",
-				"which": "^1.3.1"
-			},
-			"engines": {
-				"node": ">=6"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/is-plain-object": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
-			"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/known-css-properties": {
-			"version": "0.29.0",
-			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
-			"integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/mdn-data": {
-			"version": "2.0.30",
-			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
-			"integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
-			"dev": true,
-			"license": "CC0-1.0"
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/resolve-from": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
-			"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/signal-exit": {
-			"version": "4.1.0",
-			"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
-			"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
-			"dev": true,
-			"license": "ISC",
-			"engines": {
-				"node": ">=14"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/strip-ansi": {
-			"version": "7.1.0",
-			"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
-			"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"ansi-regex": "^6.0.1"
-			},
-			"engines": {
-				"node": ">=12"
-			},
-			"funding": {
-				"url": "https://github.com/chalk/strip-ansi?sponsor=1"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/stylelint": {
-			"version": "16.2.0",
-			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.0.tgz",
-			"integrity": "sha512-gwqU5AkIb52wrAzzn+359S3NIJDMl02TXLUaV2tzA/L6jUdpTwNt+MCxHlc8+Hb2bUHlYVo92YeSIryF2gJthA==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@csstools/css-parser-algorithms": "^2.5.0",
-				"@csstools/css-tokenizer": "^2.2.3",
-				"@csstools/media-query-list-parser": "^2.1.7",
-				"@csstools/selector-specificity": "^3.0.1",
-				"balanced-match": "^2.0.0",
-				"colord": "^2.9.3",
-				"cosmiconfig": "^9.0.0",
-				"css-functions-list": "^3.2.1",
-				"css-tree": "^2.3.1",
-				"debug": "^4.3.4",
-				"fast-glob": "^3.3.2",
-				"fastest-levenshtein": "^1.0.16",
-				"file-entry-cache": "^8.0.0",
-				"global-modules": "^2.0.0",
-				"globby": "^11.1.0",
-				"globjoin": "^0.1.4",
-				"html-tags": "^3.3.1",
-				"ignore": "^5.3.0",
-				"imurmurhash": "^0.1.4",
-				"is-plain-object": "^5.0.0",
-				"known-css-properties": "^0.29.0",
-				"mathml-tag-names": "^2.1.3",
-				"meow": "^13.1.0",
-				"micromatch": "^4.0.5",
-				"normalize-path": "^3.0.0",
-				"picocolors": "^1.0.0",
-				"postcss": "^8.4.33",
-				"postcss-resolve-nested-selector": "^0.1.1",
-				"postcss-safe-parser": "^7.0.0",
-				"postcss-selector-parser": "^6.0.15",
-				"postcss-value-parser": "^4.2.0",
-				"resolve-from": "^5.0.0",
-				"string-width": "^4.2.3",
-				"strip-ansi": "^7.1.0",
-				"supports-hyperlinks": "^3.0.0",
-				"svg-tags": "^1.0.0",
-				"table": "^6.8.1",
-				"write-file-atomic": "^5.0.1"
-			},
-			"bin": {
-				"stylelint": "bin/stylelint.mjs"
-			},
-			"engines": {
-				"node": ">=18.12.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/stylelint"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/which": {
-			"version": "1.3.1",
-			"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-			"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-			"dev": true,
-			"license": "ISC",
-			"dependencies": {
-				"isexe": "^2.0.0"
-			},
-			"bin": {
-				"which": "bin/which"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/write-file-atomic": {
-			"version": "5.0.1",
-			"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
-			"integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
-			"dev": true,
-			"license": "ISC",
-			"dependencies": {
-				"imurmurhash": "^0.1.4",
-				"signal-exit": "^4.0.1"
-			},
-			"engines": {
-				"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
-			}
-		},
-		"node_modules/stylelint-no-unsupported-browser-features": {
-			"version": "8.0.1",
-			"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-8.0.1.tgz",
-			"integrity": "sha512-tc8Xn5DaqJhxTmbA4H8gZbYdAz027NfuSZv5+cVieQb7BtBrF/1/iKYdpcGwXPl3GtqkQrisiXuGqKkKnzWcLw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"doiuse": "^6.0.2",
-				"postcss": "^8.4.32"
-			},
-			"engines": {
-				"node": ">=18.12.0"
+				"node": ">=18"
 			},
 			"peerDependencies": {
-				"stylelint": "^16.0.2"
+				"postcss-selector-parser": "^7.0.0"
 			}
 		},
 		"node_modules/stylelint/node_modules/balanced-match": {
@@ -12973,6 +12581,19 @@
 			"dev": true,
 			"license": "MIT"
 		},
+		"node_modules/stylelint/node_modules/postcss-selector-parser": {
+			"version": "7.1.0",
+			"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+			"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
+			"dev": true,
+			"dependencies": {
+				"cssesc": "^3.0.0",
+				"util-deprecate": "^1.0.2"
+			},
+			"engines": {
+				"node": ">=4"
+			}
+		},
 		"node_modules/stylelint/node_modules/resolve-from": {
 			"version": "5.0.0",
 			"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
@@ -13166,11 +12787,10 @@
 			}
 		},
 		"node_modules/table": {
-			"version": "6.8.2",
-			"resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz",
-			"integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==",
+			"version": "6.9.0",
+			"resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz",
+			"integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==",
 			"dev": true,
-			"license": "BSD-3-Clause",
 			"dependencies": {
 				"ajv": "^8.0.1",
 				"lodash.truncate": "^4.4.2",
@@ -13187,7 +12807,6 @@
 			"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
 			"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"fast-deep-equal": "^3.1.3",
 				"fast-uri": "^3.0.1",
@@ -13203,8 +12822,7 @@
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
 			"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/tapable": {
 			"version": "2.2.1",
@@ -13307,15 +12925,6 @@
 			"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
 			"dev": true
 		},
-		"node_modules/to-fast-properties": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-			"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
-			"dev": true,
-			"engines": {
-				"node": ">=4"
-			}
-		},
 		"node_modules/to-regex-range": {
 			"version": "5.0.1",
 			"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -13506,9 +13115,9 @@
 			}
 		},
 		"node_modules/ua-parser-js": {
-			"version": "1.0.39",
-			"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz",
-			"integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==",
+			"version": "1.0.40",
+			"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz",
+			"integrity": "sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==",
 			"dev": true,
 			"funding": [
 				{
@@ -13761,53 +13370,88 @@
 			"integrity": "sha512-UbJPNDwEtXonEVhaGKC+05nTSEgMJuwhvqEWST00wDD0kj+I2pCJA1mEh7R8HNMlS21vlExx22bPyL66XTfCbQ==",
 			"dev": true,
 			"engines": {
-				"node": ">=16.0"
+				"node": ">=16.0"
+			},
+			"peerDependencies": {
+				"mwbot": "^2.0.0",
+				"wdio-mediawiki": "^2.0.0",
+				"webdriverio": "^7.0 || ^8.16"
+			}
+		},
+		"node_modules/webdriver": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.40.0.tgz",
+			"integrity": "sha512-CKi3cDWgNVE/ibcsBfdtA+pQVeZ4oYlecLlwemulVxJdgr4l5bv+nXuoIhnYeVb6aAI4naK772vmWQ0XuRYhDQ==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"@wdio/config": "7.40.0",
+				"@wdio/logger": "7.26.0",
+				"@wdio/protocols": "7.27.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
+				"got": "^11.0.2",
+				"ky": "0.30.0",
+				"lodash.merge": "^4.6.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/webdriver/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
 			},
 			"peerDependencies": {
-				"mwbot": "^2.0.0",
-				"wdio-mediawiki": "^2.0.0",
-				"webdriverio": "^7.0 || ^8.16"
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
 			}
 		},
-		"node_modules/webdriver": {
-			"version": "7.33.0",
-			"resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.33.0.tgz",
-			"integrity": "sha512-cyMRAVUHgQhEBHojOeNet2e8GkfyvvjpioNCPcF6qUtT+URdagr8Mh0t4Fs+Jr0tpuMqFnw70xZexAcV/6I/jg==",
+		"node_modules/webdriver/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
 			"dev": true,
 			"dependencies": {
-				"@types/node": "^18.0.0",
-				"@wdio/config": "7.33.0",
 				"@wdio/logger": "7.26.0",
-				"@wdio/protocols": "7.27.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
-				"got": "^11.0.2",
-				"ky": "0.30.0",
-				"lodash.merge": "^4.6.1"
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
 			},
 			"engines": {
 				"node": ">=12.0.0"
 			}
 		},
 		"node_modules/webdriverio": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.36.0.tgz",
-			"integrity": "sha512-OTYmKBF7eFKBX39ojUIEzw7AlE1ZRJiFoMTtEQaPMuPzZCP2jUBq6Ey38nuZrYXLkXn3/le9a14pNnKSM0n56w==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.40.0.tgz",
+			"integrity": "sha512-UswBOjpWwk7ziGi9beZGX/XFrp4m1Ws0ni5HI9mzAkOlpKKKWhnX6i95pWQV6sPF4Urv4RJf8WXayHhTbzXzdA==",
 			"dev": true,
 			"dependencies": {
 				"@types/aria-query": "^5.0.0",
 				"@types/node": "^18.0.0",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/repl": "7.33.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/repl": "7.40.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"archiver": "^5.0.0",
 				"aria-query": "^5.2.1",
 				"css-shorthand-properties": "^1.1.1",
 				"css-value": "^0.0.1",
-				"devtools": "7.35.0",
+				"devtools": "7.40.0",
 				"devtools-protocol": "^0.0.1260888",
 				"fs-extra": "^11.1.1",
 				"grapheme-splitter": "^1.0.2",
@@ -13821,7 +13465,42 @@
 				"resq": "^1.9.1",
 				"rgb2hex": "0.2.5",
 				"serialize-error": "^8.0.0",
-				"webdriver": "7.33.0"
+				"webdriver": "7.40.0"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/webdriverio/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/webdriverio/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+			"dev": true,
+			"dependencies": {
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
 			},
 			"engines": {
 				"node": ">=12.0.0"
@@ -13918,9 +13597,9 @@
 			}
 		},
 		"node_modules/workerpool": {
-			"version": "6.2.1",
-			"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
-			"integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
+			"version": "6.5.1",
+			"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz",
+			"integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==",
 			"dev": true
 		},
 		"node_modules/wrap-ansi": {
@@ -14052,9 +13731,9 @@
 			}
 		},
 		"node_modules/yargs-parser": {
-			"version": "20.2.4",
-			"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
-			"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+			"version": "20.2.9",
+			"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+			"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
 			"dev": true,
 			"engines": {
 				"node": ">=10"
@@ -14349,71 +14028,14 @@
 			}
 		},
 		"@babel/code-frame": {
-			"version": "7.22.13",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
-			"integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+			"version": "7.26.2",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+			"integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
 			"dev": true,
 			"requires": {
-				"@babel/highlight": "^7.22.13",
-				"chalk": "^2.4.2"
-			},
-			"dependencies": {
-				"ansi-styles": {
-					"version": "3.2.1",
-					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-					"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-					"dev": true,
-					"requires": {
-						"color-convert": "^1.9.0"
-					}
-				},
-				"chalk": {
-					"version": "2.4.2",
-					"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-					"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-					"dev": true,
-					"requires": {
-						"ansi-styles": "^3.2.1",
-						"escape-string-regexp": "^1.0.5",
-						"supports-color": "^5.3.0"
-					}
-				},
-				"color-convert": {
-					"version": "1.9.3",
-					"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-					"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-					"dev": true,
-					"requires": {
-						"color-name": "1.1.3"
-					}
-				},
-				"color-name": {
-					"version": "1.1.3",
-					"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-					"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-					"dev": true
-				},
-				"escape-string-regexp": {
-					"version": "1.0.5",
-					"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-					"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-					"dev": true
-				},
-				"has-flag": {
-					"version": "3.0.0",
-					"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-					"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-					"dev": true
-				},
-				"supports-color": {
-					"version": "5.5.0",
-					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-					"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-					"dev": true,
-					"requires": {
-						"has-flag": "^3.0.0"
-					}
-				}
+				"@babel/helper-validator-identifier": "^7.25.9",
+				"js-tokens": "^4.0.0",
+				"picocolors": "^1.0.0"
 			}
 		},
 		"@babel/compat-data": {
@@ -14558,9 +14180,9 @@
 			}
 		},
 		"@babel/helper-string-parser": {
-			"version": "7.22.5",
-			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
-			"integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+			"version": "7.25.9",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+			"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
 			"dev": true
 		},
 		"@babel/helper-validator-identifier": {
@@ -14576,91 +14198,24 @@
 			"dev": true
 		},
 		"@babel/helpers": {
-			"version": "7.23.2",
-			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz",
-			"integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==",
+			"version": "7.26.10",
+			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz",
+			"integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==",
 			"dev": true,
 			"requires": {
-				"@babel/template": "^7.22.15",
-				"@babel/traverse": "^7.23.2",
-				"@babel/types": "^7.23.0"
+				"@babel/template": "^7.26.9",
+				"@babel/types": "^7.26.10"
 			}
 		},
-		"@babel/highlight": {
-			"version": "7.22.20",
-			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
-			"integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+		"@babel/parser": {
+			"version": "7.26.10",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz",
+			"integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==",
 			"dev": true,
 			"requires": {
-				"@babel/helper-validator-identifier": "^7.22.20",
-				"chalk": "^2.4.2",
-				"js-tokens": "^4.0.0"
-			},
-			"dependencies": {
-				"ansi-styles": {
-					"version": "3.2.1",
-					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-					"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-					"dev": true,
-					"requires": {
-						"color-convert": "^1.9.0"
-					}
-				},
-				"chalk": {
-					"version": "2.4.2",
-					"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-					"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-					"dev": true,
-					"requires": {
-						"ansi-styles": "^3.2.1",
-						"escape-string-regexp": "^1.0.5",
-						"supports-color": "^5.3.0"
-					}
-				},
-				"color-convert": {
-					"version": "1.9.3",
-					"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-					"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-					"dev": true,
-					"requires": {
-						"color-name": "1.1.3"
-					}
-				},
-				"color-name": {
-					"version": "1.1.3",
-					"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-					"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-					"dev": true
-				},
-				"escape-string-regexp": {
-					"version": "1.0.5",
-					"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-					"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-					"dev": true
-				},
-				"has-flag": {
-					"version": "3.0.0",
-					"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-					"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-					"dev": true
-				},
-				"supports-color": {
-					"version": "5.5.0",
-					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-					"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-					"dev": true,
-					"requires": {
-						"has-flag": "^3.0.0"
-					}
-				}
+				"@babel/types": "^7.26.10"
 			}
 		},
-		"@babel/parser": {
-			"version": "7.23.0",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
-			"integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
-			"dev": true
-		},
 		"@babel/plugin-syntax-async-generators": {
 			"version": "7.8.4",
 			"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
@@ -14788,14 +14343,14 @@
 			}
 		},
 		"@babel/template": {
-			"version": "7.22.15",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
-			"integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+			"version": "7.26.9",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz",
+			"integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==",
 			"dev": true,
 			"requires": {
-				"@babel/code-frame": "^7.22.13",
-				"@babel/parser": "^7.22.15",
-				"@babel/types": "^7.22.15"
+				"@babel/code-frame": "^7.26.2",
+				"@babel/parser": "^7.26.9",
+				"@babel/types": "^7.26.9"
 			}
 		},
 		"@babel/traverse": {
@@ -14825,14 +14380,13 @@
 			}
 		},
 		"@babel/types": {
-			"version": "7.23.0",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
-			"integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
+			"version": "7.26.10",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz",
+			"integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==",
 			"dev": true,
 			"requires": {
-				"@babel/helper-string-parser": "^7.22.5",
-				"@babel/helper-validator-identifier": "^7.22.20",
-				"to-fast-properties": "^2.0.0"
+				"@babel/helper-string-parser": "^7.25.9",
+				"@babel/helper-validator-identifier": "^7.25.9"
 			}
 		},
 		"@bcoe/v8-coverage": {
@@ -14842,16 +14396,16 @@
 			"dev": true
 		},
 		"@csstools/css-parser-algorithms": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.2.tgz",
-			"integrity": "sha512-6tC/MnlEvs5suR4Ahef4YlBccJDHZuxGsAlxXmybWjZ5jPxlzLSMlRZ9mVHSRvlD+CmtE7+hJ+UQbfXrws/rUQ==",
+			"version": "3.0.4",
+			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
+			"integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==",
 			"dev": true,
 			"requires": {}
 		},
 		"@csstools/css-tokenizer": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.2.tgz",
-			"integrity": "sha512-IuTRcD53WHsXPCZ6W7ubfGqReTJ9Ra0yRRFmXYP/Re8hFYYfoIYIK4080X5luslVLWimhIeFq0hj09urVMQzTw==",
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz",
+			"integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==",
 			"dev": true
 		},
 		"@csstools/media-query-list-parser": {
@@ -14861,13 +14415,6 @@
 			"dev": true,
 			"requires": {}
 		},
-		"@csstools/selector-specificity": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-4.0.0.tgz",
-			"integrity": "sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==",
-			"dev": true,
-			"requires": {}
-		},
 		"@dual-bundle/import-meta-resolve": {
 			"version": "4.1.0",
 			"resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
@@ -15621,50 +15168,30 @@
 			}
 		},
 		"@stylistic/stylelint-config": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-1.0.1.tgz",
-			"integrity": "sha512-JgFP88HZEyo34k9RpWVdcQJtLPrMxYE58IO3qypXhmvE/NmZohj+xjDtQ8UfaarnYsLecnldw57/GHum07Ctdw==",
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-2.0.0.tgz",
+			"integrity": "sha512-8J4YAxggy2Nzkb8KJIOLbtMXTPZ5gpKVmyhiiuKEUgCl9XFND5lM0e/ZZBMGEYZ68h5qcsS/jgg1wh235erRAw==",
 			"dev": true,
 			"requires": {
-				"@stylistic/stylelint-plugin": "^2.0.0"
+				"@stylistic/stylelint-plugin": "^3.0.0"
 			}
 		},
 		"@stylistic/stylelint-plugin": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.0.0.tgz",
-			"integrity": "sha512-dHKuT6PGd1WGZLOTuozAM7GdQzdmlmnFXYzvV1jYJXXpcCpV/OJ3+n8TXpMkoOeKHpJydY43EOoZTO1W/FOA4Q==",
+			"version": "3.1.1",
+			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.1.tgz",
+			"integrity": "sha512-XagAHHIa528EvyGybv8EEYGK5zrVW74cHpsjhtovVATbhDRuJYfE+X4HCaAieW9lCkwbX6L+X0I4CiUG3w/hFw==",
 			"dev": true,
 			"requires": {
-				"@csstools/css-parser-algorithms": "^2.3.2",
-				"@csstools/css-tokenizer": "^2.2.1",
-				"@csstools/media-query-list-parser": "^2.1.5",
+				"@csstools/css-parser-algorithms": "^3.0.1",
+				"@csstools/css-tokenizer": "^3.0.1",
+				"@csstools/media-query-list-parser": "^3.0.1",
 				"is-plain-object": "^5.0.0",
-				"postcss-selector-parser": "^6.0.13",
+				"postcss-selector-parser": "^6.1.2",
 				"postcss-value-parser": "^4.2.0",
 				"style-search": "^0.1.0",
-				"stylelint": "^16.0.2"
+				"stylelint": "^16.8.2"
 			},
 			"dependencies": {
-				"@csstools/css-parser-algorithms": {
-					"version": "2.7.1",
-					"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz",
-					"integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==",
-					"dev": true,
-					"requires": {}
-				},
-				"@csstools/css-tokenizer": {
-					"version": "2.4.1",
-					"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz",
-					"integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==",
-					"dev": true
-				},
-				"@csstools/media-query-list-parser": {
-					"version": "2.1.13",
-					"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz",
-					"integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==",
-					"dev": true,
-					"requires": {}
-				},
 				"is-plain-object": {
 					"version": "5.0.0",
 					"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
@@ -16109,9 +15636,9 @@
 			"dev": true
 		},
 		"@wdio/cli": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.36.0.tgz",
-			"integrity": "sha512-vYL2tB9x7vjK3N7oRFJbUKsU4y04wqk7DQXdbmgBzC9Em4u9yvFxvtiDMCSC8kvFowiIhMtEFk8SQacL8pNszA==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.40.0.tgz",
+			"integrity": "sha512-M0txYEqqamBvJe4FEuqwWq1jd879sElF047BXSv2GRu4R1/iEBPYJHjn9KuL60Fkkpp/L1NMHTl7gW9i445edQ==",
 			"dev": true,
 			"requires": {
 				"@types/ejs": "^3.0.5",
@@ -16122,11 +15649,11 @@
 				"@types/lodash.union": "^4.6.6",
 				"@types/node": "^18.0.0",
 				"@types/recursive-readdir": "^2.2.0",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"async-exit-hook": "^2.0.1",
 				"chalk": "^4.0.0",
 				"chokidar": "^3.0.0",
@@ -16139,39 +15666,97 @@
 				"lodash.union": "^4.6.0",
 				"mkdirp": "^3.0.0",
 				"recursive-readdir": "^2.2.2",
-				"webdriverio": "7.36.0",
+				"webdriverio": "7.40.0",
 				"yargs": "^17.0.0",
 				"yarn-install": "^1.0.0"
+			},
+			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				}
 			}
 		},
 		"@wdio/config": {
-			"version": "7.33.0",
-			"resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.33.0.tgz",
-			"integrity": "sha512-SaCZNKrDtBghf7ujyaxTiU4pBW+1Kms32shSoXpJ/wFop6/MiA7nb19qpUPoJtEDw5/NOKevUKz8nBMBXphiew==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.40.0.tgz",
+			"integrity": "sha512-ayQELXyxa+k9/2a509F5a1oTsCa/w8D1nDrd+hzm+1mYb4Te2lceWCCzm+atGKkMpvjLH4GvhrEBYLh3rIWk2A==",
 			"dev": true,
 			"requires": {
 				"@types/glob": "^8.1.0",
 				"@wdio/logger": "7.26.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"deepmerge": "^4.0.0",
 				"glob": "^8.0.3"
+			},
+			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				}
 			}
 		},
 		"@wdio/local-runner": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.36.0.tgz",
-			"integrity": "sha512-01uDD4O5RbtuFE0F7PmtZjYuqCfJ2HvP1b+q8OUm5oINoaQ7djSkHCM01UKu5Rn5I1cQa0vSr5r12puD5Gp+Yw==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.40.0.tgz",
+			"integrity": "sha512-OBuN7TlFhbPUH7Wbh2S8OKZOjeW4rHXOfuGzJfaKkzjHje2Dqide/uC3Gd25MwmzgZcVkOo9DUYiGFCHXc44ug==",
 			"dev": true,
 			"requires": {
 				"@types/stream-buffers": "^3.0.3",
 				"@wdio/logger": "7.26.0",
-				"@wdio/repl": "7.33.0",
-				"@wdio/runner": "7.36.0",
-				"@wdio/types": "7.33.0",
+				"@wdio/repl": "7.40.0",
+				"@wdio/runner": "7.40.0",
+				"@wdio/types": "7.40.0",
 				"async-exit-hook": "^2.0.1",
 				"split2": "^4.0.0",
 				"stream-buffers": "^3.0.2"
+			},
+			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				}
 			}
 		},
 		"@wdio/logger": {
@@ -16207,12 +15792,35 @@
 			"dev": true
 		},
 		"@wdio/repl": {
-			"version": "7.33.0",
-			"resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.33.0.tgz",
-			"integrity": "sha512-17KM9NCg+UVpZNbS8koT/917vklF5M8IQnw0kGwmJEo444ifTMxmLwQymbS2ovQKAKAQxlfdM7bpqMeI15kzsQ==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.40.0.tgz",
+			"integrity": "sha512-6tzT7lOMxBwdqMVdW4QxlzrQadGPta4HedFcJo4LyRz9PkXPTF68qeIGs0GyZvy/5AqspNWaAJvIR7f3T3tCyw==",
 			"dev": true,
 			"requires": {
-				"@wdio/utils": "7.33.0"
+				"@wdio/utils": "7.40.0"
+			},
+			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				}
 			}
 		},
 		"@wdio/reporter": {
@@ -16263,19 +15871,42 @@
 			}
 		},
 		"@wdio/runner": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.36.0.tgz",
-			"integrity": "sha512-EU/0XprH6UEqaYarxuSSLYgsxC6/jLHE7Wj/5FIJyFwdx//Ip8DnTXzbJylskeWX2NkCfJH2VerGSo423c98+Q==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.40.0.tgz",
+			"integrity": "sha512-3dGn8sU9Oc0kTq+hcxNSqkF1acqiTAzamyNWsWXAX7V0FOfZxp0wmD9aMqY+sVT6g8mUE5aePT1ydONE5o+6QA==",
 			"dev": true,
 			"requires": {
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"deepmerge": "^4.0.0",
 				"gaze": "^1.1.2",
-				"webdriver": "7.33.0",
-				"webdriverio": "7.36.0"
+				"webdriver": "7.40.0",
+				"webdriverio": "7.40.0"
+			},
+			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				}
 			}
 		},
 		"@wdio/spec-reporter": {
@@ -16391,9 +16022,9 @@
 			}
 		},
 		"ansi-colors": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
-			"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+			"integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
 			"dev": true
 		},
 		"ansi-escapes": {
@@ -17649,12 +17280,12 @@
 			}
 		},
 		"css-tree": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.0.tgz",
-			"integrity": "sha512-o88DVQ6GzsABn1+6+zo2ct801dBO5OASVyxbbvA2W20ue2puSh/VOuqUj90eUeMSX/xqGqBmOKiRQN7tJOuBXw==",
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+			"integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
 			"dev": true,
 			"requires": {
-				"mdn-data": "2.10.0",
+				"mdn-data": "2.12.2",
 				"source-map-js": "^1.0.1"
 			}
 		},
@@ -17801,18 +17432,18 @@
 			"dev": true
 		},
 		"devtools": {
-			"version": "7.35.0",
-			"resolved": "https://registry.npmjs.org/devtools/-/devtools-7.35.0.tgz",
-			"integrity": "sha512-7HMZMcJSCK/PaBCWVs4n4ZhtBNdUQj10iPwXvj/JDkqPreEXN/XW9GJAoMuLPFmCEKfxe+LrIbgs8ocGJ6rp/A==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/devtools/-/devtools-7.40.0.tgz",
+			"integrity": "sha512-hiDPCNG/mpD+bSgegxoe5nwyxWav+QpIvT+7H9D0dUwjB0q04OF473qGflSQ1QpGig6l4qG92tA7dVnLsdP75A==",
 			"dev": true,
 			"requires": {
 				"@types/node": "^18.0.0",
 				"@types/ua-parser-js": "^0.7.33",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"chrome-launcher": "^0.15.0",
 				"edge-paths": "^2.1.0",
 				"puppeteer-core": "13.1.3",
@@ -17821,6 +17452,27 @@
 				"uuid": "^9.0.0"
 			},
 			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				},
 				"debug": {
 					"version": "4.3.2",
 					"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
@@ -17897,9 +17549,9 @@
 			"dev": true
 		},
 		"diff": {
-			"version": "5.1.0",
-			"resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
-			"integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
+			"version": "5.2.0",
+			"resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+			"integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
 			"dev": true
 		},
 		"diff-sequences": {
@@ -17935,13 +17587,13 @@
 			}
 		},
 		"doiuse": {
-			"version": "6.0.3",
-			"resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.3.tgz",
-			"integrity": "sha512-cgu7al1yxHpRS+Q+ru3LQYUDttoPBGYgY7JunTdr0VeFMjBAwXVHTyZxn48ZOuxpBB30W52kOK6mwbduuqNboQ==",
+			"version": "6.0.5",
+			"resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.5.tgz",
+			"integrity": "sha512-ljuf9ndGqKST0GlPAYyCg04hbQAeR1xIIWVDjQaDDkoTY/Y1Vb+8FNoy6NuVuJIEEKe/nKUH8NRWjG7JJxZ9Eg==",
 			"dev": true,
 			"requires": {
-				"browserslist": "^4.23.3",
-				"caniuse-lite": "^1.0.30001662",
+				"browserslist": "^4.24.0",
+				"caniuse-lite": "^1.0.30001669",
 				"css-tokenize": "^1.0.1",
 				"duplexify": "^4.1.3",
 				"multimatch": "^5.0.0",
@@ -17985,9 +17637,9 @@
 			}
 		},
 		"domutils": {
-			"version": "3.1.0",
-			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
-			"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+			"version": "3.2.2",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
+			"integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
 			"dev": true,
 			"requires": {
 				"dom-serializer": "^2.0.0",
@@ -18785,9 +18437,9 @@
 			"dev": true
 		},
 		"fast-uri": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz",
-			"integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==",
+			"version": "3.0.6",
+			"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz",
+			"integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==",
 			"dev": true
 		},
 		"fastest-levenshtein": {
@@ -21321,9 +20973,9 @@
 			"dev": true
 		},
 		"known-css-properties": {
-			"version": "0.34.0",
-			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz",
-			"integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==",
+			"version": "0.35.0",
+			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz",
+			"integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==",
 			"dev": true
 		},
 		"ky": {
@@ -21673,9 +21325,9 @@
 			"dev": true
 		},
 		"mdn-data": {
-			"version": "2.10.0",
-			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.10.0.tgz",
-			"integrity": "sha512-qq7C3EtK3yJXMwz1zAab65pjl+UhohqMOctTgcqjLOWABqmwj+me02LSsCuEUxnst9X1lCBpoE0WArGKgdGDzw==",
+			"version": "2.12.2",
+			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+			"integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
 			"dev": true
 		},
 		"memorystream": {
@@ -21785,34 +21437,42 @@
 			"dev": true
 		},
 		"mocha": {
-			"version": "10.2.0",
-			"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz",
-			"integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==",
+			"version": "10.8.2",
+			"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
+			"integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==",
 			"dev": true,
 			"requires": {
-				"ansi-colors": "4.1.1",
-				"browser-stdout": "1.3.1",
-				"chokidar": "3.5.3",
-				"debug": "4.3.4",
-				"diff": "5.0.0",
-				"escape-string-regexp": "4.0.0",
-				"find-up": "5.0.0",
-				"glob": "7.2.0",
-				"he": "1.2.0",
-				"js-yaml": "4.1.0",
-				"log-symbols": "4.1.0",
-				"minimatch": "5.0.1",
-				"ms": "2.1.3",
-				"nanoid": "3.3.3",
-				"serialize-javascript": "6.0.0",
-				"strip-json-comments": "3.1.1",
-				"supports-color": "8.1.1",
-				"workerpool": "6.2.1",
-				"yargs": "16.2.0",
-				"yargs-parser": "20.2.4",
-				"yargs-unparser": "2.0.0"
+				"ansi-colors": "^4.1.3",
+				"browser-stdout": "^1.3.1",
+				"chokidar": "^3.5.3",
+				"debug": "^4.3.5",
+				"diff": "^5.2.0",
+				"escape-string-regexp": "^4.0.0",
+				"find-up": "^5.0.0",
+				"glob": "^8.1.0",
+				"he": "^1.2.0",
+				"js-yaml": "^4.1.0",
+				"log-symbols": "^4.1.0",
+				"minimatch": "^5.1.6",
+				"ms": "^2.1.3",
+				"serialize-javascript": "^6.0.2",
+				"strip-json-comments": "^3.1.1",
+				"supports-color": "^8.1.1",
+				"workerpool": "^6.5.1",
+				"yargs": "^16.2.0",
+				"yargs-parser": "^20.2.9",
+				"yargs-unparser": "^2.0.0"
 			},
 			"dependencies": {
+				"brace-expansion": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+					"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+					"dev": true,
+					"requires": {
+						"balanced-match": "^1.0.0"
+					}
+				},
 				"cliui": {
 					"version": "7.0.4",
 					"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@@ -21824,55 +21484,22 @@
 						"wrap-ansi": "^7.0.0"
 					}
 				},
-				"diff": {
-					"version": "5.0.0",
-					"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
-					"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
-					"dev": true
-				},
-				"glob": {
-					"version": "7.2.0",
-					"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
-					"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+				"debug": {
+					"version": "4.4.0",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+					"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
 					"dev": true,
 					"requires": {
-						"fs.realpath": "^1.0.0",
-						"inflight": "^1.0.4",
-						"inherits": "2",
-						"minimatch": "^3.0.4",
-						"once": "^1.3.0",
-						"path-is-absolute": "^1.0.0"
-					},
-					"dependencies": {
-						"minimatch": {
-							"version": "3.1.2",
-							"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
-							"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-							"dev": true,
-							"requires": {
-								"brace-expansion": "^1.1.7"
-							}
-						}
+						"ms": "^2.1.3"
 					}
 				},
 				"minimatch": {
-					"version": "5.0.1",
-					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
-					"integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+					"version": "5.1.6",
+					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+					"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
 					"dev": true,
 					"requires": {
 						"brace-expansion": "^2.0.1"
-					},
-					"dependencies": {
-						"brace-expansion": {
-							"version": "2.0.1",
-							"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-							"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-							"dev": true,
-							"requires": {
-								"balanced-match": "^1.0.0"
-							}
-						}
 					}
 				},
 				"ms": {
@@ -21943,12 +21570,6 @@
 				"semver": "^7.3.8"
 			}
 		},
-		"nanoid": {
-			"version": "3.3.3",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
-			"integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
-			"dev": true
-		},
 		"natural-compare": {
 			"version": "1.4.0",
 			"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -22453,9 +22074,9 @@
 			"dev": true
 		},
 		"picocolors": {
-			"version": "1.1.0",
-			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
-			"integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
+			"version": "1.1.1",
+			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+			"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
 			"dev": true
 		},
 		"picomatch": {
@@ -22552,40 +22173,40 @@
 			"dev": true
 		},
 		"postcss": {
-			"version": "8.4.47",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
-			"integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
+			"version": "8.5.3",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+			"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
 			"dev": true,
 			"requires": {
-				"nanoid": "^3.3.7",
-				"picocolors": "^1.1.0",
+				"nanoid": "^3.3.8",
+				"picocolors": "^1.1.1",
 				"source-map-js": "^1.2.1"
 			},
 			"dependencies": {
 				"nanoid": {
-					"version": "3.3.7",
-					"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
-					"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+					"version": "3.3.9",
+					"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz",
+					"integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==",
 					"dev": true
 				}
 			}
 		},
 		"postcss-html": {
-			"version": "1.6.0",
-			"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.6.0.tgz",
-			"integrity": "sha512-OWgQ9/Pe23MnNJC0PL4uZp8k0EDaUvqpJFSiwFxOLClAhmD7UEisyhO3x5hVsD4xFrjReVTXydlrMes45dJ71w==",
+			"version": "1.7.0",
+			"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.7.0.tgz",
+			"integrity": "sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==",
 			"dev": true,
 			"requires": {
 				"htmlparser2": "^8.0.0",
-				"js-tokens": "^8.0.0",
+				"js-tokens": "^9.0.0",
 				"postcss": "^8.4.0",
 				"postcss-safe-parser": "^6.0.0"
 			},
 			"dependencies": {
 				"js-tokens": {
-					"version": "8.0.3",
-					"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz",
-					"integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==",
+					"version": "9.0.1",
+					"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
+					"integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
 					"dev": true
 				},
 				"postcss-safe-parser": {
@@ -23357,9 +22978,9 @@
 			}
 		},
 		"serialize-javascript": {
-			"version": "6.0.0",
-			"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
-			"integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+			"version": "6.0.2",
+			"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+			"integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
 			"dev": true,
 			"requires": {
 				"randombytes": "^2.1.0"
@@ -23666,21 +23287,21 @@
 			"dev": true
 		},
 		"stylelint": {
-			"version": "16.10.0",
-			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.10.0.tgz",
-			"integrity": "sha512-z/8X2rZ52dt2c0stVwI9QL2AFJhLhbPkyfpDFcizs200V/g7v+UYY6SNcB9hKOLcDDX/yGLDsY/pX08sLkz9xQ==",
+			"version": "16.12.0",
+			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.12.0.tgz",
+			"integrity": "sha512-F8zZ3L/rBpuoBZRvI4JVT20ZanPLXfQLzMOZg1tzPflRVh9mKpOZ8qcSIhh1my3FjAjZWG4T2POwGnmn6a6hbg==",
 			"dev": true,
 			"requires": {
-				"@csstools/css-parser-algorithms": "^3.0.1",
-				"@csstools/css-tokenizer": "^3.0.1",
-				"@csstools/media-query-list-parser": "^3.0.1",
-				"@csstools/selector-specificity": "^4.0.0",
+				"@csstools/css-parser-algorithms": "^3.0.4",
+				"@csstools/css-tokenizer": "^3.0.3",
+				"@csstools/media-query-list-parser": "^4.0.2",
+				"@csstools/selector-specificity": "^5.0.0",
 				"@dual-bundle/import-meta-resolve": "^4.1.0",
 				"balanced-match": "^2.0.0",
 				"colord": "^2.9.3",
 				"cosmiconfig": "^9.0.0",
 				"css-functions-list": "^3.2.3",
-				"css-tree": "^3.0.0",
+				"css-tree": "^3.0.1",
 				"debug": "^4.3.7",
 				"fast-glob": "^3.3.2",
 				"fastest-levenshtein": "^1.0.16",
@@ -23692,25 +23313,39 @@
 				"ignore": "^6.0.2",
 				"imurmurhash": "^0.1.4",
 				"is-plain-object": "^5.0.0",
-				"known-css-properties": "^0.34.0",
+				"known-css-properties": "^0.35.0",
 				"mathml-tag-names": "^2.1.3",
 				"meow": "^13.2.0",
 				"micromatch": "^4.0.8",
 				"normalize-path": "^3.0.0",
-				"picocolors": "^1.0.1",
-				"postcss": "^8.4.47",
+				"picocolors": "^1.1.1",
+				"postcss": "^8.4.49",
 				"postcss-resolve-nested-selector": "^0.1.6",
 				"postcss-safe-parser": "^7.0.1",
-				"postcss-selector-parser": "^6.1.2",
+				"postcss-selector-parser": "^7.0.0",
 				"postcss-value-parser": "^4.2.0",
 				"resolve-from": "^5.0.0",
 				"string-width": "^4.2.3",
 				"supports-hyperlinks": "^3.1.0",
 				"svg-tags": "^1.0.0",
-				"table": "^6.8.2",
+				"table": "^6.9.0",
 				"write-file-atomic": "^5.0.1"
 			},
 			"dependencies": {
+				"@csstools/media-query-list-parser": {
+					"version": "4.0.2",
+					"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz",
+					"integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==",
+					"dev": true,
+					"requires": {}
+				},
+				"@csstools/selector-specificity": {
+					"version": "5.0.0",
+					"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+					"integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
+					"dev": true,
+					"requires": {}
+				},
 				"balanced-match": {
 					"version": "2.0.0",
 					"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
@@ -23783,6 +23418,16 @@
 					"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
 					"dev": true
 				},
+				"postcss-selector-parser": {
+					"version": "7.1.0",
+					"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+					"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
+					"dev": true,
+					"requires": {
+						"cssesc": "^3.0.0",
+						"util-deprecate": "^1.0.2"
+					}
+				},
 				"resolve-from": {
 					"version": "5.0.0",
 					"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
@@ -23817,229 +23462,35 @@
 			}
 		},
 		"stylelint-config-recommended": {
-			"version": "14.0.0",
-			"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz",
-			"integrity": "sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==",
+			"version": "14.0.1",
+			"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz",
+			"integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==",
 			"dev": true,
 			"requires": {}
 		},
 		"stylelint-config-wikimedia": {
-			"version": "0.17.2",
-			"resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.17.2.tgz",
-			"integrity": "sha512-cc3PYhe1O/GTgsMOp+Ri3ru579YBbZ3Me0oU7xNb06n4iwyXYPz8qO5G4iQ13UH19UW2NIS8Tk0goPRrJ1RAfw==",
+			"version": "0.18.0",
+			"resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.18.0.tgz",
+			"integrity": "sha512-Lr45NIe7pG8i7BPcMc6EddO1pRK8/KNG8gp4o/oOG1Ez10hglJuJb/QT17BlzX8NPkhtP2KdY63NS2f/Wcj6Ww==",
 			"dev": true,
 			"requires": {
-				"@stylistic/stylelint-config": "1.0.1",
-				"@stylistic/stylelint-plugin": "2.0.0",
+				"@stylistic/stylelint-config": "2.0.0",
+				"@stylistic/stylelint-plugin": "3.1.1",
 				"browserslist-config-wikimedia": "0.7.0",
-				"postcss-html": "1.6.0",
+				"postcss-html": "1.7.0",
 				"postcss-less": "6.0.0",
-				"stylelint": "16.2.0",
-				"stylelint-config-recommended": "14.0.0",
-				"stylelint-no-unsupported-browser-features": "8.0.1"
-			},
-			"dependencies": {
-				"@csstools/css-parser-algorithms": {
-					"version": "2.7.1",
-					"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz",
-					"integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==",
-					"dev": true,
-					"requires": {}
-				},
-				"@csstools/css-tokenizer": {
-					"version": "2.4.1",
-					"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz",
-					"integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==",
-					"dev": true
-				},
-				"@csstools/media-query-list-parser": {
-					"version": "2.1.13",
-					"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz",
-					"integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==",
-					"dev": true,
-					"requires": {}
-				},
-				"@csstools/selector-specificity": {
-					"version": "3.1.1",
-					"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz",
-					"integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==",
-					"dev": true,
-					"requires": {}
-				},
-				"ansi-regex": {
-					"version": "6.1.0",
-					"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
-					"integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
-					"dev": true
-				},
-				"balanced-match": {
-					"version": "2.0.0",
-					"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
-					"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
-					"dev": true
-				},
-				"css-tree": {
-					"version": "2.3.1",
-					"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
-					"integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
-					"dev": true,
-					"requires": {
-						"mdn-data": "2.0.30",
-						"source-map-js": "^1.0.1"
-					}
-				},
-				"file-entry-cache": {
-					"version": "8.0.0",
-					"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
-					"integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
-					"dev": true,
-					"requires": {
-						"flat-cache": "^4.0.0"
-					}
-				},
-				"flat-cache": {
-					"version": "4.0.1",
-					"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
-					"integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
-					"dev": true,
-					"requires": {
-						"flatted": "^3.2.9",
-						"keyv": "^4.5.4"
-					}
-				},
-				"global-modules": {
-					"version": "2.0.0",
-					"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
-					"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
-					"dev": true,
-					"requires": {
-						"global-prefix": "^3.0.0"
-					}
-				},
-				"global-prefix": {
-					"version": "3.0.0",
-					"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
-					"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
-					"dev": true,
-					"requires": {
-						"ini": "^1.3.5",
-						"kind-of": "^6.0.2",
-						"which": "^1.3.1"
-					}
-				},
-				"is-plain-object": {
-					"version": "5.0.0",
-					"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
-					"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
-					"dev": true
-				},
-				"known-css-properties": {
-					"version": "0.29.0",
-					"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
-					"integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
-					"dev": true
-				},
-				"mdn-data": {
-					"version": "2.0.30",
-					"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
-					"integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
-					"dev": true
-				},
-				"resolve-from": {
-					"version": "5.0.0",
-					"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
-					"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
-					"dev": true
-				},
-				"signal-exit": {
-					"version": "4.1.0",
-					"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
-					"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
-					"dev": true
-				},
-				"strip-ansi": {
-					"version": "7.1.0",
-					"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
-					"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
-					"dev": true,
-					"requires": {
-						"ansi-regex": "^6.0.1"
-					}
-				},
-				"stylelint": {
-					"version": "16.2.0",
-					"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.0.tgz",
-					"integrity": "sha512-gwqU5AkIb52wrAzzn+359S3NIJDMl02TXLUaV2tzA/L6jUdpTwNt+MCxHlc8+Hb2bUHlYVo92YeSIryF2gJthA==",
-					"dev": true,
-					"requires": {
-						"@csstools/css-parser-algorithms": "^2.5.0",
-						"@csstools/css-tokenizer": "^2.2.3",
-						"@csstools/media-query-list-parser": "^2.1.7",
-						"@csstools/selector-specificity": "^3.0.1",
-						"balanced-match": "^2.0.0",
-						"colord": "^2.9.3",
-						"cosmiconfig": "^9.0.0",
-						"css-functions-list": "^3.2.1",
-						"css-tree": "^2.3.1",
-						"debug": "^4.3.4",
-						"fast-glob": "^3.3.2",
-						"fastest-levenshtein": "^1.0.16",
-						"file-entry-cache": "^8.0.0",
-						"global-modules": "^2.0.0",
-						"globby": "^11.1.0",
-						"globjoin": "^0.1.4",
-						"html-tags": "^3.3.1",
-						"ignore": "^5.3.0",
-						"imurmurhash": "^0.1.4",
-						"is-plain-object": "^5.0.0",
-						"known-css-properties": "^0.29.0",
-						"mathml-tag-names": "^2.1.3",
-						"meow": "^13.1.0",
-						"micromatch": "^4.0.5",
-						"normalize-path": "^3.0.0",
-						"picocolors": "^1.0.0",
-						"postcss": "^8.4.33",
-						"postcss-resolve-nested-selector": "^0.1.1",
-						"postcss-safe-parser": "^7.0.0",
-						"postcss-selector-parser": "^6.0.15",
-						"postcss-value-parser": "^4.2.0",
-						"resolve-from": "^5.0.0",
-						"string-width": "^4.2.3",
-						"strip-ansi": "^7.1.0",
-						"supports-hyperlinks": "^3.0.0",
-						"svg-tags": "^1.0.0",
-						"table": "^6.8.1",
-						"write-file-atomic": "^5.0.1"
-					}
-				},
-				"which": {
-					"version": "1.3.1",
-					"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-					"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-					"dev": true,
-					"requires": {
-						"isexe": "^2.0.0"
-					}
-				},
-				"write-file-atomic": {
-					"version": "5.0.1",
-					"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
-					"integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
-					"dev": true,
-					"requires": {
-						"imurmurhash": "^0.1.4",
-						"signal-exit": "^4.0.1"
-					}
-				}
+				"stylelint": "16.12.0",
+				"stylelint-config-recommended": "14.0.1",
+				"stylelint-no-unsupported-browser-features": "8.0.2"
 			}
 		},
 		"stylelint-no-unsupported-browser-features": {
-			"version": "8.0.1",
-			"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-8.0.1.tgz",
-			"integrity": "sha512-tc8Xn5DaqJhxTmbA4H8gZbYdAz027NfuSZv5+cVieQb7BtBrF/1/iKYdpcGwXPl3GtqkQrisiXuGqKkKnzWcLw==",
+			"version": "8.0.2",
+			"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-8.0.2.tgz",
+			"integrity": "sha512-4PY2qJ3ZTEje9RgGfaQ82eJoPioXxs6hazeKpji/wzLNVzTX2wd4b0Ds3ewdLkH3ID+o63IInuTquU2MNJO3YQ==",
 			"dev": true,
 			"requires": {
-				"doiuse": "^6.0.2",
+				"doiuse": "^6.0.5",
 				"postcss": "^8.4.32"
 			}
 		},
@@ -24149,9 +23600,9 @@
 			"dev": true
 		},
 		"table": {
-			"version": "6.8.2",
-			"resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz",
-			"integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==",
+			"version": "6.9.0",
+			"resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz",
+			"integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==",
 			"dev": true,
 			"requires": {
 				"ajv": "^8.0.1",
@@ -24266,12 +23717,6 @@
 			"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
 			"dev": true
 		},
-		"to-fast-properties": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-			"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
-			"dev": true
-		},
 		"to-regex-range": {
 			"version": "5.0.1",
 			"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -24410,9 +23855,9 @@
 			"peer": true
 		},
 		"ua-parser-js": {
-			"version": "1.0.39",
-			"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz",
-			"integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==",
+			"version": "1.0.40",
+			"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz",
+			"integrity": "sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==",
 			"dev": true
 		},
 		"unbox-primitive": {
@@ -24587,41 +24032,64 @@
 			"requires": {}
 		},
 		"webdriver": {
-			"version": "7.33.0",
-			"resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.33.0.tgz",
-			"integrity": "sha512-cyMRAVUHgQhEBHojOeNet2e8GkfyvvjpioNCPcF6qUtT+URdagr8Mh0t4Fs+Jr0tpuMqFnw70xZexAcV/6I/jg==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.40.0.tgz",
+			"integrity": "sha512-CKi3cDWgNVE/ibcsBfdtA+pQVeZ4oYlecLlwemulVxJdgr4l5bv+nXuoIhnYeVb6aAI4naK772vmWQ0XuRYhDQ==",
 			"dev": true,
 			"requires": {
 				"@types/node": "^18.0.0",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"got": "^11.0.2",
 				"ky": "0.30.0",
 				"lodash.merge": "^4.6.1"
+			},
+			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				}
 			}
 		},
 		"webdriverio": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.36.0.tgz",
-			"integrity": "sha512-OTYmKBF7eFKBX39ojUIEzw7AlE1ZRJiFoMTtEQaPMuPzZCP2jUBq6Ey38nuZrYXLkXn3/le9a14pNnKSM0n56w==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.40.0.tgz",
+			"integrity": "sha512-UswBOjpWwk7ziGi9beZGX/XFrp4m1Ws0ni5HI9mzAkOlpKKKWhnX6i95pWQV6sPF4Urv4RJf8WXayHhTbzXzdA==",
 			"dev": true,
 			"requires": {
 				"@types/aria-query": "^5.0.0",
 				"@types/node": "^18.0.0",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/repl": "7.33.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/repl": "7.40.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"archiver": "^5.0.0",
 				"aria-query": "^5.2.1",
 				"css-shorthand-properties": "^1.1.1",
 				"css-value": "^0.0.1",
-				"devtools": "7.35.0",
+				"devtools": "7.40.0",
 				"devtools-protocol": "^0.0.1260888",
 				"fs-extra": "^11.1.1",
 				"grapheme-splitter": "^1.0.2",
@@ -24635,9 +24103,30 @@
 				"resq": "^1.9.1",
 				"rgb2hex": "0.2.5",
 				"serialize-error": "^8.0.0",
-				"webdriver": "7.33.0"
+				"webdriver": "7.40.0"
 			},
 			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				},
 				"brace-expansion": {
 					"version": "2.0.1",
 					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -24710,9 +24199,9 @@
 			}
 		},
 		"workerpool": {
-			"version": "6.2.1",
-			"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
-			"integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
+			"version": "6.5.1",
+			"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz",
+			"integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==",
 			"dev": true
 		},
 		"wrap-ansi": {
@@ -24808,9 +24297,9 @@
 			}
 		},
 		"yargs-parser": {
-			"version": "20.2.4",
-			"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
-			"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+			"version": "20.2.9",
+			"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+			"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
 			"dev": true
 		},
 		"yargs-unparser": {
diff --git a/package.json b/package.json
index 1b358d3..dd7263a 100644
--- a/package.json
+++ b/package.json
@@ -44,7 +44,7 @@
 		"jest": "29.7.0",
 		"mocha": "^10.2.0",
 		"npm-run-all": "^4.1.5",
-		"stylelint-config-wikimedia": "0.17.2",
+		"stylelint-config-wikimedia": "0.18.0",
 		"wdio-mediawiki": "2.6.0",
 		"wdio-wikibase": "^6.0.3"
 	},
-- 
2.39.2

$ date
--- stdout ---
Sat Mar 15 04:04:44 UTC 2025

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

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

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

--- end ---
$ git submodule update --init
--- stderr ---
Submodule 'lib/resources/wikibase-api' (https://gerrit.wikimedia.org/r/wikibase/javascript-api) registered for path 'lib/resources/wikibase-api'
Submodule 'view/lib/wikibase-data-model' (https://phabricator.wikimedia.org/source/wikibase-data-model.git) registered for path 'view/lib/wikibase-data-model'
Submodule 'view/lib/wikibase-data-values' (https://phabricator.wikimedia.org/source/datavalues-javascript.git) registered for path 'view/lib/wikibase-data-values'
Submodule 'view/lib/wikibase-data-values-value-view' (https://gerrit.wikimedia.org/r/data-values/value-view) registered for path 'view/lib/wikibase-data-values-value-view'
Submodule 'view/lib/wikibase-serialization' (https://phabricator.wikimedia.org/source/wikibase-serialization.git) registered for path 'view/lib/wikibase-serialization'
Submodule 'view/lib/wikibase-termbox' (https://gerrit.wikimedia.org/r/wikibase/termbox) registered for path 'view/lib/wikibase-termbox'
Cloning into '/src/repo/lib/resources/wikibase-api'...
Cloning into '/src/repo/view/lib/wikibase-data-model'...
Cloning into '/src/repo/view/lib/wikibase-data-values'...
Cloning into '/src/repo/view/lib/wikibase-data-values-value-view'...
Cloning into '/src/repo/view/lib/wikibase-serialization'...
Cloning into '/src/repo/view/lib/wikibase-termbox'...
--- stdout ---
Submodule path 'lib/resources/wikibase-api': checked out '7f076e3534686ab35f7807462539fcef08b6e9f2'
Submodule path 'view/lib/wikibase-data-model': checked out '6b304daeb804591ddc4520925337429ac086515c'
Submodule path 'view/lib/wikibase-data-values': checked out '457733ebe7b0d090a67e2623350be2e4286077fe'
Submodule path 'view/lib/wikibase-data-values-value-view': checked out '0bd65f4e0cd4defdc315e15d462a09e8b6d9bf8f'
Submodule path 'view/lib/wikibase-serialization': checked out 'e9b9a736f19e42497bfe45cb6f323781b00b5023'
Submodule path 'view/lib/wikibase-termbox': checked out '87f5df732da97a7acd29b20bfd4f1aedff509fbf'

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

--- end ---
$ git show-ref refs/heads/master
--- stdout ---
e4d6d9872a2e259434234d1656376741537f7b2a refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@babel/helpers": {
      "name": "@babel/helpers",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1103026,
          "name": "@babel/helpers",
          "dependency": "@babel/helpers",
          "title": "Babel has inefficient RexExp complexity in generated code with .replace when transpiling named capturing groups",
          "url": "https://github.com/advisories/GHSA-968p-4wvh-cqc8",
          "severity": "moderate",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 6.2,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<7.26.10"
        }
      ],
      "effects": [],
      "range": "<7.26.10",
      "nodes": [
        "node_modules/@babel/helpers"
      ],
      "fixAvailable": true
    },
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "high",
      "isDirect": true,
      "via": [
        "webdriverio",
        "yarn-install"
      ],
      "effects": [
        "@wdio/local-runner",
        "@wdio/spec-reporter"
      ],
      "range": "5.4.10 - 8.43.0",
      "nodes": [
        "node_modules/@wdio/cli"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/local-runner": {
      "name": "@wdio/local-runner",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "effects": [],
      "range": "6.0.4 - 8.43.0",
      "nodes": [
        "node_modules/@wdio/local-runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "high",
      "isDirect": false,
      "via": [
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": "7.16.5 - 8.43.0",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/spec-reporter": {
      "name": "@wdio/spec-reporter",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/cli"
      ],
      "effects": [],
      "range": "6.0.4 - 8.0.0-alpha.631",
      "nodes": [
        "node_modules/@wdio/spec-reporter"
      ],
      "fixAvailable": {
        "name": "@wdio/spec-reporter",
        "version": "9.11.0",
        "isSemVerMajor": true
      }
    },
    "cross-spawn": {
      "name": "cross-spawn",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1100562,
          "name": "cross-spawn",
          "dependency": "cross-spawn",
          "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
          "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<6.0.6"
        }
      ],
      "effects": [
        "yarn-install"
      ],
      "range": "<6.0.6",
      "nodes": [
        "node_modules/yarn-install/node_modules/cross-spawn"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "devtools": {
      "name": "devtools",
      "severity": "high",
      "isDirect": false,
      "via": [
        "puppeteer-core"
      ],
      "effects": [],
      "range": ">=7.16.5",
      "nodes": [
        "node_modules/devtools"
      ],
      "fixAvailable": true
    },
    "mocha": {
      "name": "mocha",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "nanoid",
        "serialize-javascript"
      ],
      "effects": [],
      "range": "8.2.0 - 10.5.2",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": true
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki",
        "wdio-wikibase"
      ],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": false
    },
    "nanoid": {
      "name": "nanoid",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1101163,
          "name": "nanoid",
          "dependency": "nanoid",
          "title": "Predictable results in nanoid generation when given non-integer values",
          "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55",
          "severity": "moderate",
          "cwe": [
            "CWE-835"
          ],
          "cvss": {
            "score": 4.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<3.3.8"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<3.3.8",
      "nodes": [
        "node_modules/nanoid",
        "node_modules/postcss/node_modules/nanoid"
      ],
      "fixAvailable": true
    },
    "puppeteer-core": {
      "name": "puppeteer-core",
      "severity": "high",
      "isDirect": false,
      "via": [
        "ws"
      ],
      "effects": [
        "devtools",
        "webdriverio"
      ],
      "range": "11.0.0 - 22.11.1",
      "nodes": [
        "node_modules/devtools/node_modules/puppeteer-core",
        "node_modules/puppeteer-core"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "request": {
      "name": "request",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "tough-cookie"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": false
    },
    "serialize-javascript": {
      "name": "serialize-javascript",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1102832,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Cross-site Scripting (XSS) in serialize-javascript",
          "url": "https://github.com/advisories/GHSA-76p7-773f-r4q5",
          "severity": "moderate",
          "cwe": [
            "CWE-79"
          ],
          "cvss": {
            "score": 5.4,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": ">=6.0.0 <6.0.2"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "6.0.0 - 6.0.1",
      "nodes": [
        "node_modules/serialize-javascript"
      ],
      "fixAvailable": true
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097682,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/tough-cookie"
      ],
      "fixAvailable": false
    },
    "wdio-mediawiki": {
      "name": "wdio-mediawiki",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": false
    },
    "wdio-wikibase": {
      "name": "wdio-wikibase",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot",
        "wdio-mediawiki"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/wdio-wikibase"
      ],
      "fixAvailable": false
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "devtools",
        "puppeteer-core"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "range": "7.16.5 - 8.43.0",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1098392,
          "name": "ws",
          "dependency": "ws",
          "title": "ws affected by a DoS when handling a request with many HTTP headers",
          "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q",
          "severity": "high",
          "cwe": [
            "CWE-476"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.17.1"
        }
      ],
      "effects": [
        "puppeteer-core"
      ],
      "range": "8.0.0 - 8.17.0",
      "nodes": [
        "node_modules/devtools/node_modules/ws",
        "node_modules/ws"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "yarn-install": {
      "name": "yarn-install",
      "severity": "high",
      "isDirect": false,
      "via": [
        "cross-spawn"
      ],
      "effects": [
        "@wdio/cli"
      ],
      "range": "*",
      "nodes": [
        "node_modules/yarn-install"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 9,
      "high": 10,
      "critical": 0,
      "total": 19
    },
    "dependencies": {
      "prod": 1,
      "dev": 1144,
      "optional": 2,
      "peer": 2,
      "peerOptional": 0,
      "total": 1144
    }
  }
}

--- 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: 58 installs, 0 updates, 0 removals
  - Locking composer/installers (v2.3.0)
  - Locking composer/pcre (3.3.2)
  - Locking composer/semver (3.4.3)
  - Locking composer/spdx-licenses (1.5.8)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking data-values/common (1.2.0)
  - Locking data-values/data-values (3.1.0)
  - Locking data-values/geo (4.5.1)
  - Locking data-values/interfaces (1.2.0)
  - Locking data-values/number (0.13.0)
  - Locking data-values/serialization (1.2.5)
  - Locking data-values/time (1.2.0)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v0.7.2)
  - Locking diff/diff (3.4.0)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking mediawiki/mediawiki-codesniffer (v46.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.15.0)
  - Locking mediawiki/minus-x (1.1.3)
  - Locking mediawiki/phan-taint-check-plugin (6.1.0)
  - Locking microsoft/tolerant-php-parser (v0.1.2)
  - Locking monolog/monolog (2.10.0)
  - Locking netresearch/jsonmapper (v4.5.0)
  - Locking onoi/message-reporter (1.4.2)
  - Locking phan/phan (5.4.5)
  - 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 phpat/phpat (0.10.20)
  - Locking phpcsstandards/phpcsextra (1.2.1)
  - Locking phpcsstandards/phpcsutils (1.0.12)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.3.0)
  - Locking phpdocumentor/type-resolver (1.6.2)
  - Locking phpstan/phpdoc-parser (0.4.9)
  - Locking phpstan/phpstan (1.12.21)
  - Locking psr/container (2.0.2)
  - Locking psr/http-message (1.1)
  - Locking psr/log (1.1.4)
  - Locking psr/simple-cache (1.0.1)
  - Locking sabre/event (5.1.7)
  - Locking serialization/serialization (4.1.0)
  - Locking slevomat/coding-standard (6.4.1)
  - Locking squizlabs/php_codesniffer (3.11.3)
  - Locking swaggest/json-diff (v3.12.1)
  - Locking symfony/console (v7.2.1)
  - Locking symfony/deprecation-contracts (v3.5.1)
  - Locking symfony/polyfill-ctype (v1.31.0)
  - Locking symfony/polyfill-intl-grapheme (v1.31.0)
  - Locking symfony/polyfill-intl-normalizer (v1.31.0)
  - Locking symfony/polyfill-mbstring (v1.31.0)
  - Locking symfony/polyfill-php80 (v1.31.0)
  - Locking symfony/service-contracts (v3.5.1)
  - Locking symfony/string (v7.2.0)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (1.11.0)
  - Locking wikimedia/at-ease (v3.0.0)
  - Locking wikimedia/purtle (v2.0.0)
  - Locking wikimedia/timestamp (v4.2.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 58 installs, 0 updates, 0 removals
  - Downloading dealerdirect/phpcodesniffer-composer-installer (v0.7.2)
  - Downloading data-values/geo (4.5.1)
  - Downloading data-values/number (0.13.0)
  - Downloading data-values/serialization (1.2.5)
  - Downloading data-values/time (1.2.0)
  - Downloading phpdocumentor/type-resolver (1.6.2)
  - Downloading phpdocumentor/reflection-docblock (5.3.0)
  - Downloading phpstan/phpstan (1.12.21)
  - Downloading phpat/phpat (0.10.20)
  - Downloading psr/simple-cache (1.0.1)
  - Downloading phpstan/phpdoc-parser (0.4.9)
  - Downloading slevomat/coding-standard (6.4.1)
  0/12 [>---------------------------]   0%
  5/12 [===========>----------------]  41%
 12/12 [============================] 100%
  - Installing composer/installers (v2.3.0): Extracting archive
  - Installing squizlabs/php_codesniffer (3.11.3): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v0.7.2): Extracting archive
  - Installing composer/pcre (3.3.2): Extracting archive
  - Installing symfony/polyfill-php80 (v1.31.0): Extracting archive
  - Installing data-values/interfaces (1.2.0): Extracting archive
  - Installing data-values/data-values (3.1.0): Extracting archive
  - Installing data-values/geo (4.5.1): Extracting archive
  - Installing data-values/common (1.2.0): Extracting archive
  - Installing data-values/number (0.13.0): Extracting archive
  - Installing serialization/serialization (4.1.0): Extracting archive
  - Installing data-values/serialization (1.2.5): Extracting archive
  - Installing data-values/time (1.2.0): Extracting archive
  - Installing diff/diff (3.4.0): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.31.0): Extracting archive
  - Installing composer/spdx-licenses (1.5.8): Extracting archive
  - Installing composer/semver (3.4.3): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v46.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.31.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.31.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.31.0): Extracting archive
  - Installing symfony/string (v7.2.0): Extracting archive
  - Installing symfony/deprecation-contracts (v3.5.1): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.5.1): Extracting archive
  - Installing symfony/console (v7.2.1): Extracting archive
  - Installing sabre/event (5.1.7): Extracting archive
  - Installing netresearch/jsonmapper (v4.5.0): Extracting archive
  - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive
  - Installing webmozart/assert (1.11.0): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing phpdocumentor/type-resolver (1.6.2): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.3.0): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing psr/log (1.1.4): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (5.4.5): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (6.1.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.15.0): Extracting archive
  - Installing mediawiki/minus-x (1.1.3): Extracting archive
  - Installing monolog/monolog (2.10.0): Extracting archive
  - Installing onoi/message-reporter (1.4.2): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
  - Installing phpstan/phpstan (1.12.21): Extracting archive
  - Installing phpat/phpat (0.10.20): Extracting archive
  - Installing psr/http-message (1.1): Extracting archive
  - Installing psr/simple-cache (1.0.1): Extracting archive
  - Installing phpstan/phpdoc-parser (0.4.9): Extracting archive
  - Installing slevomat/coding-standard (6.4.1): Extracting archive
  - Installing swaggest/json-diff (v3.12.1): Extracting archive
  - Installing wikimedia/at-ease (v3.0.0): Extracting archive
  - Installing wikimedia/purtle (v2.0.0): Extracting archive
  - Installing wikimedia/timestamp (v4.2.0): Extracting archive
  0/55 [>---------------------------]   0%
 20/55 [==========>-----------------]  36%
 32/55 [================>-----------]  58%
 44/55 [======================>-----]  80%
 54/55 [===========================>]  98%
 55/55 [============================] 100%
11 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
23 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,../../slevomat/coding-standard

--- end ---
Upgrading n:stylelint-config-wikimedia from 0.17.2 -> 0.18.0
$ /usr/bin/npm install
--- stderr ---
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated formidable@1.2.6: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated superagent@6.1.0: Please upgrade to v7.0.2+ of superagent.  We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing.  See the releases tab for more information at <https://github.com/visionmedia/superagent/releases>.
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @vue/server-renderer@3.2.23
npm WARN Found: vue@3.3.9
npm WARN node_modules/vue
npm WARN   vue@"3.3.9" from the root project
npm WARN   6 more (@vue/babel-preset-app, @vue/cli-plugin-typescript, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer vue@"3.2.23" from @vue/server-renderer@3.2.23
npm WARN node_modules/@vue/server-renderer
npm WARN   optional @vue/server-renderer@"^3.0.1" from @vue/test-utils@2.3.0
npm WARN   node_modules/@vue/test-utils
npm WARN 
npm WARN Conflicting peer dependency: vue@3.2.23
npm WARN node_modules/vue
npm WARN   peer vue@"3.2.23" from @vue/server-renderer@3.2.23
npm WARN   node_modules/@vue/server-renderer
npm WARN     optional @vue/server-renderer@"^3.0.1" from @vue/test-utils@2.3.0
npm WARN     node_modules/@vue/test-utils
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: cache-loader@4.1.0
npm WARN Found: webpack@5.66.0
npm WARN node_modules/webpack
npm WARN   peer webpack@"^4.0.0 || ^5.0.0" from @soda/friendly-errors-webpack-plugin@1.8.1
npm WARN   node_modules/@soda/friendly-errors-webpack-plugin
npm WARN     @soda/friendly-errors-webpack-plugin@"^1.8.0" from @vue/cli-service@5.0.0-rc.2
npm WARN     node_modules/@vue/cli-service
npm WARN   25 more (@vue/cli-plugin-babel, @vue/cli-plugin-eslint, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer webpack@"^4.0.0" from cache-loader@4.1.0
npm WARN node_modules/cache-loader
npm WARN   cache-loader@"^4.1.0" from @vue/cli-plugin-typescript@5.0.0-rc.2
npm WARN   node_modules/@vue/cli-plugin-typescript
npm WARN   1 more (@vue/cli-service)
npm WARN 
npm WARN Conflicting peer dependency: webpack@4.47.0
npm WARN node_modules/webpack
npm WARN   peer webpack@"^4.0.0" from cache-loader@4.1.0
npm WARN   node_modules/cache-loader
npm WARN     cache-loader@"^4.1.0" from @vue/cli-plugin-typescript@5.0.0-rc.2
npm WARN     node_modules/@vue/cli-plugin-typescript
npm WARN     1 more (@vue/cli-service)
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@es-joy/jsdoccomment@0.23.6',
npm WARN EBADENGINE   required: { node: '^12 || ^14 || ^16 || ^17' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'eslint-plugin-jsdoc@39.2.2',
npm WARN EBADENGINE   required: { node: '^14 || ^16 || ^17' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated formidable@1.2.6: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
npm WARN deprecated stylelint-processor-html@1.0.0: Please use stylelint-processor-arbitrary-tags https://github.com/mapbox/stylelint-processor-arbitrary-tags 
npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @stylelint/postcss-markdown@0.36.2: Use the original unforked package instead: postcss-markdown
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated har-validator@5.1.3: this library is no longer supported
npm WARN deprecated superagent@6.1.0: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated html-webpack-plugin@3.2.0: 3.x is no longer supported
npm WARN deprecated babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
npm WARN deprecated @hapi/address@2.1.4: Moved to 'npm install @sideway/address'
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated uuid@3.3.3: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated @hapi/hoek@8.5.1: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/joi@15.1.1: Switch to 'npm install joi'
npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x.
npm WARN deprecated popper.js@1.16.1: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

> wikibase@0.1.0 postinstall
> npm-run-all -p install:*


> wikibase@0.1.0 install:bridge
> npm --prefix client/data-bridge ci


> wikibase@0.1.0 install:tainted-ref
> npm --prefix view/lib/wikibase-tainted-ref ci


> wikibase@0.1.0 install:rest-api
> npm --prefix repo/rest-api ci


> tainted-ref@0.1.0 prepare
> node build/wikimedia-ui-base.js


added 2722 packages, and audited 2723 packages in 2m

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

152 vulnerabilities (4 low, 79 moderate, 54 high, 15 critical)

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

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

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

Run `npm audit` for details.

> data-bridge@0.1.0 prepare
> node build/wikimedia-ui-base.js


added 2387 packages, and audited 2388 packages in 3m

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

98 vulnerabilities (4 low, 36 moderate, 54 high, 4 critical)

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

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

Run `npm audit` for details.

added 976 packages, and audited 977 packages in 3m

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

13 vulnerabilities (9 moderate, 4 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

added 1122 packages, and audited 1123 packages in 3m

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

19 vulnerabilities (9 moderate, 10 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 ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

--- end ---
$ ./node_modules/.bin/grunt stylelint
--- stdout ---
Running "stylelint:all" (stylelint) task
>> Linted 43 files without errors

Done.

--- end ---
$ /usr/bin/npm ci
--- stderr ---
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated formidable@1.2.6: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated superagent@6.1.0: Please upgrade to v7.0.2+ of superagent.  We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing.  See the releases tab for more information at <https://github.com/visionmedia/superagent/releases>.
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @vue/server-renderer@3.2.23
npm WARN Found: vue@3.3.9
npm WARN node_modules/vue
npm WARN   vue@"3.3.9" from the root project
npm WARN   6 more (@vue/babel-preset-app, @vue/cli-plugin-typescript, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer vue@"3.2.23" from @vue/server-renderer@3.2.23
npm WARN node_modules/@vue/server-renderer
npm WARN   optional @vue/server-renderer@"^3.0.1" from @vue/test-utils@2.3.0
npm WARN   node_modules/@vue/test-utils
npm WARN 
npm WARN Conflicting peer dependency: vue@3.2.23
npm WARN node_modules/vue
npm WARN   peer vue@"3.2.23" from @vue/server-renderer@3.2.23
npm WARN   node_modules/@vue/server-renderer
npm WARN     optional @vue/server-renderer@"^3.0.1" from @vue/test-utils@2.3.0
npm WARN     node_modules/@vue/test-utils
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: cache-loader@4.1.0
npm WARN Found: webpack@5.66.0
npm WARN node_modules/webpack
npm WARN   peer webpack@"^4.0.0 || ^5.0.0" from @soda/friendly-errors-webpack-plugin@1.8.1
npm WARN   node_modules/@soda/friendly-errors-webpack-plugin
npm WARN     @soda/friendly-errors-webpack-plugin@"^1.8.0" from @vue/cli-service@5.0.0-rc.2
npm WARN     node_modules/@vue/cli-service
npm WARN   25 more (@vue/cli-plugin-babel, @vue/cli-plugin-eslint, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer webpack@"^4.0.0" from cache-loader@4.1.0
npm WARN node_modules/cache-loader
npm WARN   cache-loader@"^4.1.0" from @vue/cli-plugin-typescript@5.0.0-rc.2
npm WARN   node_modules/@vue/cli-plugin-typescript
npm WARN   1 more (@vue/cli-service)
npm WARN 
npm WARN Conflicting peer dependency: webpack@4.47.0
npm WARN node_modules/webpack
npm WARN   peer webpack@"^4.0.0" from cache-loader@4.1.0
npm WARN   node_modules/cache-loader
npm WARN     cache-loader@"^4.1.0" from @vue/cli-plugin-typescript@5.0.0-rc.2
npm WARN     node_modules/@vue/cli-plugin-typescript
npm WARN     1 more (@vue/cli-service)
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@es-joy/jsdoccomment@0.23.6',
npm WARN EBADENGINE   required: { node: '^12 || ^14 || ^16 || ^17' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'eslint-plugin-jsdoc@39.2.2',
npm WARN EBADENGINE   required: { node: '^14 || ^16 || ^17' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated formidable@1.2.6: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
npm WARN deprecated stylelint-processor-html@1.0.0: Please use stylelint-processor-arbitrary-tags https://github.com/mapbox/stylelint-processor-arbitrary-tags 
npm WARN deprecated @stylelint/postcss-markdown@0.36.2: Use the original unforked package instead: postcss-markdown
npm WARN deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated har-validator@5.1.3: this library is no longer supported
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated superagent@6.1.0: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net
npm WARN deprecated html-webpack-plugin@3.2.0: 3.x is no longer supported
npm WARN deprecated babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
npm WARN deprecated @hapi/address@2.1.4: Moved to 'npm install @sideway/address'
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated uuid@3.3.3: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated @hapi/hoek@8.5.1: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/joi@15.1.1: Switch to 'npm install joi'
npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x.
npm WARN deprecated popper.js@1.16.1: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

> wikibase@0.1.0 postinstall
> npm-run-all -p install:*


> wikibase@0.1.0 install:rest-api
> npm --prefix repo/rest-api ci


> wikibase@0.1.0 install:bridge
> npm --prefix client/data-bridge ci


> wikibase@0.1.0 install:tainted-ref
> npm --prefix view/lib/wikibase-tainted-ref ci


> tainted-ref@0.1.0 prepare
> node build/wikimedia-ui-base.js


added 2722 packages, and audited 2723 packages in 5m

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

152 vulnerabilities (4 low, 79 moderate, 54 high, 15 critical)

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

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

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

Run `npm audit` for details.

> data-bridge@0.1.0 prepare
> node build/wikimedia-ui-base.js


added 2387 packages, and audited 2388 packages in 5m

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

98 vulnerabilities (4 low, 36 moderate, 54 high, 4 critical)

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

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

Run `npm audit` for details.

added 976 packages, and audited 977 packages in 5m

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

13 vulnerabilities (9 moderate, 4 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

added 1122 packages, and audited 1123 packages in 5m

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

19 vulnerabilities (9 moderate, 10 high)

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

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

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

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS repo/tests/jest/wikibase.vector.searchClient.spec.js
  Vector Search Client
    ✓ test construction and fetchByTitle behavior (86 ms)
    ✓ test construction and loadMore behavior (10 ms)
    ✓ doesn't show an extra match for a search hit on the label (2 ms)
    ✓ supports showing a match of a label in a different language (2 ms)

Test Suites: 1 passed, 1 total
Tests:       4 passed, 4 total
Snapshots:   0 total
Time:        2.336 s
Ran all test suites matching /repo\/tests\/jest\//i.

specs/openapi-joined.json: join processed in 4434ms


    ╔═══════════════════════════════════════════════════════╗
    ║                                                       ║
    ║  A new version of Redocly CLI (1.33.1) is available.  ║
    ║  Update now: `npm i -g @redocly/cli@latest`.          ║
    ║  Changelog: https://redocly.com/docs/cli/changelog/   ║
    ║                                                       ║
    ╚═══════════════════════════════════════════════════════╝

validating specs/openapi-joined.json...
specs/openapi-joined.json: validated in 2302ms

Woohoo! Your API description is valid. 🎉
2 problems are explicitly ignored.


PASS tests/unit/StatementTracker.spec.ts (7.424 s)
PASS tests/unit/MWHookHandler.spec.ts (7.466 s)
PASS tests/unit/store/actions.spec.ts
PASS tests/unit/store/mutations.spec.ts
PASS tests/unit/TaintedPopper.spec.ts (9.778 s)
PASS tests/unit/Popper.spec.ts
PASS tests/unit/TaintedIcon.spec.ts
PASS tests/unit/store/getters.spec.ts
PASS tests/unit/ReferenceListChangeCounter.spec.ts
PASS tests/unit/TaintedChecker.spec.ts
PASS tests/unit/store/index.spec.ts
PASS tests/unit/App.spec.ts

Test Suites: 12 passed, 12 total
Tests:       68 passed, 68 total
Snapshots:   0 total
Time:        14.564 s
Ran all test suites.
PASS tests/unit/store/getters.spec.ts (12.956 s)
PASS tests/unit/store/actions.spec.ts (13.575 s)
PASS tests/unit/services/createServices.spec.ts
PASS tests/unit/data-access/ApiWritingRepository.spec.ts
PASS tests/unit/presentation/components/ErrorPermission.spec.ts (16.704 s)
PASS tests/unit/data-access/ApiPageEditPermissionErrorsRepository.spec.ts
PASS tests/unit/presentation/components/Loading.spec.ts
PASS tests/unit/presentation/App.spec.ts (9.302 s)
PASS tests/unit/data-access/CombiningPermissionsRepository.spec.ts
PASS tests/unit/presentation/components/AppHeader.spec.ts (6.694 s)
PASS tests/unit/store/statements/getters.spec.ts
[Vue warn]: Invalid prop: custom validator check failed for prop "type". 
  at <EventEmittingButton type="potato" size="L" message="click me"  ... > 
  at <VTUROOT>
PASS tests/unit/presentation/components/EventEmittingButton.spec.ts
PASS tests/unit/mediawiki/init.spec.ts
PASS tests/unit/store/mutations.spec.ts
PASS tests/unit/presentation/components/ErrorWrapper.spec.ts
PASS tests/unit/store/entity/actions.spec.ts
PASS tests/unit/mediawiki/BridgeDomElementsSelector.spec.ts
PASS tests/unit/data-access/TrimmingWritingRepository.spec.ts
PASS tests/unit/data-access/ApiCore.spec.ts
PASS tests/unit/data-access/ApiRenderReferencesRepository.spec.ts
PASS tests/unit/data-access/SpecialPageReadingEntityRepository.spec.ts
PASS tests/unit/presentation/components/ErrorSavingAssertUser.spec.ts
PASS tests/unit/data-access/BatchingApi.spec.ts
PASS tests/unit/store/statements/MainSnakPath.spec.ts
PASS tests/unit/mediawiki/Dispatcher.spec.ts
PASS tests/unit/presentation/components/ErrorSaving.spec.ts
PASS tests/unit/data-access/ApiEntityLabelRepository.spec.ts
PASS tests/unit/data-access/ApiRepoConfigRepository.spec.ts
PASS tests/unit/presentation/components/ErrorUnsupportedSnakType.spec.ts
PASS tests/unit/change-op/statement-mutation/strategies/UpdateMutationStrategy.spec.ts
PASS tests/unit/presentation/components/StringDataValue.spec.ts
PASS tests/unit/presentation/components/EditDecision.spec.ts
PASS tests/unit/presentation/components/ErrorUnknown.spec.ts
PASS tests/unit/presentation/components/ErrorUnsupportedDatatype.spec.ts
PASS tests/unit/data-access/ApiTempUserConfigRepository.spec.ts
PASS tests/unit/change-op/statement-mutation/strategies/ReplaceMutationStrategy.spec.ts
PASS tests/unit/data-access/RepoRouter.spec.ts
PASS tests/unit/presentation/components/WarningAnonymousEdit.spec.ts
PASS tests/unit/main.spec.ts
PASS tests/unit/presentation/components/ErrorPermissionInfo.spec.ts
PASS tests/unit/mediawiki/prepareContainer.spec.ts
PASS tests/unit/presentation/components/ReportIssue.spec.ts
PASS tests/unit/mediawiki/MwInitTracker.spec.ts
PASS tests/unit/presentation/components/DataBridge.spec.ts
PASS tests/unit/presentation/components/ReferenceSection.spec.ts
PASS tests/unit/presentation/components/License.spec.ts
PASS tests/unit/data-access/ApiWbgetentities.spec.ts
PASS tests/unit/data-access/ApiPropertyDataTypeRepository.spec.ts
PASS tests/unit/presentation/components/ErrorDeprecatedStatement.spec.ts
PASS tests/unit/presentation/components/ErrorAmbiguousStatement.spec.ts
PASS tests/unit/presentation/components/ResizingTextField.spec.ts
PASS tests/unit/presentation/components/RadioInput.spec.ts
PASS tests/unit/store/newMockableEntityRevision.spec.ts
PASS tests/unit/presentation/extendVueEnvironment.spec.ts
PASS tests/unit/data-access/ApiReadingEntityRepository.spec.ts
PASS tests/unit/presentation/components/BailoutActions.spec.ts
PASS tests/unit/presentation/components/ProcessDialogHeader.spec.ts
PASS tests/unit/data-access/MwLanguageInfoRepository.spec.ts
PASS tests/unit/data-access/DataBridgeTrackerService.spec.ts
PASS tests/unit/tracking/mutationsTrackerPlugin.spec.ts
PASS tests/unit/data-access/ApiQuery.spec.ts
PASS tests/unit/store/entity/mutations.spec.ts
PASS tests/unit/presentation/components/ThankYou.spec.ts
PASS tests/unit/presentation/plugins/InLanguagePlugin/InLanguagePlugin.spec.ts
PASS tests/unit/store/statements/mutations.spec.ts
[Vue warn]: Invalid prop: custom validator check failed for prop "type". 
  at <IconMessageBox type="potato" ref="VTU_COMPONENT" > 
  at <VTUROOT>
PASS tests/unit/presentation/IconMessageBox.spec.ts
PASS tests/unit/presentation/components/PropertyLabel.spec.ts
PASS tests/unit/data-access/MwMessagesRepository.spec.ts
PASS tests/unit/mediawiki/subscribeToEvents.spec.ts
PASS tests/unit/presentation/components/TermLabel.spec.ts
PASS tests/unit/data-access/ApiPurge.spec.ts
PASS tests/unit/presentation/plugins/MessagesPlugin/Messages.spec.ts
PASS tests/unit/store/statements/actions.spec.ts
PASS tests/unit/presentation/components/PageList.spec.ts
PASS tests/unit/services/ServiceContainer.spec.ts
PASS tests/unit/presentation/components/UserLink.spec.ts
PASS tests/unit/tracking/PrefixingEventTracker.spec.ts
PASS tests/unit/change-op/statement-mutation/statementMutationFactory.spec.ts
PASS tests/unit/store/index.spec.ts
PASS tests/unit/presentation/components/ErrorSavingEditConflict.spec.ts
PASS tests/unit/mediawiki/facades/EventTracker.spec.ts
PASS tests/unit/utils/errorTypeFormatter.spec.ts
PASS tests/unit/presentation/plugins/RepoRouter/RepoRouterPlugin.spec.ts
PASS tests/unit/data-access/ClientRouter.spec.ts
PASS tests/unit/presentation/components/RadioGroup.spec.ts
PASS tests/unit/timer.spec.ts
PASS tests/unit/store/clone.spec.ts
PASS tests/unit/presentation/components/IndeterminateProgressBar.spec.ts

Test Suites: 88 passed, 88 total
Tests:       627 passed, 627 total
Snapshots:   13 passed, 13 total
Time:        48.651 s
Ran all test suites.
PASS tests/integration/mediawiki/init.spec.ts (6.078 s)
PASS tests/integration/store/actions.spec.ts (6.303 s)

Test Suites: 2 passed, 2 total
Tests:       16 passed, 16 total
Snapshots:   0 total
Time:        8.083 s
Ran all test suites.
PASS tests/e2e/StringDataValue.spec.ts (10.874 s)
PASS tests/e2e/app.spec.ts (10.925 s)

Test Suites: 2 passed, 2 total
Tests:       29 passed, 29 total
Snapshots:   0 total
Time:        12.825 s
Ran all test suites.
-  Building for production...
(node:2733) [DEP_WEBPACK_COMPILATION_OPTIMIZE_CHUNK_ASSETS] DeprecationWarning: optimizeChunkAssets is deprecated (use Compilation.hooks.processAssets instead and use one of Compilation.PROCESS_ASSETS_STAGE_* as stage option)
(Use `node --trace-deprecation ...` to show where the warning was created)
`isModuleDeclaration` has been deprecated, please migrate to `isImportOrExportDeclaration`
    at isModuleDeclaration (/src/repo/client/data-bridge/node_modules/@babel/types/lib/validators/generated/index.js:3940:35)
    at NodePath.<computed> [as isModuleDeclaration] (/src/repo/client/data-bridge/node_modules/@babel/traverse/lib/path/index.js:232:12)
`isModuleDeclaration` has been deprecated, please migrate to `isImportOrExportDeclaration`
    at isModuleDeclaration (/src/repo/client/data-bridge/node_modules/@babel/types/lib/validators/generated/index.js:3940:35)
    at NodePath.<computed> [as isModuleDeclaration] (/src/repo/client/data-bridge/node_modules/@babel/traverse/lib/path/index.js:232:12)
`isModuleDeclaration` has been deprecated, please migrate to `isImportOrExportDeclaration`
    at isModuleDeclaration (/src/repo/client/data-bridge/node_modules/@babel/types/lib/validators/generated/index.js:3940:35)
    at NodePath.<computed> [as isModuleDeclaration] (/src/repo/client/data-bridge/node_modules/@babel/traverse/lib/path/index.js:232:12)
(node:2733) [DEP_WEBPACK_COMPILATION_CACHE] DeprecationWarning: Compilation.cache was removed in favor of Compilation.getCache()
--- stdout ---

> wikibase@0.1.0 test
> npm-run-all -p test-fast:*


> wikibase@0.1.0 test-fast:bridge
> npm --prefix client/data-bridge test


> wikibase@0.1.0 test-fast:grunt
> grunt test


> wikibase@0.1.0 test-fast:rest-api
> npm --prefix repo/rest-api test


> wikibase@0.1.0 test-fast:jest-repo
> jest repo/tests/jest/


> wikibase@0.1.0 test-fast:tainted-ref
> npm --prefix view/lib/wikibase-tainted-ref test

Running "eslint:all" (eslint) task

> data-bridge@0.1.0 test
> npm-run-all test:*


> wikibase-rest-api-definition@0.1.0 test
> npm run lint


> tainted-ref@0.1.0 test
> npm-run-all test:*


> wikibase-rest-api-definition@0.1.0 lint
> npm-run-all --parallel lint:*


> data-bridge@0.1.0 test:lint
> vue-cli-service lint --max-warnings 0 --no-fix . && stylelint --syntax scss 'src/**/*.(vue|scss)'


> wikibase-rest-api-definition@0.1.0 lint:eslint-crud
> eslint ../domains/crud/tests/mocha --config ../domains/crud/tests/mocha/.eslintrc.json --max-warnings 0


> wikibase-rest-api-definition@0.1.0 lint:openapi
> npm run spec:join && redocly lint specs/openapi-joined.json


> wikibase-rest-api-definition@0.1.0 lint:eslint-search
> eslint ../domains/search/tests/mocha --config ../domains/search/tests/mocha/.eslintrc.json --max-warnings 0


> tainted-ref@0.1.0 test:unit
> vue-cli-service test:unit -c ./jest.config.js


> wikibase-rest-api-definition@0.1.0 lint:eslint
> eslint . --config .eslintrc.json --max-warnings 0


> wikibase-rest-api-definition@0.1.0 spec:join
> redocly join --without-x-tag-groups specs/openapi.json ../domains/**/specs/index.fragment.json -o specs/openapi-joined.json

 DONE  No lint errors found!

> tainted-ref@0.1.0 test:lint
> vue-cli-service lint --max-warnings 0 --no-fix . && stylelint --syntax scss 'src/**/*.(vue|scss)'


> data-bridge@0.1.0 test:unit
> jest -c ./jest.config.unit.js


Running "banana:all" (banana) task
 DONE  No lint errors found!
>> 5 message directories checked.

Running "stylelint:all" (stylelint) task
>> Linted 43 files without errors

Done.

> data-bridge@0.1.0 test:integration
> jest -c ./jest.config.integration.js


> data-bridge@0.1.0 test:e2e
> jest -c ./jest.config.e2e.js


> data-bridge@0.1.0 test:distnodiff
> npm run build -- --dest /tmp/dist && diff -q ./dist/data-bridge.app.js /tmp/dist/data-bridge.app.js && diff -q ./dist/css/data-bridge.app.css /tmp/dist/css/data-bridge.app.css && diff -q ./dist/data-bridge.init.js /tmp/dist/data-bridge.init.js && diff -q ./dist/data-bridge.chunk-vendors.js /tmp/dist/data-bridge.chunk-vendors.js


> data-bridge@0.1.0 build
> NODE_ENV=production vue-cli-service build --no-clean --skip-plugins eslint --report --report-json --no-module --dest /tmp/dist


 DONE  Compiled successfully in 17040ms4:16:10 AM

  File                                      Size             Gzipped

  ../../../../tmp/dist/data-bridge.app.j    190.77 KiB       52.28 KiB
  s
  ../../../../tmp/dist/data-bridge.chunk    27.45 KiB        10.21 KiB
  -vendors.js
  ../../../../tmp/dist/data-bridge.init.    9.60 KiB         4.14 KiB
  js
  ../../../../tmp/dist/css/data-bridge.a    25.56 KiB        4.28 KiB
  pp.css

  Images and other types of assets omitted.

 DONE  Build complete. The ../../../../tmp/dist directory is ready to be deployed.
 INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
       

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

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

--- end ---
$ /usr/bin/composer test
--- stderr ---
> composer validate --no-interaction
> composer lint
> parallel-lint . --exclude vendor --exclude node_modules --exclude .git --exclude lib/packages/*/*/vendor
> composer phpcs
> phpcs -p -s --cache
> composer phpcs:prpl
> phpcs -p -s --cache --standard=prpl-ruleset.xml
> composer phpstan
> bash build/runPhpstanUnlessMissingDeps.sh
> minus-x check .
--- stdout ---
./composer.json is valid
PHP 8.2.20 | 10 parallel jobs
............................................................   60/3387 (  1%)
............................................................  120/3387 (  3%)
............................................................  180/3387 (  5%)
............................................................  240/3387 (  7%)
............................................................  300/3387 (  8%)
............................................................  360/3387 ( 10%)
............................................................  420/3387 ( 12%)
............................................................  480/3387 ( 14%)
............................................................  540/3387 ( 15%)
............................................................  600/3387 ( 17%)
............................................................  660/3387 ( 19%)
............................................................  720/3387 ( 21%)
............................................................  780/3387 ( 23%)
............................................................  840/3387 ( 24%)
............................................................  900/3387 ( 26%)
............................................................  960/3387 ( 28%)
............................................................ 1020/3387 ( 30%)
............................................................ 1080/3387 ( 31%)
............................................................ 1140/3387 ( 33%)
............................................................ 1200/3387 ( 35%)
............................................................ 1260/3387 ( 37%)
............................................................ 1320/3387 ( 38%)
............................................................ 1380/3387 ( 40%)
............................................................ 1440/3387 ( 42%)
............................................................ 1500/3387 ( 44%)
............................................................ 1560/3387 ( 46%)
............................................................ 1620/3387 ( 47%)
............................................................ 1680/3387 ( 49%)
............................................................ 1740/3387 ( 51%)
............................................................ 1800/3387 ( 53%)
............................................................ 1860/3387 ( 54%)
............................................................ 1920/3387 ( 56%)
............................................................ 1980/3387 ( 58%)
............................................................ 2040/3387 ( 60%)
............................................................ 2100/3387 ( 62%)
............................................................ 2160/3387 ( 63%)
............................................................ 2220/3387 ( 65%)
............................................................ 2280/3387 ( 67%)
............................................................ 2340/3387 ( 69%)
............................................................ 2400/3387 ( 70%)
............................................................ 2460/3387 ( 72%)
............................................................ 2520/3387 ( 74%)
............................................................ 2580/3387 ( 76%)
............................................................ 2640/3387 ( 77%)
............................................................ 2700/3387 ( 79%)
............................................................ 2760/3387 ( 81%)
............................................................ 2820/3387 ( 83%)
............................................................ 2880/3387 ( 85%)
............................................................ 2940/3387 ( 86%)
............................................................ 3000/3387 ( 88%)
............................................................ 3060/3387 ( 90%)
............................................................ 3120/3387 ( 92%)
............................................................ 3180/3387 ( 93%)
............................................................ 3240/3387 ( 95%)
............................................................ 3300/3387 ( 97%)
............................................................ 3360/3387 ( 99%)
...........................                                  3387/3387 (100%)


Checked 3387 files in 13.2 seconds
No syntax error found
............................................................ 60 / 64 (94%)
....                                                         64 / 64 (100%)


Time: 35.98 secs; Memory: 144MB

............................................................  60 / 881 (7%)
............................................................ 120 / 881 (14%)
............................................................ 180 / 881 (20%)
............................................................ 240 / 881 (27%)
............................................................ 300 / 881 (34%)
............................................................ 360 / 881 (41%)
............................................................ 420 / 881 (48%)
............................................................ 480 / 881 (54%)
............................................................ 540 / 881 (61%)
............................................................ 600 / 881 (68%)
............................................................ 660 / 881 (75%)
............................................................ 720 / 881 (82%)
............................................................ 780 / 881 (89%)
............................................................ 840 / 881 (95%)
.........................................                    881 / 881 (100%)


Time: 12.38 secs; Memory: 52MB

Cannot run PHPStan because MediaWiki dependencies are not installed.
MinusX
======
Processing /src/repo...
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
........
All good!

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@babel/helpers": {
      "name": "@babel/helpers",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1103026,
          "name": "@babel/helpers",
          "dependency": "@babel/helpers",
          "title": "Babel has inefficient RexExp complexity in generated code with .replace when transpiling named capturing groups",
          "url": "https://github.com/advisories/GHSA-968p-4wvh-cqc8",
          "severity": "moderate",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 6.2,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<7.26.10"
        }
      ],
      "effects": [],
      "range": "<7.26.10",
      "nodes": [
        "node_modules/@babel/helpers"
      ],
      "fixAvailable": true
    },
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "high",
      "isDirect": true,
      "via": [
        "webdriverio",
        "yarn-install"
      ],
      "effects": [
        "@wdio/local-runner",
        "@wdio/spec-reporter"
      ],
      "range": "5.4.10 - 8.43.0",
      "nodes": [
        "node_modules/@wdio/cli"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/local-runner": {
      "name": "@wdio/local-runner",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "effects": [],
      "range": "6.0.4 - 8.43.0",
      "nodes": [
        "node_modules/@wdio/local-runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "high",
      "isDirect": false,
      "via": [
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": "7.16.5 - 8.43.0",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/spec-reporter": {
      "name": "@wdio/spec-reporter",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/cli"
      ],
      "effects": [],
      "range": "6.0.4 - 8.0.0-alpha.631",
      "nodes": [
        "node_modules/@wdio/spec-reporter"
      ],
      "fixAvailable": {
        "name": "@wdio/spec-reporter",
        "version": "9.11.0",
        "isSemVerMajor": true
      }
    },
    "cross-spawn": {
      "name": "cross-spawn",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1100562,
          "name": "cross-spawn",
          "dependency": "cross-spawn",
          "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
          "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<6.0.6"
        }
      ],
      "effects": [
        "yarn-install"
      ],
      "range": "<6.0.6",
      "nodes": [
        "node_modules/yarn-install/node_modules/cross-spawn"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "devtools": {
      "name": "devtools",
      "severity": "high",
      "isDirect": false,
      "via": [
        "puppeteer-core"
      ],
      "effects": [],
      "range": ">=7.16.5",
      "nodes": [
        "node_modules/devtools"
      ],
      "fixAvailable": true
    },
    "mocha": {
      "name": "mocha",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "nanoid",
        "serialize-javascript"
      ],
      "effects": [],
      "range": "8.2.0 - 10.5.2",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": true
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki",
        "wdio-wikibase"
      ],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": false
    },
    "nanoid": {
      "name": "nanoid",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1101163,
          "name": "nanoid",
          "dependency": "nanoid",
          "title": "Predictable results in nanoid generation when given non-integer values",
          "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55",
          "severity": "moderate",
          "cwe": [
            "CWE-835"
          ],
          "cvss": {
            "score": 4.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<3.3.8"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<3.3.8",
      "nodes": [
        "node_modules/nanoid"
      ],
      "fixAvailable": true
    },
    "puppeteer-core": {
      "name": "puppeteer-core",
      "severity": "high",
      "isDirect": false,
      "via": [
        "ws"
      ],
      "effects": [
        "devtools",
        "webdriverio"
      ],
      "range": "11.0.0 - 22.11.1",
      "nodes": [
        "node_modules/devtools/node_modules/puppeteer-core",
        "node_modules/puppeteer-core"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "request": {
      "name": "request",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "tough-cookie"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": false
    },
    "serialize-javascript": {
      "name": "serialize-javascript",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1102832,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Cross-site Scripting (XSS) in serialize-javascript",
          "url": "https://github.com/advisories/GHSA-76p7-773f-r4q5",
          "severity": "moderate",
          "cwe": [
            "CWE-79"
          ],
          "cvss": {
            "score": 5.4,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": ">=6.0.0 <6.0.2"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "6.0.0 - 6.0.1",
      "nodes": [
        "node_modules/serialize-javascript"
      ],
      "fixAvailable": true
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097682,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/tough-cookie"
      ],
      "fixAvailable": false
    },
    "wdio-mediawiki": {
      "name": "wdio-mediawiki",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": false
    },
    "wdio-wikibase": {
      "name": "wdio-wikibase",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot",
        "wdio-mediawiki"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/wdio-wikibase"
      ],
      "fixAvailable": false
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "devtools",
        "puppeteer-core"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "range": "7.16.5 - 8.43.0",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1098392,
          "name": "ws",
          "dependency": "ws",
          "title": "ws affected by a DoS when handling a request with many HTTP headers",
          "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q",
          "severity": "high",
          "cwe": [
            "CWE-476"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.17.1"
        }
      ],
      "effects": [
        "puppeteer-core"
      ],
      "range": "8.0.0 - 8.17.0",
      "nodes": [
        "node_modules/devtools/node_modules/ws",
        "node_modules/ws"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    },
    "yarn-install": {
      "name": "yarn-install",
      "severity": "high",
      "isDirect": false,
      "via": [
        "cross-spawn"
      ],
      "effects": [
        "@wdio/cli"
      ],
      "range": "*",
      "nodes": [
        "node_modules/yarn-install"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.12.0",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 9,
      "high": 10,
      "critical": 0,
      "total": 19
    },
    "dependencies": {
      "prod": 1,
      "dev": 1123,
      "optional": 2,
      "peer": 2,
      "peerOptional": 0,
      "total": 1123
    }
  }
}

--- 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": 18,
  "removed": 21,
  "changed": 22,
  "audited": 1120,
  "funding": 190,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@babel/helpers": {
        "name": "@babel/helpers",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1103026,
            "name": "@babel/helpers",
            "dependency": "@babel/helpers",
            "title": "Babel has inefficient RexExp complexity in generated code with .replace when transpiling named capturing groups",
            "url": "https://github.com/advisories/GHSA-968p-4wvh-cqc8",
            "severity": "moderate",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 6.2,
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<7.26.10"
          }
        ],
        "effects": [],
        "range": "<7.26.10",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "@wdio/cli": {
        "name": "@wdio/cli",
        "severity": "high",
        "isDirect": true,
        "via": [
          "webdriverio",
          "yarn-install"
        ],
        "effects": [
          "@wdio/local-runner",
          "@wdio/spec-reporter"
        ],
        "range": "5.4.10 - 8.43.0",
        "nodes": [
          "",
          "node_modules/@wdio/cli"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.12.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/local-runner": {
        "name": "@wdio/local-runner",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/cli",
          "@wdio/runner"
        ],
        "effects": [],
        "range": "6.0.4 - 8.43.0",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "@wdio/local-runner",
          "version": "9.12.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/runner": {
        "name": "@wdio/runner",
        "severity": "high",
        "isDirect": false,
        "via": [
          "webdriverio"
        ],
        "effects": [
          "@wdio/local-runner"
        ],
        "range": "7.16.5 - 8.43.0",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "@wdio/local-runner",
          "version": "9.12.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/spec-reporter": {
        "name": "@wdio/spec-reporter",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@wdio/cli"
        ],
        "effects": [],
        "range": "6.0.4 - 8.0.0-alpha.631",
        "nodes": [
          "node_modules/@wdio/spec-reporter"
        ],
        "fixAvailable": {
          "name": "@wdio/spec-reporter",
          "version": "9.11.0",
          "isSemVerMajor": true
        }
      },
      "cross-spawn": {
        "name": "cross-spawn",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1100562,
            "name": "cross-spawn",
            "dependency": "cross-spawn",
            "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
            "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
            "severity": "high",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<6.0.6"
          }
        ],
        "effects": [
          "yarn-install"
        ],
        "range": "<6.0.6",
        "nodes": [
          "node_modules/yarn-install/node_modules/cross-spawn"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.12.0",
          "isSemVerMajor": true
        }
      },
      "devtools": {
        "name": "devtools",
        "severity": "high",
        "isDirect": false,
        "via": [
          "puppeteer-core"
        ],
        "effects": [],
        "range": ">=7.16.5",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "mocha": {
        "name": "mocha",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "nanoid",
          "serialize-javascript"
        ],
        "effects": [],
        "range": "8.2.0 - 10.5.2",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "mwbot": {
        "name": "mwbot",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "request"
        ],
        "effects": [
          "wdio-mediawiki",
          "wdio-wikibase"
        ],
        "range": ">=0.1.6",
        "nodes": [
          "node_modules/mwbot"
        ],
        "fixAvailable": false
      },
      "nanoid": {
        "name": "nanoid",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1101163,
            "name": "nanoid",
            "dependency": "nanoid",
            "title": "Predictable results in nanoid generation when given non-integer values",
            "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55",
            "severity": "moderate",
            "cwe": [
              "CWE-835"
            ],
            "cvss": {
              "score": 4.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": "<3.3.8"
          }
        ],
        "effects": [
          "mocha"
        ],
        "range": "<3.3.8",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "puppeteer-core": {
        "name": "puppeteer-core",
        "severity": "high",
        "isDirect": false,
        "via": [
          "ws"
        ],
        "effects": [
          "devtools",
          "webdriverio"
        ],
        "range": "11.0.0 - 22.11.1",
        "nodes": [
          "",
          "node_modules/puppeteer-core"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.12.0",
          "isSemVerMajor": true
        }
      },
      "request": {
        "name": "request",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1096727,
            "name": "request",
            "dependency": "request",
            "title": "Server-Side Request Forgery in Request",
            "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
            "severity": "moderate",
            "cwe": [
              "CWE-918"
            ],
            "cvss": {
              "score": 6.1,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
            },
            "range": "<=2.88.2"
          },
          "tough-cookie"
        ],
        "effects": [
          "mwbot"
        ],
        "range": "*",
        "nodes": [
          "node_modules/request"
        ],
        "fixAvailable": false
      },
      "serialize-javascript": {
        "name": "serialize-javascript",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1102832,
            "name": "serialize-javascript",
            "dependency": "serialize-javascript",
            "title": "Cross-site Scripting (XSS) in serialize-javascript",
            "url": "https://github.com/advisories/GHSA-76p7-773f-r4q5",
            "severity": "moderate",
            "cwe": [
              "CWE-79"
            ],
            "cvss": {
              "score": 5.4,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"
            },
            "range": ">=6.0.0 <6.0.2"
          }
        ],
        "effects": [
          "mocha"
        ],
        "range": "6.0.0 - 6.0.1",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "tough-cookie": {
        "name": "tough-cookie",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1097682,
            "name": "tough-cookie",
            "dependency": "tough-cookie",
            "title": "tough-cookie Prototype Pollution vulnerability",
            "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
            "severity": "moderate",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
            },
            "range": "<4.1.3"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<4.1.3",
        "nodes": [
          "node_modules/tough-cookie"
        ],
        "fixAvailable": false
      },
      "wdio-mediawiki": {
        "name": "wdio-mediawiki",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "mwbot"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/wdio-mediawiki"
        ],
        "fixAvailable": false
      },
      "wdio-wikibase": {
        "name": "wdio-wikibase",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "mwbot",
          "wdio-mediawiki"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/wdio-wikibase"
        ],
        "fixAvailable": false
      },
      "webdriverio": {
        "name": "webdriverio",
        "severity": "high",
        "isDirect": false,
        "via": [
          "devtools",
          "puppeteer-core"
        ],
        "effects": [
          "@wdio/cli",
          "@wdio/runner"
        ],
        "range": "7.16.5 - 8.43.0",
        "nodes": [
          "",
          "node_modules/webdriverio"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.12.0",
          "isSemVerMajor": true
        }
      },
      "ws": {
        "name": "ws",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1098392,
            "name": "ws",
            "dependency": "ws",
            "title": "ws affected by a DoS when handling a request with many HTTP headers",
            "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q",
            "severity": "high",
            "cwe": [
              "CWE-476"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": ">=8.0.0 <8.17.1"
          }
        ],
        "effects": [
          "puppeteer-core"
        ],
        "range": "8.0.0 - 8.17.0",
        "nodes": [
          "",
          "node_modules/ws"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.12.0",
          "isSemVerMajor": true
        }
      },
      "yarn-install": {
        "name": "yarn-install",
        "severity": "high",
        "isDirect": false,
        "via": [
          "cross-spawn"
        ],
        "effects": [
          "@wdio/cli"
        ],
        "range": "*",
        "nodes": [
          "node_modules/yarn-install"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.12.0",
          "isSemVerMajor": true
        }
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 0,
        "moderate": 9,
        "high": 10,
        "critical": 0,
        "total": 19
      },
      "dependencies": {
        "prod": 1,
        "dev": 1119,
        "optional": 2,
        "peer": 2,
        "peerOptional": 0,
        "total": 1119
      }
    }
  }
}

--- end ---
{"added": 18, "removed": 21, "changed": 22, "audited": 1120, "funding": 190, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@babel/helpers": {"name": "@babel/helpers", "severity": "moderate", "isDirect": false, "via": [{"source": 1103026, "name": "@babel/helpers", "dependency": "@babel/helpers", "title": "Babel has inefficient RexExp complexity in generated code with .replace when transpiling named capturing groups", "url": "https://github.com/advisories/GHSA-968p-4wvh-cqc8", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 6.2, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<7.26.10"}], "effects": [], "range": "<7.26.10", "nodes": [""], "fixAvailable": true}, "@wdio/cli": {"name": "@wdio/cli", "severity": "high", "isDirect": true, "via": ["webdriverio", "yarn-install"], "effects": ["@wdio/local-runner", "@wdio/spec-reporter"], "range": "5.4.10 - 8.43.0", "nodes": ["", "node_modules/@wdio/cli"], "fixAvailable": {"name": "@wdio/cli", "version": "9.12.0", "isSemVerMajor": true}}, "@wdio/local-runner": {"name": "@wdio/local-runner", "severity": "high", "isDirect": false, "via": ["@wdio/cli", "@wdio/runner"], "effects": [], "range": "6.0.4 - 8.43.0", "nodes": [""], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.12.0", "isSemVerMajor": true}}, "@wdio/runner": {"name": "@wdio/runner", "severity": "high", "isDirect": false, "via": ["webdriverio"], "effects": ["@wdio/local-runner"], "range": "7.16.5 - 8.43.0", "nodes": [""], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.12.0", "isSemVerMajor": true}}, "@wdio/spec-reporter": {"name": "@wdio/spec-reporter", "severity": "high", "isDirect": true, "via": ["@wdio/cli"], "effects": [], "range": "6.0.4 - 8.0.0-alpha.631", "nodes": ["node_modules/@wdio/spec-reporter"], "fixAvailable": {"name": "@wdio/spec-reporter", "version": "9.11.0", "isSemVerMajor": true}}, "cross-spawn": {"name": "cross-spawn", "severity": "high", "isDirect": false, "via": [{"source": 1100562, "name": "cross-spawn", "dependency": "cross-spawn", "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn", "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<6.0.6"}], "effects": ["yarn-install"], "range": "<6.0.6", "nodes": ["node_modules/yarn-install/node_modules/cross-spawn"], "fixAvailable": {"name": "@wdio/cli", "version": "9.12.0", "isSemVerMajor": true}}, "devtools": {"name": "devtools", "severity": "high", "isDirect": false, "via": ["puppeteer-core"], "effects": [], "range": ">=7.16.5", "nodes": [""], "fixAvailable": true}, "mocha": {"name": "mocha", "severity": "moderate", "isDirect": false, "via": ["nanoid", "serialize-javascript"], "effects": [], "range": "8.2.0 - 10.5.2", "nodes": [""], "fixAvailable": true}, "mwbot": {"name": "mwbot", "severity": "moderate", "isDirect": false, "via": ["request"], "effects": ["wdio-mediawiki", "wdio-wikibase"], "range": ">=0.1.6", "nodes": ["node_modules/mwbot"], "fixAvailable": false}, "nanoid": {"name": "nanoid", "severity": "moderate", "isDirect": false, "via": [{"source": 1101163, "name": "nanoid", "dependency": "nanoid", "title": "Predictable results in nanoid generation when given non-integer values", "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55", "severity": "moderate", "cwe": ["CWE-835"], "cvss": {"score": 4.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N"}, "range": "<3.3.8"}], "effects": ["mocha"], "range": "<3.3.8", "nodes": [""], "fixAvailable": true}, "puppeteer-core": {"name": "puppeteer-core", "severity": "high", "isDirect": false, "via": ["ws"], "effects": ["devtools", "webdriverio"], "range": "11.0.0 - 22.11.1", "nodes": ["", "node_modules/puppeteer-core"], "fixAvailable": {"name": "@wdio/cli", "version": "9.12.0", "isSemVerMajor": true}}, "request": {"name": "request", "severity": "moderate", "isDirect": false, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "tough-cookie"], "effects": ["mwbot"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": false}, "serialize-javascript": {"name": "serialize-javascript", "severity": "moderate", "isDirect": false, "via": [{"source": 1102832, "name": "serialize-javascript", "dependency": "serialize-javascript", "title": "Cross-site Scripting (XSS) in serialize-javascript", "url": "https://github.com/advisories/GHSA-76p7-773f-r4q5", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 5.4, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"}, "range": ">=6.0.0 <6.0.2"}], "effects": ["mocha"], "range": "6.0.0 - 6.0.1", "nodes": [""], "fixAvailable": true}, "tough-cookie": {"name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [{"source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"}, "range": "<4.1.3"}], "effects": ["request"], "range": "<4.1.3", "nodes": ["node_modules/tough-cookie"], "fixAvailable": false}, "wdio-mediawiki": {"name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": ["mwbot"], "effects": [], "range": "*", "nodes": ["node_modules/wdio-mediawiki"], "fixAvailable": false}, "wdio-wikibase": {"name": "wdio-wikibase", "severity": "moderate", "isDirect": true, "via": ["mwbot", "wdio-mediawiki"], "effects": [], "range": "*", "nodes": ["node_modules/wdio-wikibase"], "fixAvailable": false}, "webdriverio": {"name": "webdriverio", "severity": "high", "isDirect": false, "via": ["devtools", "puppeteer-core"], "effects": ["@wdio/cli", "@wdio/runner"], "range": "7.16.5 - 8.43.0", "nodes": ["", "node_modules/webdriverio"], "fixAvailable": {"name": "@wdio/cli", "version": "9.12.0", "isSemVerMajor": true}}, "ws": {"name": "ws", "severity": "high", "isDirect": false, "via": [{"source": 1098392, "name": "ws", "dependency": "ws", "title": "ws affected by a DoS when handling a request with many HTTP headers", "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q", "severity": "high", "cwe": ["CWE-476"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=8.0.0 <8.17.1"}], "effects": ["puppeteer-core"], "range": "8.0.0 - 8.17.0", "nodes": ["", "node_modules/ws"], "fixAvailable": {"name": "@wdio/cli", "version": "9.12.0", "isSemVerMajor": true}}, "yarn-install": {"name": "yarn-install", "severity": "high", "isDirect": false, "via": ["cross-spawn"], "effects": ["@wdio/cli"], "range": "*", "nodes": ["node_modules/yarn-install"], "fixAvailable": {"name": "@wdio/cli", "version": "9.12.0", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 9, "high": 10, "critical": 0, "total": 19}, "dependencies": {"prod": 1, "dev": 1119, "optional": 2, "peer": 2, "peerOptional": 0, "total": 1119}}}}
$ /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
--- stdout ---

added 17 packages, removed 21 packages, changed 22 packages, and audited 1119 packages in 5s

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

# npm audit report

cross-spawn  <6.0.6
Severity: high
Regular Expression Denial of Service (ReDoS) in cross-spawn - https://github.com/advisories/GHSA-3xgq-45jj-v275
fix available via `npm audit fix --force`
Will install @wdio/cli@9.12.0, which is a breaking change
node_modules/yarn-install/node_modules/cross-spawn
  yarn-install  *
  Depends on vulnerable versions of cross-spawn
  node_modules/yarn-install
    @wdio/cli  5.4.10 - 8.43.0
    Depends on vulnerable versions of webdriverio
    Depends on vulnerable versions of yarn-install
    node_modules/@wdio/cli
      @wdio/local-runner  6.0.4 - 8.43.0
      Depends on vulnerable versions of @wdio/cli
      Depends on vulnerable versions of @wdio/runner
      node_modules/@wdio/local-runner
      @wdio/spec-reporter  6.0.4 - 8.0.0-alpha.631
      Depends on vulnerable versions of @wdio/cli
      node_modules/@wdio/spec-reporter

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

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

ws  8.0.0 - 8.17.0
Severity: high
ws affected by a DoS when handling a request with many HTTP headers - https://github.com/advisories/GHSA-3h5v-q93c-6h6q
fix available via `npm audit fix --force`
Will install @wdio/cli@9.12.0, which is a breaking change
node_modules/devtools/node_modules/ws
node_modules/ws
  puppeteer-core  11.0.0 - 22.11.1
  Depends on vulnerable versions of ws
  node_modules/devtools/node_modules/puppeteer-core
  node_modules/puppeteer-core
    devtools  >=7.16.5
    Depends on vulnerable versions of puppeteer-core
    node_modules/devtools
    webdriverio  7.16.5 - 8.43.0
    Depends on vulnerable versions of devtools
    Depends on vulnerable versions of puppeteer-core
    node_modules/webdriverio
      @wdio/runner  7.16.5 - 8.43.0
      Depends on vulnerable versions of webdriverio
      node_modules/@wdio/runner

15 vulnerabilities (5 moderate, 10 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 har-validator@5.1.5: this library is no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated formidable@1.2.6: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated superagent@6.1.0: Please upgrade to v7.0.2+ of superagent.  We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing.  See the releases tab for more information at <https://github.com/visionmedia/superagent/releases>.
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @vue/server-renderer@3.2.23
npm WARN Found: vue@3.3.9
npm WARN node_modules/vue
npm WARN   vue@"3.3.9" from the root project
npm WARN   6 more (@vue/babel-preset-app, @vue/cli-plugin-typescript, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer vue@"3.2.23" from @vue/server-renderer@3.2.23
npm WARN node_modules/@vue/server-renderer
npm WARN   optional @vue/server-renderer@"^3.0.1" from @vue/test-utils@2.3.0
npm WARN   node_modules/@vue/test-utils
npm WARN 
npm WARN Conflicting peer dependency: vue@3.2.23
npm WARN node_modules/vue
npm WARN   peer vue@"3.2.23" from @vue/server-renderer@3.2.23
npm WARN   node_modules/@vue/server-renderer
npm WARN     optional @vue/server-renderer@"^3.0.1" from @vue/test-utils@2.3.0
npm WARN     node_modules/@vue/test-utils
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: cache-loader@4.1.0
npm WARN Found: webpack@5.66.0
npm WARN node_modules/webpack
npm WARN   peer webpack@"^4.0.0 || ^5.0.0" from @soda/friendly-errors-webpack-plugin@1.8.1
npm WARN   node_modules/@soda/friendly-errors-webpack-plugin
npm WARN     @soda/friendly-errors-webpack-plugin@"^1.8.0" from @vue/cli-service@5.0.0-rc.2
npm WARN     node_modules/@vue/cli-service
npm WARN   25 more (@vue/cli-plugin-babel, @vue/cli-plugin-eslint, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer webpack@"^4.0.0" from cache-loader@4.1.0
npm WARN node_modules/cache-loader
npm WARN   cache-loader@"^4.1.0" from @vue/cli-plugin-typescript@5.0.0-rc.2
npm WARN   node_modules/@vue/cli-plugin-typescript
npm WARN   1 more (@vue/cli-service)
npm WARN 
npm WARN Conflicting peer dependency: webpack@4.47.0
npm WARN node_modules/webpack
npm WARN   peer webpack@"^4.0.0" from cache-loader@4.1.0
npm WARN   node_modules/cache-loader
npm WARN     cache-loader@"^4.1.0" from @vue/cli-plugin-typescript@5.0.0-rc.2
npm WARN     node_modules/@vue/cli-plugin-typescript
npm WARN     1 more (@vue/cli-service)
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@es-joy/jsdoccomment@0.23.6',
npm WARN EBADENGINE   required: { node: '^12 || ^14 || ^16 || ^17' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'eslint-plugin-jsdoc@39.2.2',
npm WARN EBADENGINE   required: { node: '^14 || ^16 || ^17' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated formidable@1.2.6: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
npm WARN deprecated stylelint-processor-html@1.0.0: Please use stylelint-processor-arbitrary-tags https://github.com/mapbox/stylelint-processor-arbitrary-tags 
npm WARN deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @stylelint/postcss-markdown@0.36.2: Use the original unforked package instead: postcss-markdown
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated har-validator@5.1.3: this library is no longer supported
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated superagent@6.1.0: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated html-webpack-plugin@3.2.0: 3.x is no longer supported
npm WARN deprecated babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
npm WARN deprecated @hapi/address@2.1.4: Moved to 'npm install @sideway/address'
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated uuid@3.3.3: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated @hapi/hoek@8.5.1: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/joi@15.1.1: Switch to 'npm install joi'
npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x.
npm WARN deprecated popper.js@1.16.1: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

> wikibase@0.1.0 postinstall
> npm-run-all -p install:*


> wikibase@0.1.0 install:bridge
> npm --prefix client/data-bridge ci


> wikibase@0.1.0 install:rest-api
> npm --prefix repo/rest-api ci


> wikibase@0.1.0 install:tainted-ref
> npm --prefix view/lib/wikibase-tainted-ref ci


> tainted-ref@0.1.0 prepare
> node build/wikimedia-ui-base.js


added 2722 packages, and audited 2723 packages in 4m

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

152 vulnerabilities (4 low, 79 moderate, 54 high, 15 critical)

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

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

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

Run `npm audit` for details.

> data-bridge@0.1.0 prepare
> node build/wikimedia-ui-base.js


added 2387 packages, and audited 2388 packages in 5m

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

98 vulnerabilities (4 low, 36 moderate, 54 high, 4 critical)

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

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

Run `npm audit` for details.

added 976 packages, and audited 977 packages in 5m

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

13 vulnerabilities (9 moderate, 4 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

added 1118 packages, and audited 1119 packages in 5m

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

15 vulnerabilities (5 moderate, 10 high)

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

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

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

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS repo/tests/jest/wikibase.vector.searchClient.spec.js
  Vector Search Client
    ✓ test construction and fetchByTitle behavior (12 ms)
    ✓ test construction and loadMore behavior (3 ms)
    ✓ doesn't show an extra match for a search hit on the label (2 ms)
    ✓ supports showing a match of a label in a different language (2 ms)

Test Suites: 1 passed, 1 total
Tests:       4 passed, 4 total
Snapshots:   0 total
Time:        0.859 s, estimated 3 s
Ran all test suites matching /repo\/tests\/jest\//i.

    ╔═══════════════════════════════════════════════════════╗
    ║                                                       ║
    ║  A new version of Redocly CLI (1.33.1) is available.  ║
    ║  Update now: `npm i -g @redocly/cli@latest`.          ║
    ║  Changelog: https://redocly.com/docs/cli/changelog/   ║
    ║                                                       ║
    ╚═══════════════════════════════════════════════════════╝


specs/openapi-joined.json: join processed in 2537ms


    ╔═══════════════════════════════════════════════════════╗
    ║                                                       ║
    ║  A new version of Redocly CLI (1.33.1) is available.  ║
    ║  Update now: `npm i -g @redocly/cli@latest`.          ║
    ║  Changelog: https://redocly.com/docs/cli/changelog/   ║
    ║                                                       ║
    ╚═══════════════════════════════════════════════════════╝

validating specs/openapi-joined.json...
specs/openapi-joined.json: validated in 1369ms

Woohoo! Your API description is valid. 🎉
2 problems are explicitly ignored.


PASS tests/unit/StatementTracker.spec.ts (6.057 s)
PASS tests/unit/MWHookHandler.spec.ts (6.078 s)
PASS tests/unit/TaintedPopper.spec.ts (6.547 s)
PASS tests/unit/App.spec.ts
PASS tests/unit/TaintedIcon.spec.ts
PASS tests/unit/store/mutations.spec.ts
PASS tests/unit/store/actions.spec.ts
PASS tests/unit/Popper.spec.ts
PASS tests/unit/store/getters.spec.ts
PASS tests/unit/ReferenceListChangeCounter.spec.ts
PASS tests/unit/store/index.spec.ts
PASS tests/unit/TaintedChecker.spec.ts

Test Suites: 12 passed, 12 total
Tests:       68 passed, 68 total
Snapshots:   0 total
Time:        13.925 s
Ran all test suites.
PASS tests/unit/store/getters.spec.ts (5.932 s)
PASS tests/unit/presentation/components/ErrorPermission.spec.ts (5.871 s)
PASS tests/unit/store/actions.spec.ts (5.852 s)
PASS tests/unit/presentation/components/Loading.spec.ts
PASS tests/unit/presentation/components/AppHeader.spec.ts
PASS tests/unit/data-access/ApiWritingRepository.spec.ts
PASS tests/unit/presentation/App.spec.ts
PASS tests/unit/presentation/components/ErrorWrapper.spec.ts
PASS tests/unit/presentation/components/ErrorSavingAssertUser.spec.ts
PASS tests/unit/presentation/components/ErrorSaving.spec.ts
PASS tests/unit/presentation/components/DataBridge.spec.ts
PASS tests/unit/data-access/SpecialPageReadingEntityRepository.spec.ts
PASS tests/unit/presentation/components/License.spec.ts
PASS tests/unit/presentation/components/ErrorUnknown.spec.ts
PASS tests/unit/presentation/components/ReferenceSection.spec.ts
[Vue warn]: Invalid prop: custom validator check failed for prop "type". 
  at <EventEmittingButton type="potato" size="L" message="click me"  ... > 
  at <VTUROOT>
PASS tests/unit/presentation/components/EventEmittingButton.spec.ts
PASS tests/unit/presentation/components/EditDecision.spec.ts
PASS tests/unit/store/statements/MainSnakPath.spec.ts
PASS tests/unit/mediawiki/Dispatcher.spec.ts
PASS tests/unit/presentation/components/ErrorUnsupportedDatatype.spec.ts
PASS tests/unit/presentation/components/ErrorUnsupportedSnakType.spec.ts
PASS tests/unit/presentation/components/ErrorAmbiguousStatement.spec.ts
PASS tests/unit/presentation/components/WarningAnonymousEdit.spec.ts
PASS tests/unit/data-access/ApiRenderReferencesRepository.spec.ts
PASS tests/unit/presentation/components/ErrorDeprecatedStatement.spec.ts
PASS tests/unit/presentation/components/StringDataValue.spec.ts
PASS tests/unit/data-access/BatchingApi.spec.ts
PASS tests/unit/presentation/components/ReportIssue.spec.ts
PASS tests/unit/data-access/TrimmingWritingRepository.spec.ts
PASS tests/unit/data-access/ApiPageEditPermissionErrorsRepository.spec.ts
PASS tests/unit/store/mutations.spec.ts
PASS tests/unit/services/createServices.spec.ts
PASS tests/unit/mediawiki/init.spec.ts
PASS tests/unit/mediawiki/prepareContainer.spec.ts
PASS tests/unit/data-access/ApiCore.spec.ts
PASS tests/unit/timer.spec.ts
PASS tests/unit/store/entity/actions.spec.ts
PASS tests/unit/mediawiki/BridgeDomElementsSelector.spec.ts
PASS tests/unit/main.spec.ts
PASS tests/unit/store/statements/getters.spec.ts
PASS tests/unit/presentation/components/ResizingTextField.spec.ts
PASS tests/unit/presentation/components/BailoutActions.spec.ts
PASS tests/unit/data-access/ApiEntityLabelRepository.spec.ts
PASS tests/unit/presentation/components/ErrorSavingEditConflict.spec.ts
PASS tests/unit/presentation/components/RadioInput.spec.ts
PASS tests/unit/presentation/components/ThankYou.spec.ts
PASS tests/unit/presentation/components/ErrorPermissionInfo.spec.ts
PASS tests/unit/presentation/components/UserLink.spec.ts
PASS tests/unit/presentation/components/ProcessDialogHeader.spec.ts
PASS tests/unit/presentation/components/IndeterminateProgressBar.spec.ts
[Vue warn]: Invalid prop: custom validator check failed for prop "type". 
  at <IconMessageBox type="potato" ref="VTU_COMPONENT" > 
  at <VTUROOT>
PASS tests/unit/presentation/IconMessageBox.spec.ts
PASS tests/unit/presentation/components/PropertyLabel.spec.ts
PASS tests/unit/presentation/components/PageList.spec.ts
PASS tests/unit/data-access/ApiRepoConfigRepository.spec.ts
PASS tests/unit/presentation/components/RadioGroup.spec.ts
PASS tests/unit/presentation/components/TermLabel.spec.ts
PASS tests/unit/data-access/ApiPropertyDataTypeRepository.spec.ts
PASS tests/unit/data-access/ApiWbgetentities.spec.ts
PASS tests/unit/change-op/statement-mutation/strategies/UpdateMutationStrategy.spec.ts
PASS tests/unit/data-access/ApiTempUserConfigRepository.spec.ts
PASS tests/unit/data-access/RepoRouter.spec.ts
PASS tests/unit/data-access/ClientRouter.spec.ts
PASS tests/unit/data-access/CombiningPermissionsRepository.spec.ts
PASS tests/unit/store/index.spec.ts
PASS tests/unit/change-op/statement-mutation/strategies/ReplaceMutationStrategy.spec.ts
PASS tests/unit/change-op/statement-mutation/statementMutationFactory.spec.ts
PASS tests/unit/data-access/MwMessagesRepository.spec.ts
PASS tests/unit/services/ServiceContainer.spec.ts
PASS tests/unit/mediawiki/MwInitTracker.spec.ts
PASS tests/unit/store/clone.spec.ts
PASS tests/unit/presentation/plugins/MessagesPlugin/Messages.spec.ts
PASS tests/unit/store/newMockableEntityRevision.spec.ts
PASS tests/unit/data-access/ApiPurge.spec.ts
PASS tests/unit/presentation/extendVueEnvironment.spec.ts
PASS tests/unit/mediawiki/facades/EventTracker.spec.ts
PASS tests/unit/tracking/PrefixingEventTracker.spec.ts
PASS tests/unit/presentation/plugins/RepoRouter/RepoRouterPlugin.spec.ts
PASS tests/unit/store/statements/actions.spec.ts
PASS tests/unit/data-access/DataBridgeTrackerService.spec.ts
PASS tests/unit/mediawiki/subscribeToEvents.spec.ts
PASS tests/unit/store/entity/mutations.spec.ts
PASS tests/unit/utils/errorTypeFormatter.spec.ts
PASS tests/unit/presentation/plugins/InLanguagePlugin/InLanguagePlugin.spec.ts
PASS tests/unit/store/statements/mutations.spec.ts
PASS tests/unit/data-access/ApiQuery.spec.ts
PASS tests/unit/data-access/ApiReadingEntityRepository.spec.ts
PASS tests/unit/tracking/mutationsTrackerPlugin.spec.ts
PASS tests/unit/data-access/MwLanguageInfoRepository.spec.ts

Test Suites: 88 passed, 88 total
Tests:       627 passed, 627 total
Snapshots:   13 passed, 13 total
Time:        31.021 s, estimated 46 s
Ran all test suites.
PASS tests/integration/mediawiki/init.spec.ts
PASS tests/integration/store/actions.spec.ts

Test Suites: 2 passed, 2 total
Tests:       16 passed, 16 total
Snapshots:   0 total
Time:        5.995 s, estimated 7 s
Ran all test suites.
PASS tests/e2e/StringDataValue.spec.ts
PASS tests/e2e/app.spec.ts

Test Suites: 2 passed, 2 total
Tests:       29 passed, 29 total
Snapshots:   0 total
Time:        6.681 s, estimated 11 s
Ran all test suites.
-  Building for production...
(node:11394) [DEP_WEBPACK_COMPILATION_OPTIMIZE_CHUNK_ASSETS] DeprecationWarning: optimizeChunkAssets is deprecated (use Compilation.hooks.processAssets instead and use one of Compilation.PROCESS_ASSETS_STAGE_* as stage option)
(Use `node --trace-deprecation ...` to show where the warning was created)
`isModuleDeclaration` has been deprecated, please migrate to `isImportOrExportDeclaration`
    at isModuleDeclaration (/src/repo/client/data-bridge/node_modules/@babel/types/lib/validators/generated/index.js:3940:35)
    at NodePath.<computed> [as isModuleDeclaration] (/src/repo/client/data-bridge/node_modules/@babel/traverse/lib/path/index.js:232:12)
`isModuleDeclaration` has been deprecated, please migrate to `isImportOrExportDeclaration`
    at isModuleDeclaration (/src/repo/client/data-bridge/node_modules/@babel/types/lib/validators/generated/index.js:3940:35)
    at NodePath.<computed> [as isModuleDeclaration] (/src/repo/client/data-bridge/node_modules/@babel/traverse/lib/path/index.js:232:12)
`isModuleDeclaration` has been deprecated, please migrate to `isImportOrExportDeclaration`
    at isModuleDeclaration (/src/repo/client/data-bridge/node_modules/@babel/types/lib/validators/generated/index.js:3940:35)
    at NodePath.<computed> [as isModuleDeclaration] (/src/repo/client/data-bridge/node_modules/@babel/traverse/lib/path/index.js:232:12)
(node:11394) [DEP_WEBPACK_COMPILATION_CACHE] DeprecationWarning: Compilation.cache was removed in favor of Compilation.getCache()
--- stdout ---

> wikibase@0.1.0 test
> npm-run-all -p test-fast:*


> wikibase@0.1.0 test-fast:grunt
> grunt test


> wikibase@0.1.0 test-fast:bridge
> npm --prefix client/data-bridge test


> wikibase@0.1.0 test-fast:rest-api
> npm --prefix repo/rest-api test


> wikibase@0.1.0 test-fast:jest-repo
> jest repo/tests/jest/


> wikibase@0.1.0 test-fast:tainted-ref
> npm --prefix view/lib/wikibase-tainted-ref test


> tainted-ref@0.1.0 test
> npm-run-all test:*


> data-bridge@0.1.0 test
> npm-run-all test:*

Running "eslint:all" (eslint) task

> wikibase-rest-api-definition@0.1.0 test
> npm run lint


> data-bridge@0.1.0 test:lint
> vue-cli-service lint --max-warnings 0 --no-fix . && stylelint --syntax scss 'src/**/*.(vue|scss)'


> wikibase-rest-api-definition@0.1.0 lint
> npm-run-all --parallel lint:*


> tainted-ref@0.1.0 test:unit
> vue-cli-service test:unit -c ./jest.config.js


> wikibase-rest-api-definition@0.1.0 lint:eslint
> eslint . --config .eslintrc.json --max-warnings 0


> wikibase-rest-api-definition@0.1.0 lint:openapi
> npm run spec:join && redocly lint specs/openapi-joined.json


> wikibase-rest-api-definition@0.1.0 lint:eslint-search
> eslint ../domains/search/tests/mocha --config ../domains/search/tests/mocha/.eslintrc.json --max-warnings 0


> wikibase-rest-api-definition@0.1.0 lint:eslint-crud
> eslint ../domains/crud/tests/mocha --config ../domains/crud/tests/mocha/.eslintrc.json --max-warnings 0


> wikibase-rest-api-definition@0.1.0 spec:join
> redocly join --without-x-tag-groups specs/openapi.json ../domains/**/specs/index.fragment.json -o specs/openapi-joined.json


Running "banana:all" (banana) task
>> 5 message directories checked.

Running "stylelint:all" (stylelint) task
 DONE  No lint errors found!

> data-bridge@0.1.0 test:unit
> jest -c ./jest.config.unit.js


> tainted-ref@0.1.0 test:lint
> vue-cli-service lint --max-warnings 0 --no-fix . && stylelint --syntax scss 'src/**/*.(vue|scss)'

>> Linted 43 files without errors

Done.
 DONE  No lint errors found!

> data-bridge@0.1.0 test:integration
> jest -c ./jest.config.integration.js


> data-bridge@0.1.0 test:e2e
> jest -c ./jest.config.e2e.js


> data-bridge@0.1.0 test:distnodiff
> npm run build -- --dest /tmp/dist && diff -q ./dist/data-bridge.app.js /tmp/dist/data-bridge.app.js && diff -q ./dist/css/data-bridge.app.css /tmp/dist/css/data-bridge.app.css && diff -q ./dist/data-bridge.init.js /tmp/dist/data-bridge.init.js && diff -q ./dist/data-bridge.chunk-vendors.js /tmp/dist/data-bridge.chunk-vendors.js


> data-bridge@0.1.0 build
> NODE_ENV=production vue-cli-service build --no-clean --skip-plugins eslint --report --report-json --no-module --dest /tmp/dist


 DONE  Compiled successfully in 17537ms4:24:30 AM

  File                                      Size             Gzipped

  ../../../../tmp/dist/data-bridge.app.j    190.77 KiB       52.28 KiB
  s
  ../../../../tmp/dist/data-bridge.chunk    27.45 KiB        10.21 KiB
  -vendors.js
  ../../../../tmp/dist/data-bridge.init.    9.60 KiB         4.14 KiB
  js
  ../../../../tmp/dist/css/data-bridge.a    25.56 KiB        4.28 KiB
  pp.css

  Images and other types of assets omitted.

 DONE  Build complete. The ../../../../tmp/dist directory is ready to be deployed.
 INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
       

--- end ---
{"1103026": {"source": 1103026, "name": "@babel/helpers", "dependency": "@babel/helpers", "title": "Babel has inefficient RexExp complexity in generated code with .replace when transpiling named capturing groups", "url": "https://github.com/advisories/GHSA-968p-4wvh-cqc8", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 6.2, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<7.26.10"}}
Upgrading n:@babel/helpers from 7.23.2 -> 7.26.10
{}
{"1101163": {"source": 1101163, "name": "nanoid", "dependency": "nanoid", "title": "Predictable results in nanoid generation when given non-integer values", "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55", "severity": "moderate", "cwe": ["CWE-835"], "cvss": {"score": 4.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N"}, "range": "<3.3.8"}, "1102832": {"source": 1102832, "name": "serialize-javascript", "dependency": "serialize-javascript", "title": "Cross-site Scripting (XSS) in serialize-javascript", "url": "https://github.com/advisories/GHSA-76p7-773f-r4q5", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 5.4, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"}, "range": ">=6.0.0 <6.0.2"}}
Upgrading n:mocha from 10.2.0, ^10.2.0 -> 10.8.2, ^10.2.0
{"1101163": {"source": 1101163, "name": "nanoid", "dependency": "nanoid", "title": "Predictable results in nanoid generation when given non-integer values", "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55", "severity": "moderate", "cwe": ["CWE-835"], "cvss": {"score": 4.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N"}, "range": "<3.3.8"}}
Upgrading n:nanoid from 3.3.3, 3.3.9 -> 3.3.9
{"1102832": {"source": 1102832, "name": "serialize-javascript", "dependency": "serialize-javascript", "title": "Cross-site Scripting (XSS) in serialize-javascript", "url": "https://github.com/advisories/GHSA-76p7-773f-r4q5", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 5.4, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"}, "range": ">=6.0.0 <6.0.2"}}
Upgrading n:serialize-javascript from 6.0.0 -> 6.0.2
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

--- end ---
build: Updating dependencies

composer:
* mediawiki/mediawiki-phan-config: 0.15.0 → 0.15.1

npm:
* stylelint-config-wikimedia: 0.17.2 → 0.18.0
* @babel/helpers: 7.23.2 → 7.26.10
  * https://github.com/advisories/GHSA-968p-4wvh-cqc8
* mocha: 10.2.0, ^10.2.0 → 10.8.2, ^10.2.0
  * https://github.com/advisories/GHSA-76p7-773f-r4q5
  * https://github.com/advisories/GHSA-mwcw-c2x4-8c55
* nanoid: 3.3.3, 3.3.9 → 3.3.9
  * https://github.com/advisories/GHSA-mwcw-c2x4-8c55
* serialize-javascript: 6.0.0 → 6.0.2
  * https://github.com/advisories/GHSA-76p7-773f-r4q5


Additional changes:
* Dropped default excluded folder(s) from .phpcs.xml (T274684).
* Enable stylelint caching.

$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmp2x96nlgj
--- stdout ---
[master 0efbe6f] build: Updating dependencies
 6 files changed, 1011 insertions(+), 1519 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From 0efbe6f3f92ef2e25672d1ccb54456c54e191829 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sat, 15 Mar 2025 04:24:34 +0000
Subject: [PATCH] build: Updating dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

composer:
* mediawiki/mediawiki-phan-config: 0.15.0 → 0.15.1

npm:
* stylelint-config-wikimedia: 0.17.2 → 0.18.0
* @babel/helpers: 7.23.2 → 7.26.10
  * https://github.com/advisories/GHSA-968p-4wvh-cqc8
* mocha: 10.2.0, ^10.2.0 → 10.8.2, ^10.2.0
  * https://github.com/advisories/GHSA-76p7-773f-r4q5
  * https://github.com/advisories/GHSA-mwcw-c2x4-8c55
* nanoid: 3.3.3, 3.3.9 → 3.3.9
  * https://github.com/advisories/GHSA-mwcw-c2x4-8c55
* serialize-javascript: 6.0.0 → 6.0.2
  * https://github.com/advisories/GHSA-76p7-773f-r4q5

Additional changes:
* Dropped default excluded folder(s) from .phpcs.xml (T274684).
* Enable stylelint caching.

Change-Id: Iee13ca83ebca7f16f5c930a3f115bdd97ab161d6
---
 .gitignore        |    1 +
 .phpcs.xml        |    1 -
 Gruntfile.js      |    3 +
 composer.json     |    2 +-
 package-lock.json | 2521 ++++++++++++++++++---------------------------
 package.json      |    2 +-
 6 files changed, 1011 insertions(+), 1519 deletions(-)

diff --git a/.gitignore b/.gitignore
index fc19a5f..63eb746 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,3 +56,4 @@ sftp-config.json
 # federated properties VM
 build/federated-properties/vagrant/.vagrant
 .vscode
+/.stylelintcache
diff --git a/.phpcs.xml b/.phpcs.xml
index 94c67e8..c0af976 100644
--- a/.phpcs.xml
+++ b/.phpcs.xml
@@ -115,5 +115,4 @@
 	<exclude-pattern>.phan/stubs</exclude-pattern>
 	<exclude-pattern>repo/tests/browser</exclude-pattern>
 	<exclude-pattern type="relative">^extensions/</exclude-pattern>
-	<exclude-pattern>node_modules/</exclude-pattern>
 </ruleset>
diff --git a/Gruntfile.js b/Gruntfile.js
index 72c8147..240db4f 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -15,6 +15,9 @@ module.exports = function ( grunt ) {
 			all: [ '.' ]
 		},
 		stylelint: {
+			options: {
+				cache: true
+			},
 			all: [
 				'**/*.{css,less}',
 				'!view/resources/jquery/ui/**',
diff --git a/composer.json b/composer.json
index faa1ae3..633b2c3 100644
--- a/composer.json
+++ b/composer.json
@@ -43,7 +43,7 @@
 	},
 	"require-dev": {
 		"mediawiki/mediawiki-codesniffer": "46.0.0",
-		"mediawiki/mediawiki-phan-config": "0.15.0",
+		"mediawiki/mediawiki-phan-config": "0.15.1",
 		"mediawiki/minus-x": "1.1.3",
 		"php-parallel-lint/php-console-highlighter": "1.0.0",
 		"php-parallel-lint/php-parallel-lint": "1.4.0",
diff --git a/package-lock.json b/package-lock.json
index e3da8f7..2707f42 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -24,7 +24,7 @@
 				"jest": "29.7.0",
 				"mocha": "^10.2.0",
 				"npm-run-all": "^4.1.5",
-				"stylelint-config-wikimedia": "0.17.2",
+				"stylelint-config-wikimedia": "0.18.0",
 				"wdio-mediawiki": "2.6.0",
 				"wdio-wikibase": "^6.0.3"
 			}
@@ -52,89 +52,19 @@
 			}
 		},
 		"node_modules/@babel/code-frame": {
-			"version": "7.22.13",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
-			"integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+			"version": "7.26.2",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+			"integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
 			"dev": true,
 			"dependencies": {
-				"@babel/highlight": "^7.22.13",
-				"chalk": "^2.4.2"
+				"@babel/helper-validator-identifier": "^7.25.9",
+				"js-tokens": "^4.0.0",
+				"picocolors": "^1.0.0"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
-		"node_modules/@babel/code-frame/node_modules/ansi-styles": {
-			"version": "3.2.1",
-			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-			"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-			"dev": true,
-			"dependencies": {
-				"color-convert": "^1.9.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/code-frame/node_modules/chalk": {
-			"version": "2.4.2",
-			"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-			"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-			"dev": true,
-			"dependencies": {
-				"ansi-styles": "^3.2.1",
-				"escape-string-regexp": "^1.0.5",
-				"supports-color": "^5.3.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/code-frame/node_modules/color-convert": {
-			"version": "1.9.3",
-			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-			"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-			"dev": true,
-			"dependencies": {
-				"color-name": "1.1.3"
-			}
-		},
-		"node_modules/@babel/code-frame/node_modules/color-name": {
-			"version": "1.1.3",
-			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-			"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-			"dev": true
-		},
-		"node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
-			"version": "1.0.5",
-			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-			"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-			"dev": true,
-			"engines": {
-				"node": ">=0.8.0"
-			}
-		},
-		"node_modules/@babel/code-frame/node_modules/has-flag": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-			"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-			"dev": true,
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/code-frame/node_modules/supports-color": {
-			"version": "5.5.0",
-			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-			"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-			"dev": true,
-			"dependencies": {
-				"has-flag": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
 		"node_modules/@babel/compat-data": {
 			"version": "7.23.2",
 			"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz",
@@ -322,9 +252,9 @@
 			}
 		},
 		"node_modules/@babel/helper-string-parser": {
-			"version": "7.22.5",
-			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
-			"integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+			"version": "7.25.9",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+			"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
@@ -349,109 +279,26 @@
 			}
 		},
 		"node_modules/@babel/helpers": {
-			"version": "7.23.2",
-			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz",
-			"integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==",
-			"dev": true,
-			"dependencies": {
-				"@babel/template": "^7.22.15",
-				"@babel/traverse": "^7.23.2",
-				"@babel/types": "^7.23.0"
-			},
-			"engines": {
-				"node": ">=6.9.0"
-			}
-		},
-		"node_modules/@babel/highlight": {
-			"version": "7.22.20",
-			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
-			"integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+			"version": "7.26.10",
+			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz",
+			"integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-validator-identifier": "^7.22.20",
-				"chalk": "^2.4.2",
-				"js-tokens": "^4.0.0"
+				"@babel/template": "^7.26.9",
+				"@babel/types": "^7.26.10"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
-		"node_modules/@babel/highlight/node_modules/ansi-styles": {
-			"version": "3.2.1",
-			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-			"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-			"dev": true,
-			"dependencies": {
-				"color-convert": "^1.9.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/highlight/node_modules/chalk": {
-			"version": "2.4.2",
-			"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-			"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-			"dev": true,
-			"dependencies": {
-				"ansi-styles": "^3.2.1",
-				"escape-string-regexp": "^1.0.5",
-				"supports-color": "^5.3.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/highlight/node_modules/color-convert": {
-			"version": "1.9.3",
-			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-			"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-			"dev": true,
-			"dependencies": {
-				"color-name": "1.1.3"
-			}
-		},
-		"node_modules/@babel/highlight/node_modules/color-name": {
-			"version": "1.1.3",
-			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-			"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-			"dev": true
-		},
-		"node_modules/@babel/highlight/node_modules/escape-string-regexp": {
-			"version": "1.0.5",
-			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-			"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-			"dev": true,
-			"engines": {
-				"node": ">=0.8.0"
-			}
-		},
-		"node_modules/@babel/highlight/node_modules/has-flag": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-			"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-			"dev": true,
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/highlight/node_modules/supports-color": {
-			"version": "5.5.0",
-			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-			"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+		"node_modules/@babel/parser": {
+			"version": "7.26.10",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz",
+			"integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==",
 			"dev": true,
 			"dependencies": {
-				"has-flag": "^3.0.0"
+				"@babel/types": "^7.26.10"
 			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/@babel/parser": {
-			"version": "7.23.0",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
-			"integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
-			"dev": true,
 			"bin": {
 				"parser": "bin/babel-parser.js"
 			},
@@ -637,14 +484,14 @@
 			}
 		},
 		"node_modules/@babel/template": {
-			"version": "7.22.15",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
-			"integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+			"version": "7.26.9",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz",
+			"integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.22.13",
-				"@babel/parser": "^7.22.15",
-				"@babel/types": "^7.22.15"
+				"@babel/code-frame": "^7.26.2",
+				"@babel/parser": "^7.26.9",
+				"@babel/types": "^7.26.9"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -681,14 +528,13 @@
 			}
 		},
 		"node_modules/@babel/types": {
-			"version": "7.23.0",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
-			"integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
+			"version": "7.26.10",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz",
+			"integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-string-parser": "^7.22.5",
-				"@babel/helper-validator-identifier": "^7.22.20",
-				"to-fast-properties": "^2.0.0"
+				"@babel/helper-string-parser": "^7.25.9",
+				"@babel/helper-validator-identifier": "^7.25.9"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -701,9 +547,9 @@
 			"dev": true
 		},
 		"node_modules/@csstools/css-parser-algorithms": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.2.tgz",
-			"integrity": "sha512-6tC/MnlEvs5suR4Ahef4YlBccJDHZuxGsAlxXmybWjZ5jPxlzLSMlRZ9mVHSRvlD+CmtE7+hJ+UQbfXrws/rUQ==",
+			"version": "3.0.4",
+			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
+			"integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==",
 			"dev": true,
 			"funding": [
 				{
@@ -715,18 +561,17 @@
 					"url": "https://opencollective.com/csstools"
 				}
 			],
-			"license": "MIT",
 			"engines": {
 				"node": ">=18"
 			},
 			"peerDependencies": {
-				"@csstools/css-tokenizer": "^3.0.2"
+				"@csstools/css-tokenizer": "^3.0.3"
 			}
 		},
 		"node_modules/@csstools/css-tokenizer": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.2.tgz",
-			"integrity": "sha512-IuTRcD53WHsXPCZ6W7ubfGqReTJ9Ra0yRRFmXYP/Re8hFYYfoIYIK4080X5luslVLWimhIeFq0hj09urVMQzTw==",
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz",
+			"integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==",
 			"dev": true,
 			"funding": [
 				{
@@ -738,7 +583,6 @@
 					"url": "https://opencollective.com/csstools"
 				}
 			],
-			"license": "MIT",
 			"engines": {
 				"node": ">=18"
 			}
@@ -767,29 +611,6 @@
 				"@csstools/css-tokenizer": "^3.0.1"
 			}
 		},
-		"node_modules/@csstools/selector-specificity": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-4.0.0.tgz",
-			"integrity": "sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT-0",
-			"engines": {
-				"node": ">=18"
-			},
-			"peerDependencies": {
-				"postcss-selector-parser": "^6.1.0"
-			}
-		},
 		"node_modules/@dual-bundle/import-meta-resolve": {
 			"version": "4.1.0",
 			"resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
@@ -1741,109 +1562,40 @@
 			}
 		},
 		"node_modules/@stylistic/stylelint-config": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-1.0.1.tgz",
-			"integrity": "sha512-JgFP88HZEyo34k9RpWVdcQJtLPrMxYE58IO3qypXhmvE/NmZohj+xjDtQ8UfaarnYsLecnldw57/GHum07Ctdw==",
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-2.0.0.tgz",
+			"integrity": "sha512-8J4YAxggy2Nzkb8KJIOLbtMXTPZ5gpKVmyhiiuKEUgCl9XFND5lM0e/ZZBMGEYZ68h5qcsS/jgg1wh235erRAw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@stylistic/stylelint-plugin": "^2.0.0"
+				"@stylistic/stylelint-plugin": "^3.0.0"
 			},
 			"engines": {
 				"node": "^18.12 || >=20.9"
 			},
 			"peerDependencies": {
-				"stylelint": "^16.0.2"
+				"stylelint": "^16.8.0"
 			}
 		},
 		"node_modules/@stylistic/stylelint-plugin": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.0.0.tgz",
-			"integrity": "sha512-dHKuT6PGd1WGZLOTuozAM7GdQzdmlmnFXYzvV1jYJXXpcCpV/OJ3+n8TXpMkoOeKHpJydY43EOoZTO1W/FOA4Q==",
+			"version": "3.1.1",
+			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.1.tgz",
+			"integrity": "sha512-XagAHHIa528EvyGybv8EEYGK5zrVW74cHpsjhtovVATbhDRuJYfE+X4HCaAieW9lCkwbX6L+X0I4CiUG3w/hFw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@csstools/css-parser-algorithms": "^2.3.2",
-				"@csstools/css-tokenizer": "^2.2.1",
-				"@csstools/media-query-list-parser": "^2.1.5",
+				"@csstools/css-parser-algorithms": "^3.0.1",
+				"@csstools/css-tokenizer": "^3.0.1",
+				"@csstools/media-query-list-parser": "^3.0.1",
 				"is-plain-object": "^5.0.0",
-				"postcss-selector-parser": "^6.0.13",
+				"postcss-selector-parser": "^6.1.2",
 				"postcss-value-parser": "^4.2.0",
 				"style-search": "^0.1.0",
-				"stylelint": "^16.0.2"
+				"stylelint": "^16.8.2"
 			},
 			"engines": {
 				"node": "^18.12 || >=20.9"
 			},
 			"peerDependencies": {
-				"stylelint": "^16.0.2"
-			}
-		},
-		"node_modules/@stylistic/stylelint-plugin/node_modules/@csstools/css-parser-algorithms": {
-			"version": "2.7.1",
-			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz",
-			"integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT",
-			"engines": {
-				"node": "^14 || ^16 || >=18"
-			},
-			"peerDependencies": {
-				"@csstools/css-tokenizer": "^2.4.1"
-			}
-		},
-		"node_modules/@stylistic/stylelint-plugin/node_modules/@csstools/css-tokenizer": {
-			"version": "2.4.1",
-			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz",
-			"integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT",
-			"engines": {
-				"node": "^14 || ^16 || >=18"
-			}
-		},
-		"node_modules/@stylistic/stylelint-plugin/node_modules/@csstools/media-query-list-parser": {
-			"version": "2.1.13",
-			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz",
-			"integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT",
-			"engines": {
-				"node": "^14 || ^16 || >=18"
-			},
-			"peerDependencies": {
-				"@csstools/css-parser-algorithms": "^2.7.1",
-				"@csstools/css-tokenizer": "^2.4.1"
+				"stylelint": "^16.8.0"
 			}
 		},
 		"node_modules/@stylistic/stylelint-plugin/node_modules/is-plain-object": {
@@ -1851,7 +1603,6 @@
 			"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
 			"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=0.10.0"
 			}
@@ -2342,9 +2093,9 @@
 			"dev": true
 		},
 		"node_modules/@wdio/cli": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.36.0.tgz",
-			"integrity": "sha512-vYL2tB9x7vjK3N7oRFJbUKsU4y04wqk7DQXdbmgBzC9Em4u9yvFxvtiDMCSC8kvFowiIhMtEFk8SQacL8pNszA==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.40.0.tgz",
+			"integrity": "sha512-M0txYEqqamBvJe4FEuqwWq1jd879sElF047BXSv2GRu4R1/iEBPYJHjn9KuL60Fkkpp/L1NMHTl7gW9i445edQ==",
 			"dev": true,
 			"dependencies": {
 				"@types/ejs": "^3.0.5",
@@ -2355,11 +2106,11 @@
 				"@types/lodash.union": "^4.6.6",
 				"@types/node": "^18.0.0",
 				"@types/recursive-readdir": "^2.2.0",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"async-exit-hook": "^2.0.1",
 				"chalk": "^4.0.0",
 				"chokidar": "^3.0.0",
@@ -2372,7 +2123,7 @@
 				"lodash.union": "^4.6.0",
 				"mkdirp": "^3.0.0",
 				"recursive-readdir": "^2.2.2",
-				"webdriverio": "7.36.0",
+				"webdriverio": "7.40.0",
 				"yargs": "^17.0.0",
 				"yarn-install": "^1.0.0"
 			},
@@ -2383,34 +2134,104 @@
 				"node": ">=12.0.0"
 			}
 		},
-		"node_modules/@wdio/config": {
-			"version": "7.33.0",
-			"resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.33.0.tgz",
-			"integrity": "sha512-SaCZNKrDtBghf7ujyaxTiU4pBW+1Kms32shSoXpJ/wFop6/MiA7nb19qpUPoJtEDw5/NOKevUKz8nBMBXphiew==",
+		"node_modules/@wdio/cli/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
 			"dev": true,
 			"dependencies": {
-				"@types/glob": "^8.1.0",
-				"@wdio/logger": "7.26.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
-				"deepmerge": "^4.0.0",
-				"glob": "^8.0.3"
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
 			},
 			"engines": {
 				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
 			}
 		},
-		"node_modules/@wdio/local-runner": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.36.0.tgz",
-			"integrity": "sha512-01uDD4O5RbtuFE0F7PmtZjYuqCfJ2HvP1b+q8OUm5oINoaQ7djSkHCM01UKu5Rn5I1cQa0vSr5r12puD5Gp+Yw==",
+		"node_modules/@wdio/cli/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+			"dev": true,
+			"dependencies": {
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@wdio/config": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.40.0.tgz",
+			"integrity": "sha512-ayQELXyxa+k9/2a509F5a1oTsCa/w8D1nDrd+hzm+1mYb4Te2lceWCCzm+atGKkMpvjLH4GvhrEBYLh3rIWk2A==",
+			"dev": true,
+			"dependencies": {
+				"@types/glob": "^8.1.0",
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
+				"deepmerge": "^4.0.0",
+				"glob": "^8.0.3"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@wdio/config/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/@wdio/config/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+			"dev": true,
+			"dependencies": {
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@wdio/local-runner": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.40.0.tgz",
+			"integrity": "sha512-OBuN7TlFhbPUH7Wbh2S8OKZOjeW4rHXOfuGzJfaKkzjHje2Dqide/uC3Gd25MwmzgZcVkOo9DUYiGFCHXc44ug==",
 			"dev": true,
 			"dependencies": {
 				"@types/stream-buffers": "^3.0.3",
 				"@wdio/logger": "7.26.0",
-				"@wdio/repl": "7.33.0",
-				"@wdio/runner": "7.36.0",
-				"@wdio/types": "7.33.0",
+				"@wdio/repl": "7.40.0",
+				"@wdio/runner": "7.40.0",
+				"@wdio/types": "7.40.0",
 				"async-exit-hook": "^2.0.1",
 				"split2": "^4.0.0",
 				"stream-buffers": "^3.0.2"
@@ -2422,6 +2243,27 @@
 				"@wdio/cli": "^7.0.0"
 			}
 		},
+		"node_modules/@wdio/local-runner/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
 		"node_modules/@wdio/logger": {
 			"version": "7.26.0",
 			"resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.26.0.tgz",
@@ -2464,12 +2306,47 @@
 			}
 		},
 		"node_modules/@wdio/repl": {
-			"version": "7.33.0",
-			"resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.33.0.tgz",
-			"integrity": "sha512-17KM9NCg+UVpZNbS8koT/917vklF5M8IQnw0kGwmJEo444ifTMxmLwQymbS2ovQKAKAQxlfdM7bpqMeI15kzsQ==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.40.0.tgz",
+			"integrity": "sha512-6tzT7lOMxBwdqMVdW4QxlzrQadGPta4HedFcJo4LyRz9PkXPTF68qeIGs0GyZvy/5AqspNWaAJvIR7f3T3tCyw==",
+			"dev": true,
+			"dependencies": {
+				"@wdio/utils": "7.40.0"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@wdio/repl/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/@wdio/repl/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
 			"dev": true,
 			"dependencies": {
-				"@wdio/utils": "7.33.0"
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
 			},
 			"engines": {
 				"node": ">=12.0.0"
@@ -2530,19 +2407,54 @@
 			}
 		},
 		"node_modules/@wdio/runner": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.36.0.tgz",
-			"integrity": "sha512-EU/0XprH6UEqaYarxuSSLYgsxC6/jLHE7Wj/5FIJyFwdx//Ip8DnTXzbJylskeWX2NkCfJH2VerGSo423c98+Q==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.40.0.tgz",
+			"integrity": "sha512-3dGn8sU9Oc0kTq+hcxNSqkF1acqiTAzamyNWsWXAX7V0FOfZxp0wmD9aMqY+sVT6g8mUE5aePT1ydONE5o+6QA==",
 			"dev": true,
 			"dependencies": {
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"deepmerge": "^4.0.0",
 				"gaze": "^1.1.2",
-				"webdriver": "7.33.0",
-				"webdriverio": "7.36.0"
+				"webdriver": "7.40.0",
+				"webdriverio": "7.40.0"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@wdio/runner/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/@wdio/runner/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+			"dev": true,
+			"dependencies": {
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
 			},
 			"engines": {
 				"node": ">=12.0.0"
@@ -2697,9 +2609,9 @@
 			}
 		},
 		"node_modules/ansi-colors": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
-			"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+			"integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
 			"dev": true,
 			"engines": {
 				"node": ">=6"
@@ -3056,7 +2968,6 @@
 			"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
 			"integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=8"
 			}
@@ -3114,7 +3025,6 @@
 			"resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
 			"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=8"
 			}
@@ -3160,7 +3070,6 @@
 			"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
 			"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=8"
 			}
@@ -4340,7 +4249,6 @@
 			"resolved": "https://registry.npmjs.org/css-tokenize/-/css-tokenize-1.0.1.tgz",
 			"integrity": "sha512-gLmmbJdwH9HLY4bcA17lnZ8GgPwEXRbvxBJGHnkiB6gLhRpTzjkjtMIvz7YORGW/Ptv2oMk8b5g+u7mRD6Dd7A==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"inherits": "^2.0.1",
 				"readable-stream": "^1.0.33"
@@ -4350,15 +4258,13 @@
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
 			"integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/css-tokenize/node_modules/readable-stream": {
 			"version": "1.1.14",
 			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
 			"integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"core-util-is": "~1.0.0",
 				"inherits": "~2.0.1",
@@ -4370,17 +4276,15 @@
 			"version": "0.10.31",
 			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
 			"integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/css-tree": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.0.tgz",
-			"integrity": "sha512-o88DVQ6GzsABn1+6+zo2ct801dBO5OASVyxbbvA2W20ue2puSh/VOuqUj90eUeMSX/xqGqBmOKiRQN7tJOuBXw==",
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+			"integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"mdn-data": "2.10.0",
+				"mdn-data": "2.12.2",
 				"source-map-js": "^1.0.1"
 			},
 			"engines": {
@@ -4600,18 +4504,18 @@
 			}
 		},
 		"node_modules/devtools": {
-			"version": "7.35.0",
-			"resolved": "https://registry.npmjs.org/devtools/-/devtools-7.35.0.tgz",
-			"integrity": "sha512-7HMZMcJSCK/PaBCWVs4n4ZhtBNdUQj10iPwXvj/JDkqPreEXN/XW9GJAoMuLPFmCEKfxe+LrIbgs8ocGJ6rp/A==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/devtools/-/devtools-7.40.0.tgz",
+			"integrity": "sha512-hiDPCNG/mpD+bSgegxoe5nwyxWav+QpIvT+7H9D0dUwjB0q04OF473qGflSQ1QpGig6l4qG92tA7dVnLsdP75A==",
 			"dev": true,
 			"dependencies": {
 				"@types/node": "^18.0.0",
 				"@types/ua-parser-js": "^0.7.33",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"chrome-launcher": "^0.15.0",
 				"edge-paths": "^2.1.0",
 				"puppeteer-core": "13.1.3",
@@ -4629,6 +4533,41 @@
 			"integrity": "sha512-9rTIZ4ZjWwalCPiaY+kPiALLfOKgAz5CTi/Zb1L+qSZ8PH3zVo1T8JcgXIIqg1iM3pZ6hF+n9xO5r2jZ/SF+jg==",
 			"dev": true
 		},
+		"node_modules/devtools/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/devtools/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+			"dev": true,
+			"dependencies": {
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
 		"node_modules/devtools/node_modules/debug": {
 			"version": "4.3.2",
 			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
@@ -4743,9 +4682,9 @@
 			}
 		},
 		"node_modules/diff": {
-			"version": "5.1.0",
-			"resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
-			"integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
+			"version": "5.2.0",
+			"resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+			"integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
 			"dev": true,
 			"engines": {
 				"node": ">=0.3.1"
@@ -4794,14 +4733,13 @@
 			}
 		},
 		"node_modules/doiuse": {
-			"version": "6.0.3",
-			"resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.3.tgz",
-			"integrity": "sha512-cgu7al1yxHpRS+Q+ru3LQYUDttoPBGYgY7JunTdr0VeFMjBAwXVHTyZxn48ZOuxpBB30W52kOK6mwbduuqNboQ==",
+			"version": "6.0.5",
+			"resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.5.tgz",
+			"integrity": "sha512-ljuf9ndGqKST0GlPAYyCg04hbQAeR1xIIWVDjQaDDkoTY/Y1Vb+8FNoy6NuVuJIEEKe/nKUH8NRWjG7JJxZ9Eg==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"browserslist": "^4.23.3",
-				"caniuse-lite": "^1.0.30001662",
+				"browserslist": "^4.24.0",
+				"caniuse-lite": "^1.0.30001669",
 				"css-tokenize": "^1.0.1",
 				"duplexify": "^4.1.3",
 				"multimatch": "^5.0.0",
@@ -4821,7 +4759,6 @@
 			"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
 			"integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
 			"dev": true,
-			"license": "BSD-3-Clause",
 			"engines": {
 				"node": ">= 8"
 			}
@@ -4831,7 +4768,6 @@
 			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
 			"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"domelementtype": "^2.3.0",
 				"domhandler": "^5.0.2",
@@ -4851,15 +4787,13 @@
 					"type": "github",
 					"url": "https://github.com/sponsors/fb55"
 				}
-			],
-			"license": "BSD-2-Clause"
+			]
 		},
 		"node_modules/domhandler": {
 			"version": "5.0.3",
 			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
 			"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
 			"dev": true,
-			"license": "BSD-2-Clause",
 			"dependencies": {
 				"domelementtype": "^2.3.0"
 			},
@@ -4871,11 +4805,10 @@
 			}
 		},
 		"node_modules/domutils": {
-			"version": "3.1.0",
-			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
-			"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+			"version": "3.2.2",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
+			"integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
 			"dev": true,
-			"license": "BSD-2-Clause",
 			"dependencies": {
 				"dom-serializer": "^2.0.0",
 				"domelementtype": "^2.3.0",
@@ -4890,7 +4823,6 @@
 			"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
 			"integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"end-of-stream": "^1.4.1",
 				"inherits": "^2.0.3",
@@ -4996,7 +4928,6 @@
 			"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
 			"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
 			"dev": true,
-			"license": "BSD-2-Clause",
 			"engines": {
 				"node": ">=0.12"
 			},
@@ -5967,11 +5898,20 @@
 			"dev": true
 		},
 		"node_modules/fast-uri": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz",
-			"integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==",
+			"version": "3.0.6",
+			"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz",
+			"integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==",
 			"dev": true,
-			"license": "MIT"
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/fastify"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/fastify"
+				}
+			]
 		},
 		"node_modules/fastest-levenshtein": {
 			"version": "1.0.16",
@@ -7133,7 +7073,6 @@
 					"url": "https://github.com/sponsors/fb55"
 				}
 			],
-			"license": "MIT",
 			"dependencies": {
 				"domelementtype": "^2.3.0",
 				"domhandler": "^5.0.3",
@@ -9296,11 +9235,10 @@
 			}
 		},
 		"node_modules/known-css-properties": {
-			"version": "0.34.0",
-			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz",
-			"integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==",
-			"dev": true,
-			"license": "MIT"
+			"version": "0.35.0",
+			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz",
+			"integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==",
+			"dev": true
 		},
 		"node_modules/ky": {
 			"version": "0.30.0",
@@ -9571,8 +9509,7 @@
 			"version": "4.4.2",
 			"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
 			"integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/lodash.union": {
 			"version": "4.6.0",
@@ -9710,11 +9647,10 @@
 			}
 		},
 		"node_modules/mdn-data": {
-			"version": "2.10.0",
-			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.10.0.tgz",
-			"integrity": "sha512-qq7C3EtK3yJXMwz1zAab65pjl+UhohqMOctTgcqjLOWABqmwj+me02LSsCuEUxnst9X1lCBpoE0WArGKgdGDzw==",
-			"dev": true,
-			"license": "CC0-1.0"
+			"version": "2.12.2",
+			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+			"integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+			"dev": true
 		},
 		"node_modules/memorystream": {
 			"version": "0.3.1",
@@ -9879,32 +9815,31 @@
 			"dev": true
 		},
 		"node_modules/mocha": {
-			"version": "10.2.0",
-			"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz",
-			"integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==",
+			"version": "10.8.2",
+			"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
+			"integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==",
 			"dev": true,
 			"dependencies": {
-				"ansi-colors": "4.1.1",
-				"browser-stdout": "1.3.1",
-				"chokidar": "3.5.3",
-				"debug": "4.3.4",
-				"diff": "5.0.0",
-				"escape-string-regexp": "4.0.0",
-				"find-up": "5.0.0",
-				"glob": "7.2.0",
-				"he": "1.2.0",
-				"js-yaml": "4.1.0",
-				"log-symbols": "4.1.0",
-				"minimatch": "5.0.1",
-				"ms": "2.1.3",
-				"nanoid": "3.3.3",
-				"serialize-javascript": "6.0.0",
-				"strip-json-comments": "3.1.1",
-				"supports-color": "8.1.1",
-				"workerpool": "6.2.1",
-				"yargs": "16.2.0",
-				"yargs-parser": "20.2.4",
-				"yargs-unparser": "2.0.0"
+				"ansi-colors": "^4.1.3",
+				"browser-stdout": "^1.3.1",
+				"chokidar": "^3.5.3",
+				"debug": "^4.3.5",
+				"diff": "^5.2.0",
+				"escape-string-regexp": "^4.0.0",
+				"find-up": "^5.0.0",
+				"glob": "^8.1.0",
+				"he": "^1.2.0",
+				"js-yaml": "^4.1.0",
+				"log-symbols": "^4.1.0",
+				"minimatch": "^5.1.6",
+				"ms": "^2.1.3",
+				"serialize-javascript": "^6.0.2",
+				"strip-json-comments": "^3.1.1",
+				"supports-color": "^8.1.1",
+				"workerpool": "^6.5.1",
+				"yargs": "^16.2.0",
+				"yargs-parser": "^20.2.9",
+				"yargs-unparser": "^2.0.0"
 			},
 			"bin": {
 				"_mocha": "bin/_mocha",
@@ -9912,10 +9847,15 @@
 			},
 			"engines": {
 				"node": ">= 14.0.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/mochajs"
+			}
+		},
+		"node_modules/mocha/node_modules/brace-expansion": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+			"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+			"dev": true,
+			"dependencies": {
+				"balanced-match": "^1.0.0"
 			}
 		},
 		"node_modules/mocha/node_modules/cliui": {
@@ -9929,51 +9869,27 @@
 				"wrap-ansi": "^7.0.0"
 			}
 		},
-		"node_modules/mocha/node_modules/diff": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
-			"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
-			"dev": true,
-			"engines": {
-				"node": ">=0.3.1"
-			}
-		},
-		"node_modules/mocha/node_modules/glob": {
-			"version": "7.2.0",
-			"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
-			"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+		"node_modules/mocha/node_modules/debug": {
+			"version": "4.4.0",
+			"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+			"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
 			"dev": true,
 			"dependencies": {
-				"fs.realpath": "^1.0.0",
-				"inflight": "^1.0.4",
-				"inherits": "2",
-				"minimatch": "^3.0.4",
-				"once": "^1.3.0",
-				"path-is-absolute": "^1.0.0"
+				"ms": "^2.1.3"
 			},
 			"engines": {
-				"node": "*"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
-		"node_modules/mocha/node_modules/glob/node_modules/minimatch": {
-			"version": "3.1.2",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
-			"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-			"dev": true,
-			"dependencies": {
-				"brace-expansion": "^1.1.7"
+				"node": ">=6.0"
 			},
-			"engines": {
-				"node": "*"
+			"peerDependenciesMeta": {
+				"supports-color": {
+					"optional": true
+				}
 			}
 		},
 		"node_modules/mocha/node_modules/minimatch": {
-			"version": "5.0.1",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
-			"integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+			"version": "5.1.6",
+			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+			"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
 			"dev": true,
 			"dependencies": {
 				"brace-expansion": "^2.0.1"
@@ -9982,15 +9898,6 @@
 				"node": ">=10"
 			}
 		},
-		"node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-			"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-			"dev": true,
-			"dependencies": {
-				"balanced-match": "^1.0.0"
-			}
-		},
 		"node_modules/mocha/node_modules/ms": {
 			"version": "2.1.3",
 			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -10026,7 +9933,6 @@
 			"resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
 			"integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"@types/minimatch": "^3.0.3",
 				"array-differ": "^3.0.0",
@@ -10045,8 +9951,7 @@
 			"version": "3.0.5",
 			"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
 			"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/mute-stream": {
 			"version": "0.0.8",
@@ -10069,18 +9974,6 @@
 				"node": ">=10.0.0"
 			}
 		},
-		"node_modules/nanoid": {
-			"version": "3.3.3",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
-			"integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
-			"dev": true,
-			"bin": {
-				"nanoid": "bin/nanoid.cjs"
-			},
-			"engines": {
-				"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
-			}
-		},
 		"node_modules/natural-compare": {
 			"version": "1.4.0",
 			"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -10760,11 +10653,10 @@
 			"dev": true
 		},
 		"node_modules/picocolors": {
-			"version": "1.1.0",
-			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
-			"integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
-			"dev": true,
-			"license": "ISC"
+			"version": "1.1.1",
+			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+			"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+			"dev": true
 		},
 		"node_modules/picomatch": {
 			"version": "2.3.1",
@@ -10903,9 +10795,9 @@
 			}
 		},
 		"node_modules/postcss": {
-			"version": "8.4.47",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
-			"integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
+			"version": "8.5.3",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+			"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
 			"dev": true,
 			"funding": [
 				{
@@ -10921,10 +10813,9 @@
 					"url": "https://github.com/sponsors/ai"
 				}
 			],
-			"license": "MIT",
 			"dependencies": {
-				"nanoid": "^3.3.7",
-				"picocolors": "^1.1.0",
+				"nanoid": "^3.3.8",
+				"picocolors": "^1.1.1",
 				"source-map-js": "^1.2.1"
 			},
 			"engines": {
@@ -10932,14 +10823,13 @@
 			}
 		},
 		"node_modules/postcss-html": {
-			"version": "1.6.0",
-			"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.6.0.tgz",
-			"integrity": "sha512-OWgQ9/Pe23MnNJC0PL4uZp8k0EDaUvqpJFSiwFxOLClAhmD7UEisyhO3x5hVsD4xFrjReVTXydlrMes45dJ71w==",
+			"version": "1.7.0",
+			"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.7.0.tgz",
+			"integrity": "sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"htmlparser2": "^8.0.0",
-				"js-tokens": "^8.0.0",
+				"js-tokens": "^9.0.0",
 				"postcss": "^8.4.0",
 				"postcss-safe-parser": "^6.0.0"
 			},
@@ -10948,18 +10838,16 @@
 			}
 		},
 		"node_modules/postcss-html/node_modules/js-tokens": {
-			"version": "8.0.3",
-			"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz",
-			"integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==",
-			"dev": true,
-			"license": "MIT"
+			"version": "9.0.1",
+			"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
+			"integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
+			"dev": true
 		},
 		"node_modules/postcss-html/node_modules/postcss-safe-parser": {
 			"version": "6.0.0",
 			"resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
 			"integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=12.0"
 			},
@@ -11038,9 +10926,9 @@
 			"dev": true
 		},
 		"node_modules/postcss/node_modules/nanoid": {
-			"version": "3.3.7",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
-			"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+			"version": "3.3.9",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz",
+			"integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==",
 			"dev": true,
 			"funding": [
 				{
@@ -11048,7 +10936,6 @@
 					"url": "https://github.com/sponsors/ai"
 				}
 			],
-			"license": "MIT",
 			"bin": {
 				"nanoid": "bin/nanoid.cjs"
 			},
@@ -11624,7 +11511,6 @@
 			"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
 			"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=0.10.0"
 			}
@@ -12029,9 +11915,9 @@
 			}
 		},
 		"node_modules/serialize-javascript": {
-			"version": "6.0.0",
-			"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
-			"integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+			"version": "6.0.2",
+			"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+			"integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
 			"dev": true,
 			"dependencies": {
 				"randombytes": "^2.1.0"
@@ -12121,7 +12007,6 @@
 			"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
 			"integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"ansi-styles": "^4.0.0",
 				"astral-regex": "^2.0.0",
@@ -12269,8 +12154,7 @@
 			"version": "1.0.3",
 			"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
 			"integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/string_decoder": {
 			"version": "1.3.0",
@@ -12428,13 +12312,12 @@
 			"version": "0.1.0",
 			"resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
 			"integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
-			"dev": true,
-			"license": "ISC"
+			"dev": true
 		},
 		"node_modules/stylelint": {
-			"version": "16.10.0",
-			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.10.0.tgz",
-			"integrity": "sha512-z/8X2rZ52dt2c0stVwI9QL2AFJhLhbPkyfpDFcizs200V/g7v+UYY6SNcB9hKOLcDDX/yGLDsY/pX08sLkz9xQ==",
+			"version": "16.12.0",
+			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.12.0.tgz",
+			"integrity": "sha512-F8zZ3L/rBpuoBZRvI4JVT20ZanPLXfQLzMOZg1tzPflRVh9mKpOZ8qcSIhh1my3FjAjZWG4T2POwGnmn6a6hbg==",
 			"dev": true,
 			"funding": [
 				{
@@ -12446,18 +12329,17 @@
 					"url": "https://github.com/sponsors/stylelint"
 				}
 			],
-			"license": "MIT",
 			"dependencies": {
-				"@csstools/css-parser-algorithms": "^3.0.1",
-				"@csstools/css-tokenizer": "^3.0.1",
-				"@csstools/media-query-list-parser": "^3.0.1",
-				"@csstools/selector-specificity": "^4.0.0",
+				"@csstools/css-parser-algorithms": "^3.0.4",
+				"@csstools/css-tokenizer": "^3.0.3",
+				"@csstools/media-query-list-parser": "^4.0.2",
+				"@csstools/selector-specificity": "^5.0.0",
 				"@dual-bundle/import-meta-resolve": "^4.1.0",
 				"balanced-match": "^2.0.0",
 				"colord": "^2.9.3",
 				"cosmiconfig": "^9.0.0",
 				"css-functions-list": "^3.2.3",
-				"css-tree": "^3.0.0",
+				"css-tree": "^3.0.1",
 				"debug": "^4.3.7",
 				"fast-glob": "^3.3.2",
 				"fastest-levenshtein": "^1.0.16",
@@ -12469,22 +12351,22 @@
 				"ignore": "^6.0.2",
 				"imurmurhash": "^0.1.4",
 				"is-plain-object": "^5.0.0",
-				"known-css-properties": "^0.34.0",
+				"known-css-properties": "^0.35.0",
 				"mathml-tag-names": "^2.1.3",
 				"meow": "^13.2.0",
 				"micromatch": "^4.0.8",
 				"normalize-path": "^3.0.0",
-				"picocolors": "^1.0.1",
-				"postcss": "^8.4.47",
+				"picocolors": "^1.1.1",
+				"postcss": "^8.4.49",
 				"postcss-resolve-nested-selector": "^0.1.6",
 				"postcss-safe-parser": "^7.0.1",
-				"postcss-selector-parser": "^6.1.2",
+				"postcss-selector-parser": "^7.0.0",
 				"postcss-value-parser": "^4.2.0",
 				"resolve-from": "^5.0.0",
 				"string-width": "^4.2.3",
 				"supports-hyperlinks": "^3.1.0",
 				"svg-tags": "^1.0.0",
-				"table": "^6.8.2",
+				"table": "^6.9.0",
 				"write-file-atomic": "^5.0.1"
 			},
 			"bin": {
@@ -12495,85 +12377,66 @@
 			}
 		},
 		"node_modules/stylelint-config-recommended": {
-			"version": "14.0.0",
-			"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz",
-			"integrity": "sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==",
+			"version": "14.0.1",
+			"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz",
+			"integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==",
 			"dev": true,
-			"license": "MIT",
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/stylelint"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/stylelint"
+				}
+			],
 			"engines": {
 				"node": ">=18.12.0"
 			},
 			"peerDependencies": {
-				"stylelint": "^16.0.0"
+				"stylelint": "^16.1.0"
 			}
 		},
 		"node_modules/stylelint-config-wikimedia": {
-			"version": "0.17.2",
-			"resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.17.2.tgz",
-			"integrity": "sha512-cc3PYhe1O/GTgsMOp+Ri3ru579YBbZ3Me0oU7xNb06n4iwyXYPz8qO5G4iQ13UH19UW2NIS8Tk0goPRrJ1RAfw==",
+			"version": "0.18.0",
+			"resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.18.0.tgz",
+			"integrity": "sha512-Lr45NIe7pG8i7BPcMc6EddO1pRK8/KNG8gp4o/oOG1Ez10hglJuJb/QT17BlzX8NPkhtP2KdY63NS2f/Wcj6Ww==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@stylistic/stylelint-config": "1.0.1",
-				"@stylistic/stylelint-plugin": "2.0.0",
+				"@stylistic/stylelint-config": "2.0.0",
+				"@stylistic/stylelint-plugin": "3.1.1",
 				"browserslist-config-wikimedia": "0.7.0",
-				"postcss-html": "1.6.0",
+				"postcss-html": "1.7.0",
 				"postcss-less": "6.0.0",
-				"stylelint": "16.2.0",
-				"stylelint-config-recommended": "14.0.0",
-				"stylelint-no-unsupported-browser-features": "8.0.1"
+				"stylelint": "16.12.0",
+				"stylelint-config-recommended": "14.0.1",
+				"stylelint-no-unsupported-browser-features": "8.0.2"
 			},
 			"peerDependencies": {
 				"postcss-less": "^6.0.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/css-parser-algorithms": {
-			"version": "2.7.1",
-			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz",
-			"integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==",
+		"node_modules/stylelint-no-unsupported-browser-features": {
+			"version": "8.0.2",
+			"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-8.0.2.tgz",
+			"integrity": "sha512-4PY2qJ3ZTEje9RgGfaQ82eJoPioXxs6hazeKpji/wzLNVzTX2wd4b0Ds3ewdLkH3ID+o63IInuTquU2MNJO3YQ==",
 			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT",
+			"dependencies": {
+				"doiuse": "^6.0.5",
+				"postcss": "^8.4.32"
+			},
 			"engines": {
-				"node": "^14 || ^16 || >=18"
+				"node": ">=18.12.0"
 			},
 			"peerDependencies": {
-				"@csstools/css-tokenizer": "^2.4.1"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/css-tokenizer": {
-			"version": "2.4.1",
-			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz",
-			"integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT",
-			"engines": {
-				"node": "^14 || ^16 || >=18"
+				"stylelint": "^16.0.2"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/media-query-list-parser": {
-			"version": "2.1.13",
-			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz",
-			"integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==",
+		"node_modules/stylelint/node_modules/@csstools/media-query-list-parser": {
+			"version": "4.0.2",
+			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz",
+			"integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==",
 			"dev": true,
 			"funding": [
 				{
@@ -12585,19 +12448,18 @@
 					"url": "https://opencollective.com/csstools"
 				}
 			],
-			"license": "MIT",
 			"engines": {
-				"node": "^14 || ^16 || >=18"
+				"node": ">=18"
 			},
 			"peerDependencies": {
-				"@csstools/css-parser-algorithms": "^2.7.1",
-				"@csstools/css-tokenizer": "^2.4.1"
+				"@csstools/css-parser-algorithms": "^3.0.4",
+				"@csstools/css-tokenizer": "^3.0.3"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/selector-specificity": {
-			"version": "3.1.1",
-			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz",
-			"integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==",
+		"node_modules/stylelint/node_modules/@csstools/selector-specificity": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+			"integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
 			"dev": true,
 			"funding": [
 				{
@@ -12609,265 +12471,11 @@
 					"url": "https://opencollective.com/csstools"
 				}
 			],
-			"license": "MIT-0",
-			"engines": {
-				"node": "^14 || ^16 || >=18"
-			},
-			"peerDependencies": {
-				"postcss-selector-parser": "^6.0.13"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/ansi-regex": {
-			"version": "6.1.0",
-			"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
-			"integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=12"
-			},
-			"funding": {
-				"url": "https://github.com/chalk/ansi-regex?sponsor=1"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/balanced-match": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
-			"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/css-tree": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
-			"integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"mdn-data": "2.0.30",
-				"source-map-js": "^1.0.1"
-			},
-			"engines": {
-				"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/file-entry-cache": {
-			"version": "8.0.0",
-			"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
-			"integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"flat-cache": "^4.0.0"
-			},
 			"engines": {
-				"node": ">=16.0.0"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/flat-cache": {
-			"version": "4.0.1",
-			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
-			"integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"flatted": "^3.2.9",
-				"keyv": "^4.5.4"
-			},
-			"engines": {
-				"node": ">=16"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/global-modules": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
-			"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"global-prefix": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=6"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/global-prefix": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
-			"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"ini": "^1.3.5",
-				"kind-of": "^6.0.2",
-				"which": "^1.3.1"
-			},
-			"engines": {
-				"node": ">=6"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/is-plain-object": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
-			"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/known-css-properties": {
-			"version": "0.29.0",
-			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
-			"integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/mdn-data": {
-			"version": "2.0.30",
-			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
-			"integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
-			"dev": true,
-			"license": "CC0-1.0"
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/resolve-from": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
-			"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/signal-exit": {
-			"version": "4.1.0",
-			"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
-			"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
-			"dev": true,
-			"license": "ISC",
-			"engines": {
-				"node": ">=14"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/strip-ansi": {
-			"version": "7.1.0",
-			"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
-			"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"ansi-regex": "^6.0.1"
-			},
-			"engines": {
-				"node": ">=12"
-			},
-			"funding": {
-				"url": "https://github.com/chalk/strip-ansi?sponsor=1"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/stylelint": {
-			"version": "16.2.0",
-			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.0.tgz",
-			"integrity": "sha512-gwqU5AkIb52wrAzzn+359S3NIJDMl02TXLUaV2tzA/L6jUdpTwNt+MCxHlc8+Hb2bUHlYVo92YeSIryF2gJthA==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@csstools/css-parser-algorithms": "^2.5.0",
-				"@csstools/css-tokenizer": "^2.2.3",
-				"@csstools/media-query-list-parser": "^2.1.7",
-				"@csstools/selector-specificity": "^3.0.1",
-				"balanced-match": "^2.0.0",
-				"colord": "^2.9.3",
-				"cosmiconfig": "^9.0.0",
-				"css-functions-list": "^3.2.1",
-				"css-tree": "^2.3.1",
-				"debug": "^4.3.4",
-				"fast-glob": "^3.3.2",
-				"fastest-levenshtein": "^1.0.16",
-				"file-entry-cache": "^8.0.0",
-				"global-modules": "^2.0.0",
-				"globby": "^11.1.0",
-				"globjoin": "^0.1.4",
-				"html-tags": "^3.3.1",
-				"ignore": "^5.3.0",
-				"imurmurhash": "^0.1.4",
-				"is-plain-object": "^5.0.0",
-				"known-css-properties": "^0.29.0",
-				"mathml-tag-names": "^2.1.3",
-				"meow": "^13.1.0",
-				"micromatch": "^4.0.5",
-				"normalize-path": "^3.0.0",
-				"picocolors": "^1.0.0",
-				"postcss": "^8.4.33",
-				"postcss-resolve-nested-selector": "^0.1.1",
-				"postcss-safe-parser": "^7.0.0",
-				"postcss-selector-parser": "^6.0.15",
-				"postcss-value-parser": "^4.2.0",
-				"resolve-from": "^5.0.0",
-				"string-width": "^4.2.3",
-				"strip-ansi": "^7.1.0",
-				"supports-hyperlinks": "^3.0.0",
-				"svg-tags": "^1.0.0",
-				"table": "^6.8.1",
-				"write-file-atomic": "^5.0.1"
-			},
-			"bin": {
-				"stylelint": "bin/stylelint.mjs"
-			},
-			"engines": {
-				"node": ">=18.12.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/stylelint"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/which": {
-			"version": "1.3.1",
-			"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-			"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-			"dev": true,
-			"license": "ISC",
-			"dependencies": {
-				"isexe": "^2.0.0"
-			},
-			"bin": {
-				"which": "bin/which"
-			}
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/write-file-atomic": {
-			"version": "5.0.1",
-			"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
-			"integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
-			"dev": true,
-			"license": "ISC",
-			"dependencies": {
-				"imurmurhash": "^0.1.4",
-				"signal-exit": "^4.0.1"
-			},
-			"engines": {
-				"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
-			}
-		},
-		"node_modules/stylelint-no-unsupported-browser-features": {
-			"version": "8.0.1",
-			"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-8.0.1.tgz",
-			"integrity": "sha512-tc8Xn5DaqJhxTmbA4H8gZbYdAz027NfuSZv5+cVieQb7BtBrF/1/iKYdpcGwXPl3GtqkQrisiXuGqKkKnzWcLw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"doiuse": "^6.0.2",
-				"postcss": "^8.4.32"
-			},
-			"engines": {
-				"node": ">=18.12.0"
+				"node": ">=18"
 			},
 			"peerDependencies": {
-				"stylelint": "^16.0.2"
+				"postcss-selector-parser": "^7.0.0"
 			}
 		},
 		"node_modules/stylelint/node_modules/balanced-match": {
@@ -12973,6 +12581,19 @@
 			"dev": true,
 			"license": "MIT"
 		},
+		"node_modules/stylelint/node_modules/postcss-selector-parser": {
+			"version": "7.1.0",
+			"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+			"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
+			"dev": true,
+			"dependencies": {
+				"cssesc": "^3.0.0",
+				"util-deprecate": "^1.0.2"
+			},
+			"engines": {
+				"node": ">=4"
+			}
+		},
 		"node_modules/stylelint/node_modules/resolve-from": {
 			"version": "5.0.0",
 			"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
@@ -13166,11 +12787,10 @@
 			}
 		},
 		"node_modules/table": {
-			"version": "6.8.2",
-			"resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz",
-			"integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==",
+			"version": "6.9.0",
+			"resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz",
+			"integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==",
 			"dev": true,
-			"license": "BSD-3-Clause",
 			"dependencies": {
 				"ajv": "^8.0.1",
 				"lodash.truncate": "^4.4.2",
@@ -13187,7 +12807,6 @@
 			"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
 			"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"fast-deep-equal": "^3.1.3",
 				"fast-uri": "^3.0.1",
@@ -13203,8 +12822,7 @@
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
 			"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/tapable": {
 			"version": "2.2.1",
@@ -13307,15 +12925,6 @@
 			"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
 			"dev": true
 		},
-		"node_modules/to-fast-properties": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-			"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
-			"dev": true,
-			"engines": {
-				"node": ">=4"
-			}
-		},
 		"node_modules/to-regex-range": {
 			"version": "5.0.1",
 			"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -13506,9 +13115,9 @@
 			}
 		},
 		"node_modules/ua-parser-js": {
-			"version": "1.0.39",
-			"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz",
-			"integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==",
+			"version": "1.0.40",
+			"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz",
+			"integrity": "sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==",
 			"dev": true,
 			"funding": [
 				{
@@ -13761,53 +13370,88 @@
 			"integrity": "sha512-UbJPNDwEtXonEVhaGKC+05nTSEgMJuwhvqEWST00wDD0kj+I2pCJA1mEh7R8HNMlS21vlExx22bPyL66XTfCbQ==",
 			"dev": true,
 			"engines": {
-				"node": ">=16.0"
+				"node": ">=16.0"
+			},
+			"peerDependencies": {
+				"mwbot": "^2.0.0",
+				"wdio-mediawiki": "^2.0.0",
+				"webdriverio": "^7.0 || ^8.16"
+			}
+		},
+		"node_modules/webdriver": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.40.0.tgz",
+			"integrity": "sha512-CKi3cDWgNVE/ibcsBfdtA+pQVeZ4oYlecLlwemulVxJdgr4l5bv+nXuoIhnYeVb6aAI4naK772vmWQ0XuRYhDQ==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"@wdio/config": "7.40.0",
+				"@wdio/logger": "7.26.0",
+				"@wdio/protocols": "7.27.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
+				"got": "^11.0.2",
+				"ky": "0.30.0",
+				"lodash.merge": "^4.6.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/webdriver/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
 			},
 			"peerDependencies": {
-				"mwbot": "^2.0.0",
-				"wdio-mediawiki": "^2.0.0",
-				"webdriverio": "^7.0 || ^8.16"
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
 			}
 		},
-		"node_modules/webdriver": {
-			"version": "7.33.0",
-			"resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.33.0.tgz",
-			"integrity": "sha512-cyMRAVUHgQhEBHojOeNet2e8GkfyvvjpioNCPcF6qUtT+URdagr8Mh0t4Fs+Jr0tpuMqFnw70xZexAcV/6I/jg==",
+		"node_modules/webdriver/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
 			"dev": true,
 			"dependencies": {
-				"@types/node": "^18.0.0",
-				"@wdio/config": "7.33.0",
 				"@wdio/logger": "7.26.0",
-				"@wdio/protocols": "7.27.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
-				"got": "^11.0.2",
-				"ky": "0.30.0",
-				"lodash.merge": "^4.6.1"
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
 			},
 			"engines": {
 				"node": ">=12.0.0"
 			}
 		},
 		"node_modules/webdriverio": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.36.0.tgz",
-			"integrity": "sha512-OTYmKBF7eFKBX39ojUIEzw7AlE1ZRJiFoMTtEQaPMuPzZCP2jUBq6Ey38nuZrYXLkXn3/le9a14pNnKSM0n56w==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.40.0.tgz",
+			"integrity": "sha512-UswBOjpWwk7ziGi9beZGX/XFrp4m1Ws0ni5HI9mzAkOlpKKKWhnX6i95pWQV6sPF4Urv4RJf8WXayHhTbzXzdA==",
 			"dev": true,
 			"dependencies": {
 				"@types/aria-query": "^5.0.0",
 				"@types/node": "^18.0.0",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/repl": "7.33.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/repl": "7.40.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"archiver": "^5.0.0",
 				"aria-query": "^5.2.1",
 				"css-shorthand-properties": "^1.1.1",
 				"css-value": "^0.0.1",
-				"devtools": "7.35.0",
+				"devtools": "7.40.0",
 				"devtools-protocol": "^0.0.1260888",
 				"fs-extra": "^11.1.1",
 				"grapheme-splitter": "^1.0.2",
@@ -13821,7 +13465,42 @@
 				"resq": "^1.9.1",
 				"rgb2hex": "0.2.5",
 				"serialize-error": "^8.0.0",
-				"webdriver": "7.33.0"
+				"webdriver": "7.40.0"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/webdriverio/node_modules/@wdio/types": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+			"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+			"dev": true,
+			"dependencies": {
+				"@types/node": "^18.0.0",
+				"got": "^11.8.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"typescript": "^4.6.2"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/webdriverio/node_modules/@wdio/utils": {
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+			"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+			"dev": true,
+			"dependencies": {
+				"@wdio/logger": "7.26.0",
+				"@wdio/types": "7.40.0",
+				"p-iteration": "^1.1.8"
 			},
 			"engines": {
 				"node": ">=12.0.0"
@@ -13918,9 +13597,9 @@
 			}
 		},
 		"node_modules/workerpool": {
-			"version": "6.2.1",
-			"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
-			"integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
+			"version": "6.5.1",
+			"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz",
+			"integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==",
 			"dev": true
 		},
 		"node_modules/wrap-ansi": {
@@ -14052,9 +13731,9 @@
 			}
 		},
 		"node_modules/yargs-parser": {
-			"version": "20.2.4",
-			"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
-			"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+			"version": "20.2.9",
+			"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+			"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
 			"dev": true,
 			"engines": {
 				"node": ">=10"
@@ -14349,71 +14028,14 @@
 			}
 		},
 		"@babel/code-frame": {
-			"version": "7.22.13",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
-			"integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+			"version": "7.26.2",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+			"integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
 			"dev": true,
 			"requires": {
-				"@babel/highlight": "^7.22.13",
-				"chalk": "^2.4.2"
-			},
-			"dependencies": {
-				"ansi-styles": {
-					"version": "3.2.1",
-					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-					"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-					"dev": true,
-					"requires": {
-						"color-convert": "^1.9.0"
-					}
-				},
-				"chalk": {
-					"version": "2.4.2",
-					"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-					"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-					"dev": true,
-					"requires": {
-						"ansi-styles": "^3.2.1",
-						"escape-string-regexp": "^1.0.5",
-						"supports-color": "^5.3.0"
-					}
-				},
-				"color-convert": {
-					"version": "1.9.3",
-					"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-					"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-					"dev": true,
-					"requires": {
-						"color-name": "1.1.3"
-					}
-				},
-				"color-name": {
-					"version": "1.1.3",
-					"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-					"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-					"dev": true
-				},
-				"escape-string-regexp": {
-					"version": "1.0.5",
-					"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-					"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-					"dev": true
-				},
-				"has-flag": {
-					"version": "3.0.0",
-					"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-					"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-					"dev": true
-				},
-				"supports-color": {
-					"version": "5.5.0",
-					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-					"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-					"dev": true,
-					"requires": {
-						"has-flag": "^3.0.0"
-					}
-				}
+				"@babel/helper-validator-identifier": "^7.25.9",
+				"js-tokens": "^4.0.0",
+				"picocolors": "^1.0.0"
 			}
 		},
 		"@babel/compat-data": {
@@ -14558,9 +14180,9 @@
 			}
 		},
 		"@babel/helper-string-parser": {
-			"version": "7.22.5",
-			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
-			"integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+			"version": "7.25.9",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+			"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
 			"dev": true
 		},
 		"@babel/helper-validator-identifier": {
@@ -14576,91 +14198,24 @@
 			"dev": true
 		},
 		"@babel/helpers": {
-			"version": "7.23.2",
-			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz",
-			"integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==",
+			"version": "7.26.10",
+			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz",
+			"integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==",
 			"dev": true,
 			"requires": {
-				"@babel/template": "^7.22.15",
-				"@babel/traverse": "^7.23.2",
-				"@babel/types": "^7.23.0"
+				"@babel/template": "^7.26.9",
+				"@babel/types": "^7.26.10"
 			}
 		},
-		"@babel/highlight": {
-			"version": "7.22.20",
-			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
-			"integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+		"@babel/parser": {
+			"version": "7.26.10",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz",
+			"integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==",
 			"dev": true,
 			"requires": {
-				"@babel/helper-validator-identifier": "^7.22.20",
-				"chalk": "^2.4.2",
-				"js-tokens": "^4.0.0"
-			},
-			"dependencies": {
-				"ansi-styles": {
-					"version": "3.2.1",
-					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-					"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-					"dev": true,
-					"requires": {
-						"color-convert": "^1.9.0"
-					}
-				},
-				"chalk": {
-					"version": "2.4.2",
-					"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-					"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-					"dev": true,
-					"requires": {
-						"ansi-styles": "^3.2.1",
-						"escape-string-regexp": "^1.0.5",
-						"supports-color": "^5.3.0"
-					}
-				},
-				"color-convert": {
-					"version": "1.9.3",
-					"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-					"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-					"dev": true,
-					"requires": {
-						"color-name": "1.1.3"
-					}
-				},
-				"color-name": {
-					"version": "1.1.3",
-					"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-					"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-					"dev": true
-				},
-				"escape-string-regexp": {
-					"version": "1.0.5",
-					"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-					"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-					"dev": true
-				},
-				"has-flag": {
-					"version": "3.0.0",
-					"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-					"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-					"dev": true
-				},
-				"supports-color": {
-					"version": "5.5.0",
-					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-					"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-					"dev": true,
-					"requires": {
-						"has-flag": "^3.0.0"
-					}
-				}
+				"@babel/types": "^7.26.10"
 			}
 		},
-		"@babel/parser": {
-			"version": "7.23.0",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
-			"integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
-			"dev": true
-		},
 		"@babel/plugin-syntax-async-generators": {
 			"version": "7.8.4",
 			"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
@@ -14788,14 +14343,14 @@
 			}
 		},
 		"@babel/template": {
-			"version": "7.22.15",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
-			"integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+			"version": "7.26.9",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz",
+			"integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==",
 			"dev": true,
 			"requires": {
-				"@babel/code-frame": "^7.22.13",
-				"@babel/parser": "^7.22.15",
-				"@babel/types": "^7.22.15"
+				"@babel/code-frame": "^7.26.2",
+				"@babel/parser": "^7.26.9",
+				"@babel/types": "^7.26.9"
 			}
 		},
 		"@babel/traverse": {
@@ -14825,14 +14380,13 @@
 			}
 		},
 		"@babel/types": {
-			"version": "7.23.0",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
-			"integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
+			"version": "7.26.10",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz",
+			"integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==",
 			"dev": true,
 			"requires": {
-				"@babel/helper-string-parser": "^7.22.5",
-				"@babel/helper-validator-identifier": "^7.22.20",
-				"to-fast-properties": "^2.0.0"
+				"@babel/helper-string-parser": "^7.25.9",
+				"@babel/helper-validator-identifier": "^7.25.9"
 			}
 		},
 		"@bcoe/v8-coverage": {
@@ -14842,16 +14396,16 @@
 			"dev": true
 		},
 		"@csstools/css-parser-algorithms": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.2.tgz",
-			"integrity": "sha512-6tC/MnlEvs5suR4Ahef4YlBccJDHZuxGsAlxXmybWjZ5jPxlzLSMlRZ9mVHSRvlD+CmtE7+hJ+UQbfXrws/rUQ==",
+			"version": "3.0.4",
+			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
+			"integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==",
 			"dev": true,
 			"requires": {}
 		},
 		"@csstools/css-tokenizer": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.2.tgz",
-			"integrity": "sha512-IuTRcD53WHsXPCZ6W7ubfGqReTJ9Ra0yRRFmXYP/Re8hFYYfoIYIK4080X5luslVLWimhIeFq0hj09urVMQzTw==",
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz",
+			"integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==",
 			"dev": true
 		},
 		"@csstools/media-query-list-parser": {
@@ -14861,13 +14415,6 @@
 			"dev": true,
 			"requires": {}
 		},
-		"@csstools/selector-specificity": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-4.0.0.tgz",
-			"integrity": "sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==",
-			"dev": true,
-			"requires": {}
-		},
 		"@dual-bundle/import-meta-resolve": {
 			"version": "4.1.0",
 			"resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
@@ -15621,50 +15168,30 @@
 			}
 		},
 		"@stylistic/stylelint-config": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-1.0.1.tgz",
-			"integrity": "sha512-JgFP88HZEyo34k9RpWVdcQJtLPrMxYE58IO3qypXhmvE/NmZohj+xjDtQ8UfaarnYsLecnldw57/GHum07Ctdw==",
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-2.0.0.tgz",
+			"integrity": "sha512-8J4YAxggy2Nzkb8KJIOLbtMXTPZ5gpKVmyhiiuKEUgCl9XFND5lM0e/ZZBMGEYZ68h5qcsS/jgg1wh235erRAw==",
 			"dev": true,
 			"requires": {
-				"@stylistic/stylelint-plugin": "^2.0.0"
+				"@stylistic/stylelint-plugin": "^3.0.0"
 			}
 		},
 		"@stylistic/stylelint-plugin": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.0.0.tgz",
-			"integrity": "sha512-dHKuT6PGd1WGZLOTuozAM7GdQzdmlmnFXYzvV1jYJXXpcCpV/OJ3+n8TXpMkoOeKHpJydY43EOoZTO1W/FOA4Q==",
+			"version": "3.1.1",
+			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.1.tgz",
+			"integrity": "sha512-XagAHHIa528EvyGybv8EEYGK5zrVW74cHpsjhtovVATbhDRuJYfE+X4HCaAieW9lCkwbX6L+X0I4CiUG3w/hFw==",
 			"dev": true,
 			"requires": {
-				"@csstools/css-parser-algorithms": "^2.3.2",
-				"@csstools/css-tokenizer": "^2.2.1",
-				"@csstools/media-query-list-parser": "^2.1.5",
+				"@csstools/css-parser-algorithms": "^3.0.1",
+				"@csstools/css-tokenizer": "^3.0.1",
+				"@csstools/media-query-list-parser": "^3.0.1",
 				"is-plain-object": "^5.0.0",
-				"postcss-selector-parser": "^6.0.13",
+				"postcss-selector-parser": "^6.1.2",
 				"postcss-value-parser": "^4.2.0",
 				"style-search": "^0.1.0",
-				"stylelint": "^16.0.2"
+				"stylelint": "^16.8.2"
 			},
 			"dependencies": {
-				"@csstools/css-parser-algorithms": {
-					"version": "2.7.1",
-					"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz",
-					"integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==",
-					"dev": true,
-					"requires": {}
-				},
-				"@csstools/css-tokenizer": {
-					"version": "2.4.1",
-					"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz",
-					"integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==",
-					"dev": true
-				},
-				"@csstools/media-query-list-parser": {
-					"version": "2.1.13",
-					"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz",
-					"integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==",
-					"dev": true,
-					"requires": {}
-				},
 				"is-plain-object": {
 					"version": "5.0.0",
 					"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
@@ -16109,9 +15636,9 @@
 			"dev": true
 		},
 		"@wdio/cli": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.36.0.tgz",
-			"integrity": "sha512-vYL2tB9x7vjK3N7oRFJbUKsU4y04wqk7DQXdbmgBzC9Em4u9yvFxvtiDMCSC8kvFowiIhMtEFk8SQacL8pNszA==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.40.0.tgz",
+			"integrity": "sha512-M0txYEqqamBvJe4FEuqwWq1jd879sElF047BXSv2GRu4R1/iEBPYJHjn9KuL60Fkkpp/L1NMHTl7gW9i445edQ==",
 			"dev": true,
 			"requires": {
 				"@types/ejs": "^3.0.5",
@@ -16122,11 +15649,11 @@
 				"@types/lodash.union": "^4.6.6",
 				"@types/node": "^18.0.0",
 				"@types/recursive-readdir": "^2.2.0",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"async-exit-hook": "^2.0.1",
 				"chalk": "^4.0.0",
 				"chokidar": "^3.0.0",
@@ -16139,39 +15666,97 @@
 				"lodash.union": "^4.6.0",
 				"mkdirp": "^3.0.0",
 				"recursive-readdir": "^2.2.2",
-				"webdriverio": "7.36.0",
+				"webdriverio": "7.40.0",
 				"yargs": "^17.0.0",
 				"yarn-install": "^1.0.0"
+			},
+			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				}
 			}
 		},
 		"@wdio/config": {
-			"version": "7.33.0",
-			"resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.33.0.tgz",
-			"integrity": "sha512-SaCZNKrDtBghf7ujyaxTiU4pBW+1Kms32shSoXpJ/wFop6/MiA7nb19qpUPoJtEDw5/NOKevUKz8nBMBXphiew==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.40.0.tgz",
+			"integrity": "sha512-ayQELXyxa+k9/2a509F5a1oTsCa/w8D1nDrd+hzm+1mYb4Te2lceWCCzm+atGKkMpvjLH4GvhrEBYLh3rIWk2A==",
 			"dev": true,
 			"requires": {
 				"@types/glob": "^8.1.0",
 				"@wdio/logger": "7.26.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"deepmerge": "^4.0.0",
 				"glob": "^8.0.3"
+			},
+			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				}
 			}
 		},
 		"@wdio/local-runner": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.36.0.tgz",
-			"integrity": "sha512-01uDD4O5RbtuFE0F7PmtZjYuqCfJ2HvP1b+q8OUm5oINoaQ7djSkHCM01UKu5Rn5I1cQa0vSr5r12puD5Gp+Yw==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.40.0.tgz",
+			"integrity": "sha512-OBuN7TlFhbPUH7Wbh2S8OKZOjeW4rHXOfuGzJfaKkzjHje2Dqide/uC3Gd25MwmzgZcVkOo9DUYiGFCHXc44ug==",
 			"dev": true,
 			"requires": {
 				"@types/stream-buffers": "^3.0.3",
 				"@wdio/logger": "7.26.0",
-				"@wdio/repl": "7.33.0",
-				"@wdio/runner": "7.36.0",
-				"@wdio/types": "7.33.0",
+				"@wdio/repl": "7.40.0",
+				"@wdio/runner": "7.40.0",
+				"@wdio/types": "7.40.0",
 				"async-exit-hook": "^2.0.1",
 				"split2": "^4.0.0",
 				"stream-buffers": "^3.0.2"
+			},
+			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				}
 			}
 		},
 		"@wdio/logger": {
@@ -16207,12 +15792,35 @@
 			"dev": true
 		},
 		"@wdio/repl": {
-			"version": "7.33.0",
-			"resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.33.0.tgz",
-			"integrity": "sha512-17KM9NCg+UVpZNbS8koT/917vklF5M8IQnw0kGwmJEo444ifTMxmLwQymbS2ovQKAKAQxlfdM7bpqMeI15kzsQ==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.40.0.tgz",
+			"integrity": "sha512-6tzT7lOMxBwdqMVdW4QxlzrQadGPta4HedFcJo4LyRz9PkXPTF68qeIGs0GyZvy/5AqspNWaAJvIR7f3T3tCyw==",
 			"dev": true,
 			"requires": {
-				"@wdio/utils": "7.33.0"
+				"@wdio/utils": "7.40.0"
+			},
+			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				}
 			}
 		},
 		"@wdio/reporter": {
@@ -16263,19 +15871,42 @@
 			}
 		},
 		"@wdio/runner": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.36.0.tgz",
-			"integrity": "sha512-EU/0XprH6UEqaYarxuSSLYgsxC6/jLHE7Wj/5FIJyFwdx//Ip8DnTXzbJylskeWX2NkCfJH2VerGSo423c98+Q==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.40.0.tgz",
+			"integrity": "sha512-3dGn8sU9Oc0kTq+hcxNSqkF1acqiTAzamyNWsWXAX7V0FOfZxp0wmD9aMqY+sVT6g8mUE5aePT1ydONE5o+6QA==",
 			"dev": true,
 			"requires": {
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"deepmerge": "^4.0.0",
 				"gaze": "^1.1.2",
-				"webdriver": "7.33.0",
-				"webdriverio": "7.36.0"
+				"webdriver": "7.40.0",
+				"webdriverio": "7.40.0"
+			},
+			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				}
 			}
 		},
 		"@wdio/spec-reporter": {
@@ -16391,9 +16022,9 @@
 			}
 		},
 		"ansi-colors": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
-			"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+			"integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
 			"dev": true
 		},
 		"ansi-escapes": {
@@ -17649,12 +17280,12 @@
 			}
 		},
 		"css-tree": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.0.tgz",
-			"integrity": "sha512-o88DVQ6GzsABn1+6+zo2ct801dBO5OASVyxbbvA2W20ue2puSh/VOuqUj90eUeMSX/xqGqBmOKiRQN7tJOuBXw==",
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+			"integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
 			"dev": true,
 			"requires": {
-				"mdn-data": "2.10.0",
+				"mdn-data": "2.12.2",
 				"source-map-js": "^1.0.1"
 			}
 		},
@@ -17801,18 +17432,18 @@
 			"dev": true
 		},
 		"devtools": {
-			"version": "7.35.0",
-			"resolved": "https://registry.npmjs.org/devtools/-/devtools-7.35.0.tgz",
-			"integrity": "sha512-7HMZMcJSCK/PaBCWVs4n4ZhtBNdUQj10iPwXvj/JDkqPreEXN/XW9GJAoMuLPFmCEKfxe+LrIbgs8ocGJ6rp/A==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/devtools/-/devtools-7.40.0.tgz",
+			"integrity": "sha512-hiDPCNG/mpD+bSgegxoe5nwyxWav+QpIvT+7H9D0dUwjB0q04OF473qGflSQ1QpGig6l4qG92tA7dVnLsdP75A==",
 			"dev": true,
 			"requires": {
 				"@types/node": "^18.0.0",
 				"@types/ua-parser-js": "^0.7.33",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"chrome-launcher": "^0.15.0",
 				"edge-paths": "^2.1.0",
 				"puppeteer-core": "13.1.3",
@@ -17821,6 +17452,27 @@
 				"uuid": "^9.0.0"
 			},
 			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				},
 				"debug": {
 					"version": "4.3.2",
 					"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
@@ -17897,9 +17549,9 @@
 			"dev": true
 		},
 		"diff": {
-			"version": "5.1.0",
-			"resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
-			"integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
+			"version": "5.2.0",
+			"resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+			"integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
 			"dev": true
 		},
 		"diff-sequences": {
@@ -17935,13 +17587,13 @@
 			}
 		},
 		"doiuse": {
-			"version": "6.0.3",
-			"resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.3.tgz",
-			"integrity": "sha512-cgu7al1yxHpRS+Q+ru3LQYUDttoPBGYgY7JunTdr0VeFMjBAwXVHTyZxn48ZOuxpBB30W52kOK6mwbduuqNboQ==",
+			"version": "6.0.5",
+			"resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.5.tgz",
+			"integrity": "sha512-ljuf9ndGqKST0GlPAYyCg04hbQAeR1xIIWVDjQaDDkoTY/Y1Vb+8FNoy6NuVuJIEEKe/nKUH8NRWjG7JJxZ9Eg==",
 			"dev": true,
 			"requires": {
-				"browserslist": "^4.23.3",
-				"caniuse-lite": "^1.0.30001662",
+				"browserslist": "^4.24.0",
+				"caniuse-lite": "^1.0.30001669",
 				"css-tokenize": "^1.0.1",
 				"duplexify": "^4.1.3",
 				"multimatch": "^5.0.0",
@@ -17985,9 +17637,9 @@
 			}
 		},
 		"domutils": {
-			"version": "3.1.0",
-			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
-			"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+			"version": "3.2.2",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
+			"integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
 			"dev": true,
 			"requires": {
 				"dom-serializer": "^2.0.0",
@@ -18785,9 +18437,9 @@
 			"dev": true
 		},
 		"fast-uri": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz",
-			"integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==",
+			"version": "3.0.6",
+			"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz",
+			"integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==",
 			"dev": true
 		},
 		"fastest-levenshtein": {
@@ -21321,9 +20973,9 @@
 			"dev": true
 		},
 		"known-css-properties": {
-			"version": "0.34.0",
-			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz",
-			"integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==",
+			"version": "0.35.0",
+			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz",
+			"integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==",
 			"dev": true
 		},
 		"ky": {
@@ -21673,9 +21325,9 @@
 			"dev": true
 		},
 		"mdn-data": {
-			"version": "2.10.0",
-			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.10.0.tgz",
-			"integrity": "sha512-qq7C3EtK3yJXMwz1zAab65pjl+UhohqMOctTgcqjLOWABqmwj+me02LSsCuEUxnst9X1lCBpoE0WArGKgdGDzw==",
+			"version": "2.12.2",
+			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+			"integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
 			"dev": true
 		},
 		"memorystream": {
@@ -21785,34 +21437,42 @@
 			"dev": true
 		},
 		"mocha": {
-			"version": "10.2.0",
-			"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz",
-			"integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==",
+			"version": "10.8.2",
+			"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
+			"integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==",
 			"dev": true,
 			"requires": {
-				"ansi-colors": "4.1.1",
-				"browser-stdout": "1.3.1",
-				"chokidar": "3.5.3",
-				"debug": "4.3.4",
-				"diff": "5.0.0",
-				"escape-string-regexp": "4.0.0",
-				"find-up": "5.0.0",
-				"glob": "7.2.0",
-				"he": "1.2.0",
-				"js-yaml": "4.1.0",
-				"log-symbols": "4.1.0",
-				"minimatch": "5.0.1",
-				"ms": "2.1.3",
-				"nanoid": "3.3.3",
-				"serialize-javascript": "6.0.0",
-				"strip-json-comments": "3.1.1",
-				"supports-color": "8.1.1",
-				"workerpool": "6.2.1",
-				"yargs": "16.2.0",
-				"yargs-parser": "20.2.4",
-				"yargs-unparser": "2.0.0"
+				"ansi-colors": "^4.1.3",
+				"browser-stdout": "^1.3.1",
+				"chokidar": "^3.5.3",
+				"debug": "^4.3.5",
+				"diff": "^5.2.0",
+				"escape-string-regexp": "^4.0.0",
+				"find-up": "^5.0.0",
+				"glob": "^8.1.0",
+				"he": "^1.2.0",
+				"js-yaml": "^4.1.0",
+				"log-symbols": "^4.1.0",
+				"minimatch": "^5.1.6",
+				"ms": "^2.1.3",
+				"serialize-javascript": "^6.0.2",
+				"strip-json-comments": "^3.1.1",
+				"supports-color": "^8.1.1",
+				"workerpool": "^6.5.1",
+				"yargs": "^16.2.0",
+				"yargs-parser": "^20.2.9",
+				"yargs-unparser": "^2.0.0"
 			},
 			"dependencies": {
+				"brace-expansion": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+					"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+					"dev": true,
+					"requires": {
+						"balanced-match": "^1.0.0"
+					}
+				},
 				"cliui": {
 					"version": "7.0.4",
 					"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@@ -21824,55 +21484,22 @@
 						"wrap-ansi": "^7.0.0"
 					}
 				},
-				"diff": {
-					"version": "5.0.0",
-					"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
-					"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
-					"dev": true
-				},
-				"glob": {
-					"version": "7.2.0",
-					"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
-					"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+				"debug": {
+					"version": "4.4.0",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+					"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
 					"dev": true,
 					"requires": {
-						"fs.realpath": "^1.0.0",
-						"inflight": "^1.0.4",
-						"inherits": "2",
-						"minimatch": "^3.0.4",
-						"once": "^1.3.0",
-						"path-is-absolute": "^1.0.0"
-					},
-					"dependencies": {
-						"minimatch": {
-							"version": "3.1.2",
-							"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
-							"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-							"dev": true,
-							"requires": {
-								"brace-expansion": "^1.1.7"
-							}
-						}
+						"ms": "^2.1.3"
 					}
 				},
 				"minimatch": {
-					"version": "5.0.1",
-					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
-					"integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+					"version": "5.1.6",
+					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+					"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
 					"dev": true,
 					"requires": {
 						"brace-expansion": "^2.0.1"
-					},
-					"dependencies": {
-						"brace-expansion": {
-							"version": "2.0.1",
-							"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-							"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-							"dev": true,
-							"requires": {
-								"balanced-match": "^1.0.0"
-							}
-						}
 					}
 				},
 				"ms": {
@@ -21943,12 +21570,6 @@
 				"semver": "^7.3.8"
 			}
 		},
-		"nanoid": {
-			"version": "3.3.3",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
-			"integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
-			"dev": true
-		},
 		"natural-compare": {
 			"version": "1.4.0",
 			"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -22453,9 +22074,9 @@
 			"dev": true
 		},
 		"picocolors": {
-			"version": "1.1.0",
-			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
-			"integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
+			"version": "1.1.1",
+			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+			"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
 			"dev": true
 		},
 		"picomatch": {
@@ -22552,40 +22173,40 @@
 			"dev": true
 		},
 		"postcss": {
-			"version": "8.4.47",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
-			"integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
+			"version": "8.5.3",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+			"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
 			"dev": true,
 			"requires": {
-				"nanoid": "^3.3.7",
-				"picocolors": "^1.1.0",
+				"nanoid": "^3.3.8",
+				"picocolors": "^1.1.1",
 				"source-map-js": "^1.2.1"
 			},
 			"dependencies": {
 				"nanoid": {
-					"version": "3.3.7",
-					"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
-					"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+					"version": "3.3.9",
+					"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz",
+					"integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==",
 					"dev": true
 				}
 			}
 		},
 		"postcss-html": {
-			"version": "1.6.0",
-			"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.6.0.tgz",
-			"integrity": "sha512-OWgQ9/Pe23MnNJC0PL4uZp8k0EDaUvqpJFSiwFxOLClAhmD7UEisyhO3x5hVsD4xFrjReVTXydlrMes45dJ71w==",
+			"version": "1.7.0",
+			"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.7.0.tgz",
+			"integrity": "sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==",
 			"dev": true,
 			"requires": {
 				"htmlparser2": "^8.0.0",
-				"js-tokens": "^8.0.0",
+				"js-tokens": "^9.0.0",
 				"postcss": "^8.4.0",
 				"postcss-safe-parser": "^6.0.0"
 			},
 			"dependencies": {
 				"js-tokens": {
-					"version": "8.0.3",
-					"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz",
-					"integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==",
+					"version": "9.0.1",
+					"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
+					"integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
 					"dev": true
 				},
 				"postcss-safe-parser": {
@@ -23357,9 +22978,9 @@
 			}
 		},
 		"serialize-javascript": {
-			"version": "6.0.0",
-			"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
-			"integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+			"version": "6.0.2",
+			"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+			"integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
 			"dev": true,
 			"requires": {
 				"randombytes": "^2.1.0"
@@ -23666,21 +23287,21 @@
 			"dev": true
 		},
 		"stylelint": {
-			"version": "16.10.0",
-			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.10.0.tgz",
-			"integrity": "sha512-z/8X2rZ52dt2c0stVwI9QL2AFJhLhbPkyfpDFcizs200V/g7v+UYY6SNcB9hKOLcDDX/yGLDsY/pX08sLkz9xQ==",
+			"version": "16.12.0",
+			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.12.0.tgz",
+			"integrity": "sha512-F8zZ3L/rBpuoBZRvI4JVT20ZanPLXfQLzMOZg1tzPflRVh9mKpOZ8qcSIhh1my3FjAjZWG4T2POwGnmn6a6hbg==",
 			"dev": true,
 			"requires": {
-				"@csstools/css-parser-algorithms": "^3.0.1",
-				"@csstools/css-tokenizer": "^3.0.1",
-				"@csstools/media-query-list-parser": "^3.0.1",
-				"@csstools/selector-specificity": "^4.0.0",
+				"@csstools/css-parser-algorithms": "^3.0.4",
+				"@csstools/css-tokenizer": "^3.0.3",
+				"@csstools/media-query-list-parser": "^4.0.2",
+				"@csstools/selector-specificity": "^5.0.0",
 				"@dual-bundle/import-meta-resolve": "^4.1.0",
 				"balanced-match": "^2.0.0",
 				"colord": "^2.9.3",
 				"cosmiconfig": "^9.0.0",
 				"css-functions-list": "^3.2.3",
-				"css-tree": "^3.0.0",
+				"css-tree": "^3.0.1",
 				"debug": "^4.3.7",
 				"fast-glob": "^3.3.2",
 				"fastest-levenshtein": "^1.0.16",
@@ -23692,25 +23313,39 @@
 				"ignore": "^6.0.2",
 				"imurmurhash": "^0.1.4",
 				"is-plain-object": "^5.0.0",
-				"known-css-properties": "^0.34.0",
+				"known-css-properties": "^0.35.0",
 				"mathml-tag-names": "^2.1.3",
 				"meow": "^13.2.0",
 				"micromatch": "^4.0.8",
 				"normalize-path": "^3.0.0",
-				"picocolors": "^1.0.1",
-				"postcss": "^8.4.47",
+				"picocolors": "^1.1.1",
+				"postcss": "^8.4.49",
 				"postcss-resolve-nested-selector": "^0.1.6",
 				"postcss-safe-parser": "^7.0.1",
-				"postcss-selector-parser": "^6.1.2",
+				"postcss-selector-parser": "^7.0.0",
 				"postcss-value-parser": "^4.2.0",
 				"resolve-from": "^5.0.0",
 				"string-width": "^4.2.3",
 				"supports-hyperlinks": "^3.1.0",
 				"svg-tags": "^1.0.0",
-				"table": "^6.8.2",
+				"table": "^6.9.0",
 				"write-file-atomic": "^5.0.1"
 			},
 			"dependencies": {
+				"@csstools/media-query-list-parser": {
+					"version": "4.0.2",
+					"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz",
+					"integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==",
+					"dev": true,
+					"requires": {}
+				},
+				"@csstools/selector-specificity": {
+					"version": "5.0.0",
+					"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+					"integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
+					"dev": true,
+					"requires": {}
+				},
 				"balanced-match": {
 					"version": "2.0.0",
 					"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
@@ -23783,6 +23418,16 @@
 					"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
 					"dev": true
 				},
+				"postcss-selector-parser": {
+					"version": "7.1.0",
+					"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+					"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
+					"dev": true,
+					"requires": {
+						"cssesc": "^3.0.0",
+						"util-deprecate": "^1.0.2"
+					}
+				},
 				"resolve-from": {
 					"version": "5.0.0",
 					"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
@@ -23817,229 +23462,35 @@
 			}
 		},
 		"stylelint-config-recommended": {
-			"version": "14.0.0",
-			"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz",
-			"integrity": "sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==",
+			"version": "14.0.1",
+			"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz",
+			"integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==",
 			"dev": true,
 			"requires": {}
 		},
 		"stylelint-config-wikimedia": {
-			"version": "0.17.2",
-			"resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.17.2.tgz",
-			"integrity": "sha512-cc3PYhe1O/GTgsMOp+Ri3ru579YBbZ3Me0oU7xNb06n4iwyXYPz8qO5G4iQ13UH19UW2NIS8Tk0goPRrJ1RAfw==",
+			"version": "0.18.0",
+			"resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.18.0.tgz",
+			"integrity": "sha512-Lr45NIe7pG8i7BPcMc6EddO1pRK8/KNG8gp4o/oOG1Ez10hglJuJb/QT17BlzX8NPkhtP2KdY63NS2f/Wcj6Ww==",
 			"dev": true,
 			"requires": {
-				"@stylistic/stylelint-config": "1.0.1",
-				"@stylistic/stylelint-plugin": "2.0.0",
+				"@stylistic/stylelint-config": "2.0.0",
+				"@stylistic/stylelint-plugin": "3.1.1",
 				"browserslist-config-wikimedia": "0.7.0",
-				"postcss-html": "1.6.0",
+				"postcss-html": "1.7.0",
 				"postcss-less": "6.0.0",
-				"stylelint": "16.2.0",
-				"stylelint-config-recommended": "14.0.0",
-				"stylelint-no-unsupported-browser-features": "8.0.1"
-			},
-			"dependencies": {
-				"@csstools/css-parser-algorithms": {
-					"version": "2.7.1",
-					"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz",
-					"integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==",
-					"dev": true,
-					"requires": {}
-				},
-				"@csstools/css-tokenizer": {
-					"version": "2.4.1",
-					"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz",
-					"integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==",
-					"dev": true
-				},
-				"@csstools/media-query-list-parser": {
-					"version": "2.1.13",
-					"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz",
-					"integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==",
-					"dev": true,
-					"requires": {}
-				},
-				"@csstools/selector-specificity": {
-					"version": "3.1.1",
-					"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz",
-					"integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==",
-					"dev": true,
-					"requires": {}
-				},
-				"ansi-regex": {
-					"version": "6.1.0",
-					"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
-					"integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
-					"dev": true
-				},
-				"balanced-match": {
-					"version": "2.0.0",
-					"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
-					"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
-					"dev": true
-				},
-				"css-tree": {
-					"version": "2.3.1",
-					"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
-					"integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
-					"dev": true,
-					"requires": {
-						"mdn-data": "2.0.30",
-						"source-map-js": "^1.0.1"
-					}
-				},
-				"file-entry-cache": {
-					"version": "8.0.0",
-					"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
-					"integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
-					"dev": true,
-					"requires": {
-						"flat-cache": "^4.0.0"
-					}
-				},
-				"flat-cache": {
-					"version": "4.0.1",
-					"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
-					"integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
-					"dev": true,
-					"requires": {
-						"flatted": "^3.2.9",
-						"keyv": "^4.5.4"
-					}
-				},
-				"global-modules": {
-					"version": "2.0.0",
-					"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
-					"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
-					"dev": true,
-					"requires": {
-						"global-prefix": "^3.0.0"
-					}
-				},
-				"global-prefix": {
-					"version": "3.0.0",
-					"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
-					"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
-					"dev": true,
-					"requires": {
-						"ini": "^1.3.5",
-						"kind-of": "^6.0.2",
-						"which": "^1.3.1"
-					}
-				},
-				"is-plain-object": {
-					"version": "5.0.0",
-					"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
-					"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
-					"dev": true
-				},
-				"known-css-properties": {
-					"version": "0.29.0",
-					"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
-					"integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
-					"dev": true
-				},
-				"mdn-data": {
-					"version": "2.0.30",
-					"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
-					"integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
-					"dev": true
-				},
-				"resolve-from": {
-					"version": "5.0.0",
-					"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
-					"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
-					"dev": true
-				},
-				"signal-exit": {
-					"version": "4.1.0",
-					"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
-					"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
-					"dev": true
-				},
-				"strip-ansi": {
-					"version": "7.1.0",
-					"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
-					"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
-					"dev": true,
-					"requires": {
-						"ansi-regex": "^6.0.1"
-					}
-				},
-				"stylelint": {
-					"version": "16.2.0",
-					"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.0.tgz",
-					"integrity": "sha512-gwqU5AkIb52wrAzzn+359S3NIJDMl02TXLUaV2tzA/L6jUdpTwNt+MCxHlc8+Hb2bUHlYVo92YeSIryF2gJthA==",
-					"dev": true,
-					"requires": {
-						"@csstools/css-parser-algorithms": "^2.5.0",
-						"@csstools/css-tokenizer": "^2.2.3",
-						"@csstools/media-query-list-parser": "^2.1.7",
-						"@csstools/selector-specificity": "^3.0.1",
-						"balanced-match": "^2.0.0",
-						"colord": "^2.9.3",
-						"cosmiconfig": "^9.0.0",
-						"css-functions-list": "^3.2.1",
-						"css-tree": "^2.3.1",
-						"debug": "^4.3.4",
-						"fast-glob": "^3.3.2",
-						"fastest-levenshtein": "^1.0.16",
-						"file-entry-cache": "^8.0.0",
-						"global-modules": "^2.0.0",
-						"globby": "^11.1.0",
-						"globjoin": "^0.1.4",
-						"html-tags": "^3.3.1",
-						"ignore": "^5.3.0",
-						"imurmurhash": "^0.1.4",
-						"is-plain-object": "^5.0.0",
-						"known-css-properties": "^0.29.0",
-						"mathml-tag-names": "^2.1.3",
-						"meow": "^13.1.0",
-						"micromatch": "^4.0.5",
-						"normalize-path": "^3.0.0",
-						"picocolors": "^1.0.0",
-						"postcss": "^8.4.33",
-						"postcss-resolve-nested-selector": "^0.1.1",
-						"postcss-safe-parser": "^7.0.0",
-						"postcss-selector-parser": "^6.0.15",
-						"postcss-value-parser": "^4.2.0",
-						"resolve-from": "^5.0.0",
-						"string-width": "^4.2.3",
-						"strip-ansi": "^7.1.0",
-						"supports-hyperlinks": "^3.0.0",
-						"svg-tags": "^1.0.0",
-						"table": "^6.8.1",
-						"write-file-atomic": "^5.0.1"
-					}
-				},
-				"which": {
-					"version": "1.3.1",
-					"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-					"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-					"dev": true,
-					"requires": {
-						"isexe": "^2.0.0"
-					}
-				},
-				"write-file-atomic": {
-					"version": "5.0.1",
-					"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
-					"integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
-					"dev": true,
-					"requires": {
-						"imurmurhash": "^0.1.4",
-						"signal-exit": "^4.0.1"
-					}
-				}
+				"stylelint": "16.12.0",
+				"stylelint-config-recommended": "14.0.1",
+				"stylelint-no-unsupported-browser-features": "8.0.2"
 			}
 		},
 		"stylelint-no-unsupported-browser-features": {
-			"version": "8.0.1",
-			"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-8.0.1.tgz",
-			"integrity": "sha512-tc8Xn5DaqJhxTmbA4H8gZbYdAz027NfuSZv5+cVieQb7BtBrF/1/iKYdpcGwXPl3GtqkQrisiXuGqKkKnzWcLw==",
+			"version": "8.0.2",
+			"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-8.0.2.tgz",
+			"integrity": "sha512-4PY2qJ3ZTEje9RgGfaQ82eJoPioXxs6hazeKpji/wzLNVzTX2wd4b0Ds3ewdLkH3ID+o63IInuTquU2MNJO3YQ==",
 			"dev": true,
 			"requires": {
-				"doiuse": "^6.0.2",
+				"doiuse": "^6.0.5",
 				"postcss": "^8.4.32"
 			}
 		},
@@ -24149,9 +23600,9 @@
 			"dev": true
 		},
 		"table": {
-			"version": "6.8.2",
-			"resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz",
-			"integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==",
+			"version": "6.9.0",
+			"resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz",
+			"integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==",
 			"dev": true,
 			"requires": {
 				"ajv": "^8.0.1",
@@ -24266,12 +23717,6 @@
 			"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
 			"dev": true
 		},
-		"to-fast-properties": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-			"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
-			"dev": true
-		},
 		"to-regex-range": {
 			"version": "5.0.1",
 			"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -24410,9 +23855,9 @@
 			"peer": true
 		},
 		"ua-parser-js": {
-			"version": "1.0.39",
-			"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz",
-			"integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==",
+			"version": "1.0.40",
+			"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz",
+			"integrity": "sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==",
 			"dev": true
 		},
 		"unbox-primitive": {
@@ -24587,41 +24032,64 @@
 			"requires": {}
 		},
 		"webdriver": {
-			"version": "7.33.0",
-			"resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.33.0.tgz",
-			"integrity": "sha512-cyMRAVUHgQhEBHojOeNet2e8GkfyvvjpioNCPcF6qUtT+URdagr8Mh0t4Fs+Jr0tpuMqFnw70xZexAcV/6I/jg==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.40.0.tgz",
+			"integrity": "sha512-CKi3cDWgNVE/ibcsBfdtA+pQVeZ4oYlecLlwemulVxJdgr4l5bv+nXuoIhnYeVb6aAI4naK772vmWQ0XuRYhDQ==",
 			"dev": true,
 			"requires": {
 				"@types/node": "^18.0.0",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"got": "^11.0.2",
 				"ky": "0.30.0",
 				"lodash.merge": "^4.6.1"
+			},
+			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				}
 			}
 		},
 		"webdriverio": {
-			"version": "7.36.0",
-			"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.36.0.tgz",
-			"integrity": "sha512-OTYmKBF7eFKBX39ojUIEzw7AlE1ZRJiFoMTtEQaPMuPzZCP2jUBq6Ey38nuZrYXLkXn3/le9a14pNnKSM0n56w==",
+			"version": "7.40.0",
+			"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.40.0.tgz",
+			"integrity": "sha512-UswBOjpWwk7ziGi9beZGX/XFrp4m1Ws0ni5HI9mzAkOlpKKKWhnX6i95pWQV6sPF4Urv4RJf8WXayHhTbzXzdA==",
 			"dev": true,
 			"requires": {
 				"@types/aria-query": "^5.0.0",
 				"@types/node": "^18.0.0",
-				"@wdio/config": "7.33.0",
+				"@wdio/config": "7.40.0",
 				"@wdio/logger": "7.26.0",
 				"@wdio/protocols": "7.27.0",
-				"@wdio/repl": "7.33.0",
-				"@wdio/types": "7.33.0",
-				"@wdio/utils": "7.33.0",
+				"@wdio/repl": "7.40.0",
+				"@wdio/types": "7.40.0",
+				"@wdio/utils": "7.40.0",
 				"archiver": "^5.0.0",
 				"aria-query": "^5.2.1",
 				"css-shorthand-properties": "^1.1.1",
 				"css-value": "^0.0.1",
-				"devtools": "7.35.0",
+				"devtools": "7.40.0",
 				"devtools-protocol": "^0.0.1260888",
 				"fs-extra": "^11.1.1",
 				"grapheme-splitter": "^1.0.2",
@@ -24635,9 +24103,30 @@
 				"resq": "^1.9.1",
 				"rgb2hex": "0.2.5",
 				"serialize-error": "^8.0.0",
-				"webdriver": "7.33.0"
+				"webdriver": "7.40.0"
 			},
 			"dependencies": {
+				"@wdio/types": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.40.0.tgz",
+					"integrity": "sha512-MWMbU+8uk+JrF7ygP/TJDsaSvFozKauiW6EnG7rxx9+GvU1Q1B3l4UjAc7GDbgLKjwt8T2y5GDRiDoD3UOjVyw==",
+					"dev": true,
+					"requires": {
+						"@types/node": "^18.0.0",
+						"got": "^11.8.1"
+					}
+				},
+				"@wdio/utils": {
+					"version": "7.40.0",
+					"resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.40.0.tgz",
+					"integrity": "sha512-jLF57xHmz5nnGuM6ZRWjVYa/LQb22CS7yG50dUFa9wJ509mC1HlUzaA01Gjk9TV5jf9vnwE/yZfUMCoecTgG9w==",
+					"dev": true,
+					"requires": {
+						"@wdio/logger": "7.26.0",
+						"@wdio/types": "7.40.0",
+						"p-iteration": "^1.1.8"
+					}
+				},
 				"brace-expansion": {
 					"version": "2.0.1",
 					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -24710,9 +24199,9 @@
 			}
 		},
 		"workerpool": {
-			"version": "6.2.1",
-			"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
-			"integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
+			"version": "6.5.1",
+			"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz",
+			"integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==",
 			"dev": true
 		},
 		"wrap-ansi": {
@@ -24808,9 +24297,9 @@
 			}
 		},
 		"yargs-parser": {
-			"version": "20.2.4",
-			"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
-			"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+			"version": "20.2.9",
+			"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+			"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
 			"dev": true
 		},
 		"yargs-unparser": {
diff --git a/package.json b/package.json
index 1b358d3..dd7263a 100644
--- a/package.json
+++ b/package.json
@@ -44,7 +44,7 @@
 		"jest": "29.7.0",
 		"mocha": "^10.2.0",
 		"npm-run-all": "^4.1.5",
-		"stylelint-config-wikimedia": "0.17.2",
+		"stylelint-config-wikimedia": "0.18.0",
 		"wdio-mediawiki": "2.6.0",
 		"wdio-wikibase": "^6.0.3"
 	},
-- 
2.39.2


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