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

sourcepatches

This run took 1430 seconds.

From 6305c258de07dcf29e42b40e6cd017fc29862704 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sat, 8 Nov 2025 04:57:54 +0000
Subject: [PATCH] build: Updating npm dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* api-testing: 1.7.0 → 1.7.1
* @wikimedia/codex: 2.3.1 → 2.3.2
* puppeteer-core: 13.7.0 → 24.29.1
  * https://github.com/advisories/GHSA-3h5v-q93c-6h6q
  * https://github.com/advisories/GHSA-8cj5-5rvv-wf4v
  * https://github.com/advisories/GHSA-pq67-2wwv-3xjx
  * https://github.com/advisories/GHSA-vj76-c3g6-qr5v
* tar-fs: 2.1.1, 3.1.1 → 3.1.1
  * https://github.com/advisories/GHSA-8cj5-5rvv-wf4v
  * https://github.com/advisories/GHSA-pq67-2wwv-3xjx
  * https://github.com/advisories/GHSA-vj76-c3g6-qr5v
* ws: 8.18.1, 8.18.3, 8.5.0 → 8.18.3
  * https://github.com/advisories/GHSA-3h5v-q93c-6h6q

Change-Id: If9a8e7e28675bbf6d8078263ef2488cf46e93b0d
---
 package-lock.json | 836 ++++++++++++++++------------------------------
 package.json      |   4 +-
 2 files changed, 297 insertions(+), 543 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index aac4363..1608974 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,8 +17,8 @@
 				"@wdio/local-runner": "^9.20.0",
 				"@wdio/mocha-framework": "^9.20.0",
 				"@wdio/spec-reporter": "^9.20.0",
-				"@wikimedia/codex": "2.3.1",
-				"api-testing": "1.7.0",
+				"@wikimedia/codex": "2.3.2",
+				"api-testing": "1.7.1",
 				"apollo-boost": "^0.4.9",
 				"axe-core": "^4.10.3",
 				"cross-fetch": "^3.1.5",
@@ -3502,6 +3502,18 @@
 			"integrity": "sha512-0USwV4F7T4vWGqPoefi0j103sq6Nut2YEXqLz9TUyoj7LBbqXSeWseNRHA7C6LXXm0glrvllKXdeju4oHqIxZw==",
 			"dev": true
 		},
+		"node_modules/@noble/hashes": {
+			"version": "1.8.0",
+			"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+			"integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+			"dev": true,
+			"engines": {
+				"node": "^14.21.3 || >=16"
+			},
+			"funding": {
+				"url": "https://paulmillr.com/funding/"
+			}
+		},
 		"node_modules/@nodelib/fs.scandir": {
 			"version": "2.1.5",
 			"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -3543,6 +3555,15 @@
 			"integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==",
 			"dev": true
 		},
+		"node_modules/@paralleldrive/cuid2": {
+			"version": "2.3.1",
+			"resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz",
+			"integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==",
+			"dev": true,
+			"dependencies": {
+				"@noble/hashes": "^1.1.5"
+			}
+		},
 		"node_modules/@pinia/testing": {
 			"version": "0.0.12",
 			"resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-0.0.12.tgz",
@@ -3614,9 +3635,9 @@
 			}
 		},
 		"node_modules/@puppeteer/browsers": {
-			"version": "2.10.12",
-			"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.12.tgz",
-			"integrity": "sha512-mP9iLFZwH+FapKJLeA7/fLqOlSUwYpMwjR1P5J23qd4e7qGJwecJccJqHYrjw33jmIZYV4dtiTHPD/J+1e7cEw==",
+			"version": "2.10.13",
+			"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.13.tgz",
+			"integrity": "sha512-a9Ruw3j3qlnB5a/zHRTkruppynxqaeE4H9WNj5eYGRWqw0ZauZ23f4W2ARf3hghF5doozyD+CRtt7XSYuYRI/Q==",
 			"dev": true,
 			"dependencies": {
 				"debug": "^4.4.3",
@@ -3634,29 +3655,6 @@
 				"node": ">=18"
 			}
 		},
-		"node_modules/@puppeteer/browsers/node_modules/debug": {
-			"version": "4.4.3",
-			"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
-			"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
-			"dev": true,
-			"dependencies": {
-				"ms": "^2.1.3"
-			},
-			"engines": {
-				"node": ">=6.0"
-			},
-			"peerDependenciesMeta": {
-				"supports-color": {
-					"optional": true
-				}
-			}
-		},
-		"node_modules/@puppeteer/browsers/node_modules/ms": {
-			"version": "2.1.3",
-			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-			"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-			"dev": true
-		},
 		"node_modules/@puppeteer/browsers/node_modules/tar-fs": {
 			"version": "3.1.1",
 			"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz",
@@ -5242,13 +5240,13 @@
 			}
 		},
 		"node_modules/@wikimedia/codex": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.3.1.tgz",
-			"integrity": "sha512-cQhs0LfmGUxML05QBdpt7RkqLdLgRv48yD/JTyr12I43w7msZwZEhYmztMC+Q1l7Ra7YEKpBegoqkljMOrMpOA==",
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.3.2.tgz",
+			"integrity": "sha512-kzDg5RZxvlaJEE0JDK+CQjR+83DpY/QEW01BwLalcDKhP/HCujMz2QpsUAV8qaGNArAO/IkIUzBj1+2eL7yKNg==",
 			"dev": true,
 			"dependencies": {
 				"@floating-ui/vue": "1.0.6",
-				"@wikimedia/codex-icons": "2.3.1"
+				"@wikimedia/codex-icons": "2.3.2"
 			},
 			"engines": {
 				"node": ">=20.19.1",
@@ -5259,9 +5257,9 @@
 			}
 		},
 		"node_modules/@wikimedia/codex-icons": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.3.1.tgz",
-			"integrity": "sha512-lMZD1V8mtfFxuUHimAGi9Qd9vAliV7P/KS0SDk/F+aBRAR0as6cLaWAEx8uanhRJ/Ptdl5pp4WELydkpaTXS/w==",
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.3.2.tgz",
+			"integrity": "sha512-2oIGBBrK7B+oHhiKjGdkrZdABCymaSAFCRrBOj+83S5oD/q0u+D3IEs/SQ1JT1RuV5pv/iap3mh7StPfLKI1mw==",
 			"dev": true,
 			"engines": {
 				"node": ">=20.19.1",
@@ -5481,16 +5479,16 @@
 			}
 		},
 		"node_modules/api-testing": {
-			"version": "1.7.0",
-			"resolved": "https://registry.npmjs.org/api-testing/-/api-testing-1.7.0.tgz",
-			"integrity": "sha512-+gp8xQtm1CYQNgsGvzolWjjkm059mDuTF975P0aebUfekouY+CIPirfGjU+UT464b2+wVaiSy5wPlDnXB1zXBA==",
+			"version": "1.7.1",
+			"resolved": "https://registry.npmjs.org/api-testing/-/api-testing-1.7.1.tgz",
+			"integrity": "sha512-h6eqLa9uOOpbBXGN6/s91GquV1YprC1XLVtWIRv/25XWFRqHibIBwuXjqcUqFSsU1fgYvfclSMRXuUcCvEmX6A==",
 			"dev": true,
 			"dependencies": {
-				"chai": "^4.2.0",
-				"supertest": "^5.0.0-0"
+				"chai": "4.5.0",
+				"supertest": "7.1.0"
 			},
 			"engines": {
-				"node": ">= 10.0.0"
+				"node": ">= 14.18.0"
 			}
 		},
 		"node_modules/apollo-boost": {
@@ -5933,6 +5931,12 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/asap": {
+			"version": "2.0.6",
+			"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+			"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+			"dev": true
+		},
 		"node_modules/asn1": {
 			"version": "0.2.6",
 			"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
@@ -6384,19 +6388,6 @@
 				"node": ">=8"
 			}
 		},
-		"node_modules/bl": {
-			"version": "4.1.0",
-			"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
-			"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"buffer": "^5.5.0",
-				"inherits": "^2.0.4",
-				"readable-stream": "^3.4.0"
-			}
-		},
 		"node_modules/blob-util": {
 			"version": "2.0.2",
 			"resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz",
@@ -6851,13 +6842,20 @@
 				"fsevents": "~2.3.2"
 			}
 		},
-		"node_modules/chownr": {
-			"version": "1.1.4",
-			"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
-			"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+		"node_modules/chromium-bidi": {
+			"version": "10.5.1",
+			"resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-10.5.1.tgz",
+			"integrity": "sha512-rlj6OyhKhVTnk4aENcUme3Jl9h+cq4oXu4AzBcvr8RMmT6BR4a3zSNT9dbIfXr9/BS6ibzRyDhowuw4n2GgzsQ==",
 			"dev": true,
 			"optional": true,
-			"peer": true
+			"peer": true,
+			"dependencies": {
+				"mitt": "^3.0.1",
+				"zod": "^3.24.1"
+			},
+			"peerDependencies": {
+				"devtools-protocol": "*"
+			}
 		},
 		"node_modules/ci-info": {
 			"version": "3.9.0",
@@ -8179,12 +8177,12 @@
 			"dev": true
 		},
 		"node_modules/debug": {
-			"version": "4.3.4",
-			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-			"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+			"version": "4.4.3",
+			"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+			"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
 			"dev": true,
 			"dependencies": {
-				"ms": "2.1.2"
+				"ms": "^2.1.3"
 			},
 			"engines": {
 				"node": ">=6.0"
@@ -8360,6 +8358,24 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/devtools-protocol": {
+			"version": "0.0.1521046",
+			"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1521046.tgz",
+			"integrity": "sha512-vhE6eymDQSKWUXwwA37NtTTVEzjtGVfDr3pRbsWEQ5onH/Snp2c+2xZHWJJawG/0hCCJLRGt4xVtEVUVILol4w==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"node_modules/dezalgo": {
+			"version": "1.0.4",
+			"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
+			"integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
+			"dev": true,
+			"dependencies": {
+				"asap": "^2.0.0",
+				"wrappy": "1"
+			}
+		},
 		"node_modules/diff": {
 			"version": "5.2.0",
 			"resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
@@ -10583,23 +10599,22 @@
 			}
 		},
 		"node_modules/formidable": {
-			"version": "1.2.6",
-			"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz",
-			"integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==",
-			"deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau",
+			"version": "3.5.4",
+			"resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz",
+			"integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==",
 			"dev": true,
+			"dependencies": {
+				"@paralleldrive/cuid2": "^2.2.2",
+				"dezalgo": "^1.0.4",
+				"once": "^1.4.0"
+			},
+			"engines": {
+				"node": ">=14.0.0"
+			},
 			"funding": {
 				"url": "https://ko-fi.com/tunnckoCore/commissions"
 			}
 		},
-		"node_modules/fs-constants": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
-			"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
-			"dev": true,
-			"optional": true,
-			"peer": true
-		},
 		"node_modules/fs.realpath": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -13317,27 +13332,6 @@
 				"node": ">=12"
 			}
 		},
-		"node_modules/jsdom/node_modules/ws": {
-			"version": "8.18.1",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz",
-			"integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==",
-			"dev": true,
-			"engines": {
-				"node": ">=10.0.0"
-			},
-			"peerDependencies": {
-				"bufferutil": "^4.0.1",
-				"utf-8-validate": ">=5.0.2"
-			},
-			"peerDependenciesMeta": {
-				"bufferutil": {
-					"optional": true
-				},
-				"utf-8-validate": {
-					"optional": true
-				}
-			}
-		},
 		"node_modules/jsesc": {
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
@@ -14129,14 +14123,6 @@
 			"integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
 			"dev": true
 		},
-		"node_modules/mkdirp-classic": {
-			"version": "0.5.3",
-			"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
-			"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
-			"dev": true,
-			"optional": true,
-			"peer": true
-		},
 		"node_modules/mocha": {
 			"version": "10.8.2",
 			"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
@@ -14192,23 +14178,6 @@
 				"wrap-ansi": "^7.0.0"
 			}
 		},
-		"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": {
-				"ms": "^2.1.3"
-			},
-			"engines": {
-				"node": ">=6.0"
-			},
-			"peerDependenciesMeta": {
-				"supports-color": {
-					"optional": true
-				}
-			}
-		},
 		"node_modules/mocha/node_modules/minimatch": {
 			"version": "5.1.6",
 			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
@@ -14221,12 +14190,6 @@
 				"node": ">=10"
 			}
 		},
-		"node_modules/mocha/node_modules/ms": {
-			"version": "2.1.3",
-			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-			"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-			"dev": true
-		},
 		"node_modules/mocha/node_modules/yargs": {
 			"version": "16.2.0",
 			"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
@@ -14246,9 +14209,9 @@
 			}
 		},
 		"node_modules/ms": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-			"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+			"version": "2.1.3",
+			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+			"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
 			"dev": true
 		},
 		"node_modules/multimatch": {
@@ -15686,69 +15649,23 @@
 			}
 		},
 		"node_modules/puppeteer-core": {
-			"version": "13.7.0",
-			"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz",
-			"integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"cross-fetch": "3.1.5",
-				"debug": "4.3.4",
-				"devtools-protocol": "0.0.981744",
-				"extract-zip": "2.0.1",
-				"https-proxy-agent": "5.0.1",
-				"pkg-dir": "4.2.0",
-				"progress": "2.0.3",
-				"proxy-from-env": "1.1.0",
-				"rimraf": "3.0.2",
-				"tar-fs": "2.1.1",
-				"unbzip2-stream": "1.4.3",
-				"ws": "8.5.0"
-			},
-			"engines": {
-				"node": ">=10.18.1"
-			}
-		},
-		"node_modules/puppeteer-core/node_modules/cross-fetch": {
-			"version": "3.1.5",
-			"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
-			"integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"node-fetch": "2.6.7"
-			}
-		},
-		"node_modules/puppeteer-core/node_modules/devtools-protocol": {
-			"version": "0.0.981744",
-			"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz",
-			"integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==",
-			"dev": true,
-			"optional": true,
-			"peer": true
-		},
-		"node_modules/puppeteer-core/node_modules/node-fetch": {
-			"version": "2.6.7",
-			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
-			"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+			"version": "24.29.1",
+			"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.29.1.tgz",
+			"integrity": "sha512-ErJ9qKCK+bdLvBa7QVSQTBSPm8KZbl1yC/WvhrZ0ut27hDf2QBzjDsn1IukzE1i1KtZ7NYGETOV4W1beoo9izA==",
 			"dev": true,
 			"optional": true,
 			"peer": true,
 			"dependencies": {
-				"whatwg-url": "^5.0.0"
+				"@puppeteer/browsers": "2.10.13",
+				"chromium-bidi": "10.5.1",
+				"debug": "^4.4.3",
+				"devtools-protocol": "0.0.1521046",
+				"typed-query-selector": "^2.12.0",
+				"webdriver-bidi-protocol": "0.3.8",
+				"ws": "^8.18.3"
 			},
 			"engines": {
-				"node": "4.x || >=6.0.0"
-			},
-			"peerDependencies": {
-				"encoding": "^0.1.0"
-			},
-			"peerDependenciesMeta": {
-				"encoding": {
-					"optional": true
-				}
+				"node": ">=18"
 			}
 		},
 		"node_modules/pure-rand": {
@@ -17430,24 +17347,6 @@
 			"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
 			"dev": true
 		},
-		"node_modules/stylelint/node_modules/debug": {
-			"version": "4.3.7",
-			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
-			"integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"ms": "^2.1.3"
-			},
-			"engines": {
-				"node": ">=6.0"
-			},
-			"peerDependenciesMeta": {
-				"supports-color": {
-					"optional": true
-				}
-			}
-		},
 		"node_modules/stylelint/node_modules/file-entry-cache": {
 			"version": "9.1.0",
 			"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz",
@@ -17520,13 +17419,6 @@
 				"node": ">=0.10.0"
 			}
 		},
-		"node_modules/stylelint/node_modules/ms": {
-			"version": "2.1.3",
-			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-			"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-			"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",
@@ -17587,39 +17479,37 @@
 			}
 		},
 		"node_modules/superagent": {
-			"version": "6.1.0",
-			"resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz",
-			"integrity": "sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==",
+			"version": "9.0.2",
+			"resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz",
+			"integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==",
 			"deprecated": "Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net",
 			"dev": true,
 			"dependencies": {
 				"component-emitter": "^1.3.0",
-				"cookiejar": "^2.1.2",
-				"debug": "^4.1.1",
-				"fast-safe-stringify": "^2.0.7",
-				"form-data": "^3.0.0",
-				"formidable": "^1.2.2",
+				"cookiejar": "^2.1.4",
+				"debug": "^4.3.4",
+				"fast-safe-stringify": "^2.1.1",
+				"form-data": "^4.0.0",
+				"formidable": "^3.5.1",
 				"methods": "^1.1.2",
-				"mime": "^2.4.6",
-				"qs": "^6.9.4",
-				"readable-stream": "^3.6.0",
-				"semver": "^7.3.2"
+				"mime": "2.6.0",
+				"qs": "^6.11.0"
 			},
 			"engines": {
-				"node": ">= 7.0.0"
+				"node": ">=14.18.0"
 			}
 		},
 		"node_modules/superagent/node_modules/form-data": {
-			"version": "3.0.4",
-			"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz",
-			"integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==",
+			"version": "4.0.4",
+			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+			"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
 			"dev": true,
 			"dependencies": {
 				"asynckit": "^0.4.0",
 				"combined-stream": "^1.0.8",
 				"es-set-tostringtag": "^2.1.0",
 				"hasown": "^2.0.2",
-				"mime-types": "^2.1.35"
+				"mime-types": "^2.1.12"
 			},
 			"engines": {
 				"node": ">= 6"
@@ -17641,17 +17531,17 @@
 			}
 		},
 		"node_modules/supertest": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/supertest/-/supertest-5.0.0.tgz",
-			"integrity": "sha512-2JAWpPrUOZF4hHH5ZTCN2xjKXvJS3AEwPNXl0HUseHsfcXFvMy9kcsufIHCNAmQ5hlGCvgeAqaR5PBEouN3hlQ==",
+			"version": "7.1.0",
+			"resolved": "https://registry.npmjs.org/supertest/-/supertest-7.1.0.tgz",
+			"integrity": "sha512-5QeSO8hSrKghtcWEoPiO036fxH0Ii2wVQfFZSP0oqQhmjk8bOLhDFXr4JrvaFmPuEWUoq4znY3uSi8UzLKxGqw==",
 			"deprecated": "Please upgrade to supertest v7.1.3+, see release notes at https://github.com/forwardemail/supertest/releases/tag/v7.1.3 - maintenance is supported by Forward Email @ https://forwardemail.net",
 			"dev": true,
 			"dependencies": {
-				"methods": "1.1.2",
-				"superagent": "6.1.0"
+				"methods": "^1.1.2",
+				"superagent": "^9.0.1"
 			},
 			"engines": {
-				"node": ">=6.0.0"
+				"node": ">=14.18.0"
 			}
 		},
 		"node_modules/supports-color": {
@@ -17779,38 +17669,6 @@
 				"node": ">=6"
 			}
 		},
-		"node_modules/tar-fs": {
-			"version": "2.1.1",
-			"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
-			"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"chownr": "^1.1.1",
-				"mkdirp-classic": "^0.5.2",
-				"pump": "^3.0.0",
-				"tar-stream": "^2.1.4"
-			}
-		},
-		"node_modules/tar-stream": {
-			"version": "2.2.0",
-			"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
-			"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"bl": "^4.0.3",
-				"end-of-stream": "^1.4.1",
-				"fs-constants": "^1.0.0",
-				"inherits": "^2.0.3",
-				"readable-stream": "^3.1.1"
-			},
-			"engines": {
-				"node": ">=6"
-			}
-		},
 		"node_modules/test-exclude": {
 			"version": "6.0.0",
 			"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
@@ -18141,6 +17999,14 @@
 				"url": "https://github.com/sponsors/ljharb"
 			}
 		},
+		"node_modules/typed-query-selector": {
+			"version": "2.12.0",
+			"resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz",
+			"integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
 		"node_modules/typescript": {
 			"version": "4.9.5",
 			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
@@ -18170,18 +18036,6 @@
 				"url": "https://github.com/sponsors/ljharb"
 			}
 		},
-		"node_modules/unbzip2-stream": {
-			"version": "1.4.3",
-			"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
-			"integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"buffer": "^5.2.1",
-				"through": "^2.3.8"
-			}
-		},
 		"node_modules/unc-path-regex": {
 			"version": "0.1.2",
 			"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -18550,7 +18404,8 @@
 		},
 		"node_modules/wdio-wikibase": {
 			"version": "6.4.0",
-			"resolved": "git+ssh://git@github.com/wmde/wdio-wikibase.git#60dd13e91c65809708132ff6a5323f483d952337",
+			"resolved": "https://registry.npmjs.org/wdio-wikibase/-/wdio-wikibase-6.4.0.tgz",
+			"integrity": "sha512-xYWOQHoyNOXUr/A7sXYC4fH2vE+KENCODFEHWJnESYRhGjwu8pgrZY/7qflINielbEmEVDsI6Do8eqttMj7g7w==",
 			"dev": true,
 			"engines": {
 				"node": ">=16.0"
@@ -18592,6 +18447,14 @@
 				"node": ">=18.20.0"
 			}
 		},
+		"node_modules/webdriver-bidi-protocol": {
+			"version": "0.3.8",
+			"resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.8.tgz",
+			"integrity": "sha512-21Yi2GhGntMc671vNBCjiAeEVknXjVRoyu+k+9xOMShu+ZQfpGQwnBqbNz/Sv4GXZ6JmutlPAi2nIJcrymAWuQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
 		"node_modules/webdriver/node_modules/agent-base": {
 			"version": "7.1.4",
 			"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
@@ -18614,27 +18477,6 @@
 				"node": ">= 14"
 			}
 		},
-		"node_modules/webdriver/node_modules/ws": {
-			"version": "8.18.3",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
-			"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
-			"dev": true,
-			"engines": {
-				"node": ">=10.0.0"
-			},
-			"peerDependencies": {
-				"bufferutil": "^4.0.1",
-				"utf-8-validate": ">=5.0.2"
-			},
-			"peerDependenciesMeta": {
-				"bufferutil": {
-					"optional": true
-				},
-				"utf-8-validate": {
-					"optional": true
-				}
-			}
-		},
 		"node_modules/webdriverio": {
 			"version": "9.20.0",
 			"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-9.20.0.tgz",
@@ -18833,18 +18675,16 @@
 			}
 		},
 		"node_modules/ws": {
-			"version": "8.5.0",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
-			"integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+			"version": "8.18.3",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+			"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
 			"dev": true,
-			"optional": true,
-			"peer": true,
 			"engines": {
 				"node": ">=10.0.0"
 			},
 			"peerDependencies": {
 				"bufferutil": "^4.0.1",
-				"utf-8-validate": "^5.0.2"
+				"utf-8-validate": ">=5.0.2"
 			},
 			"peerDependenciesMeta": {
 				"bufferutil": {
@@ -19113,6 +18953,17 @@
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
 			}
+		},
+		"node_modules/zod": {
+			"version": "3.25.76",
+			"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+			"integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"funding": {
+				"url": "https://github.com/sponsors/colinhacks"
+			}
 		}
 	},
 	"dependencies": {
@@ -21379,6 +21230,12 @@
 			"integrity": "sha512-0USwV4F7T4vWGqPoefi0j103sq6Nut2YEXqLz9TUyoj7LBbqXSeWseNRHA7C6LXXm0glrvllKXdeju4oHqIxZw==",
 			"dev": true
 		},
+		"@noble/hashes": {
+			"version": "1.8.0",
+			"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+			"integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+			"dev": true
+		},
 		"@nodelib/fs.scandir": {
 			"version": "2.1.5",
 			"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -21411,6 +21268,15 @@
 			"integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==",
 			"dev": true
 		},
+		"@paralleldrive/cuid2": {
+			"version": "2.3.1",
+			"resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz",
+			"integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==",
+			"dev": true,
+			"requires": {
+				"@noble/hashes": "^1.1.5"
+			}
+		},
 		"@pinia/testing": {
 			"version": "0.0.12",
 			"resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-0.0.12.tgz",
@@ -21446,9 +21312,9 @@
 			}
 		},
 		"@puppeteer/browsers": {
-			"version": "2.10.12",
-			"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.12.tgz",
-			"integrity": "sha512-mP9iLFZwH+FapKJLeA7/fLqOlSUwYpMwjR1P5J23qd4e7qGJwecJccJqHYrjw33jmIZYV4dtiTHPD/J+1e7cEw==",
+			"version": "2.10.13",
+			"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.13.tgz",
+			"integrity": "sha512-a9Ruw3j3qlnB5a/zHRTkruppynxqaeE4H9WNj5eYGRWqw0ZauZ23f4W2ARf3hghF5doozyD+CRtt7XSYuYRI/Q==",
 			"dev": true,
 			"requires": {
 				"debug": "^4.4.3",
@@ -21460,21 +21326,6 @@
 				"yargs": "^17.7.2"
 			},
 			"dependencies": {
-				"debug": {
-					"version": "4.4.3",
-					"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
-					"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
-					"dev": true,
-					"requires": {
-						"ms": "^2.1.3"
-					}
-				},
-				"ms": {
-					"version": "2.1.3",
-					"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-					"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-					"dev": true
-				},
 				"tar-fs": {
 					"version": "3.1.1",
 					"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz",
@@ -22676,19 +22527,19 @@
 			}
 		},
 		"@wikimedia/codex": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.3.1.tgz",
-			"integrity": "sha512-cQhs0LfmGUxML05QBdpt7RkqLdLgRv48yD/JTyr12I43w7msZwZEhYmztMC+Q1l7Ra7YEKpBegoqkljMOrMpOA==",
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.3.2.tgz",
+			"integrity": "sha512-kzDg5RZxvlaJEE0JDK+CQjR+83DpY/QEW01BwLalcDKhP/HCujMz2QpsUAV8qaGNArAO/IkIUzBj1+2eL7yKNg==",
 			"dev": true,
 			"requires": {
 				"@floating-ui/vue": "1.0.6",
-				"@wikimedia/codex-icons": "2.3.1"
+				"@wikimedia/codex-icons": "2.3.2"
 			}
 		},
 		"@wikimedia/codex-icons": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.3.1.tgz",
-			"integrity": "sha512-lMZD1V8mtfFxuUHimAGi9Qd9vAliV7P/KS0SDk/F+aBRAR0as6cLaWAEx8uanhRJ/Ptdl5pp4WELydkpaTXS/w==",
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.3.2.tgz",
+			"integrity": "sha512-2oIGBBrK7B+oHhiKjGdkrZdABCymaSAFCRrBOj+83S5oD/q0u+D3IEs/SQ1JT1RuV5pv/iap3mh7StPfLKI1mw==",
 			"dev": true
 		},
 		"@wry/context": {
@@ -22849,13 +22700,13 @@
 			}
 		},
 		"api-testing": {
-			"version": "1.7.0",
-			"resolved": "https://registry.npmjs.org/api-testing/-/api-testing-1.7.0.tgz",
-			"integrity": "sha512-+gp8xQtm1CYQNgsGvzolWjjkm059mDuTF975P0aebUfekouY+CIPirfGjU+UT464b2+wVaiSy5wPlDnXB1zXBA==",
+			"version": "1.7.1",
+			"resolved": "https://registry.npmjs.org/api-testing/-/api-testing-1.7.1.tgz",
+			"integrity": "sha512-h6eqLa9uOOpbBXGN6/s91GquV1YprC1XLVtWIRv/25XWFRqHibIBwuXjqcUqFSsU1fgYvfclSMRXuUcCvEmX6A==",
 			"dev": true,
 			"requires": {
-				"chai": "^4.2.0",
-				"supertest": "^5.0.0-0"
+				"chai": "4.5.0",
+				"supertest": "7.1.0"
 			}
 		},
 		"apollo-boost": {
@@ -23182,6 +23033,12 @@
 			"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
 			"dev": true
 		},
+		"asap": {
+			"version": "2.0.6",
+			"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+			"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+			"dev": true
+		},
 		"asn1": {
 			"version": "0.2.6",
 			"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
@@ -23510,19 +23367,6 @@
 			"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
 			"dev": true
 		},
-		"bl": {
-			"version": "4.1.0",
-			"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
-			"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"requires": {
-				"buffer": "^5.5.0",
-				"inherits": "^2.0.4",
-				"readable-stream": "^3.4.0"
-			}
-		},
 		"blob-util": {
 			"version": "2.0.2",
 			"resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz",
@@ -23835,13 +23679,17 @@
 				"readdirp": "~3.6.0"
 			}
 		},
-		"chownr": {
-			"version": "1.1.4",
-			"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
-			"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+		"chromium-bidi": {
+			"version": "10.5.1",
+			"resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-10.5.1.tgz",
+			"integrity": "sha512-rlj6OyhKhVTnk4aENcUme3Jl9h+cq4oXu4AzBcvr8RMmT6BR4a3zSNT9dbIfXr9/BS6ibzRyDhowuw4n2GgzsQ==",
 			"dev": true,
 			"optional": true,
-			"peer": true
+			"peer": true,
+			"requires": {
+				"mitt": "^3.0.1",
+				"zod": "^3.24.1"
+			}
 		},
 		"ci-info": {
 			"version": "3.9.0",
@@ -24799,12 +24647,12 @@
 			"dev": true
 		},
 		"debug": {
-			"version": "4.3.4",
-			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-			"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+			"version": "4.4.3",
+			"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+			"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
 			"dev": true,
 			"requires": {
-				"ms": "2.1.2"
+				"ms": "^2.1.3"
 			}
 		},
 		"decamelize": {
@@ -24920,6 +24768,24 @@
 			"integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
 			"dev": true
 		},
+		"devtools-protocol": {
+			"version": "0.0.1521046",
+			"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1521046.tgz",
+			"integrity": "sha512-vhE6eymDQSKWUXwwA37NtTTVEzjtGVfDr3pRbsWEQ5onH/Snp2c+2xZHWJJawG/0hCCJLRGt4xVtEVUVILol4w==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"dezalgo": {
+			"version": "1.0.4",
+			"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
+			"integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
+			"dev": true,
+			"requires": {
+				"asap": "^2.0.0",
+				"wrappy": "1"
+			}
+		},
 		"diff": {
 			"version": "5.2.0",
 			"resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
@@ -26533,18 +26399,15 @@
 			}
 		},
 		"formidable": {
-			"version": "1.2.6",
-			"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz",
-			"integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==",
-			"dev": true
-		},
-		"fs-constants": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
-			"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+			"version": "3.5.4",
+			"resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz",
+			"integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==",
 			"dev": true,
-			"optional": true,
-			"peer": true
+			"requires": {
+				"@paralleldrive/cuid2": "^2.2.2",
+				"dezalgo": "^1.0.4",
+				"once": "^1.4.0"
+			}
 		},
 		"fs.realpath": {
 			"version": "1.0.0",
@@ -28517,13 +28380,6 @@
 						"tr46": "^3.0.0",
 						"webidl-conversions": "^7.0.0"
 					}
-				},
-				"ws": {
-					"version": "8.18.1",
-					"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz",
-					"integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==",
-					"dev": true,
-					"requires": {}
 				}
 			}
 		},
@@ -29159,14 +29015,6 @@
 			"integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
 			"dev": true
 		},
-		"mkdirp-classic": {
-			"version": "0.5.3",
-			"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
-			"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
-			"dev": true,
-			"optional": true,
-			"peer": true
-		},
 		"mocha": {
 			"version": "10.8.2",
 			"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
@@ -29215,15 +29063,6 @@
 						"wrap-ansi": "^7.0.0"
 					}
 				},
-				"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": {
-						"ms": "^2.1.3"
-					}
-				},
 				"minimatch": {
 					"version": "5.1.6",
 					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
@@ -29233,12 +29072,6 @@
 						"brace-expansion": "^2.0.1"
 					}
 				},
-				"ms": {
-					"version": "2.1.3",
-					"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-					"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-					"dev": true
-				},
 				"yargs": {
 					"version": "16.2.0",
 					"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
@@ -29257,9 +29090,9 @@
 			}
 		},
 		"ms": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-			"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+			"version": "2.1.3",
+			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+			"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
 			"dev": true
 		},
 		"multimatch": {
@@ -30284,57 +30117,20 @@
 			"dev": true
 		},
 		"puppeteer-core": {
-			"version": "13.7.0",
-			"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz",
-			"integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==",
+			"version": "24.29.1",
+			"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.29.1.tgz",
+			"integrity": "sha512-ErJ9qKCK+bdLvBa7QVSQTBSPm8KZbl1yC/WvhrZ0ut27hDf2QBzjDsn1IukzE1i1KtZ7NYGETOV4W1beoo9izA==",
 			"dev": true,
 			"optional": true,
 			"peer": true,
 			"requires": {
-				"cross-fetch": "3.1.5",
-				"debug": "4.3.4",
-				"devtools-protocol": "0.0.981744",
-				"extract-zip": "2.0.1",
-				"https-proxy-agent": "5.0.1",
-				"pkg-dir": "4.2.0",
-				"progress": "2.0.3",
-				"proxy-from-env": "1.1.0",
-				"rimraf": "3.0.2",
-				"tar-fs": "2.1.1",
-				"unbzip2-stream": "1.4.3",
-				"ws": "8.5.0"
-			},
-			"dependencies": {
-				"cross-fetch": {
-					"version": "3.1.5",
-					"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
-					"integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
-					"dev": true,
-					"optional": true,
-					"peer": true,
-					"requires": {
-						"node-fetch": "2.6.7"
-					}
-				},
-				"devtools-protocol": {
-					"version": "0.0.981744",
-					"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz",
-					"integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==",
-					"dev": true,
-					"optional": true,
-					"peer": true
-				},
-				"node-fetch": {
-					"version": "2.6.7",
-					"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
-					"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
-					"dev": true,
-					"optional": true,
-					"peer": true,
-					"requires": {
-						"whatwg-url": "^5.0.0"
-					}
-				}
+				"@puppeteer/browsers": "2.10.13",
+				"chromium-bidi": "10.5.1",
+				"debug": "^4.4.3",
+				"devtools-protocol": "0.0.1521046",
+				"typed-query-selector": "^2.12.0",
+				"webdriver-bidi-protocol": "0.3.8",
+				"ws": "^8.18.3"
 			}
 		},
 		"pure-rand": {
@@ -31527,15 +31323,6 @@
 					"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
 					"dev": true
 				},
-				"debug": {
-					"version": "4.3.7",
-					"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
-					"integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
-					"dev": true,
-					"requires": {
-						"ms": "^2.1.3"
-					}
-				},
 				"file-entry-cache": {
 					"version": "9.1.0",
 					"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz",
@@ -31587,12 +31374,6 @@
 					"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
 					"dev": true
 				},
-				"ms": {
-					"version": "2.1.3",
-					"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-					"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",
@@ -31670,35 +31451,33 @@
 			}
 		},
 		"superagent": {
-			"version": "6.1.0",
-			"resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz",
-			"integrity": "sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==",
+			"version": "9.0.2",
+			"resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz",
+			"integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==",
 			"dev": true,
 			"requires": {
 				"component-emitter": "^1.3.0",
-				"cookiejar": "^2.1.2",
-				"debug": "^4.1.1",
-				"fast-safe-stringify": "^2.0.7",
-				"form-data": "^3.0.0",
-				"formidable": "^1.2.2",
+				"cookiejar": "^2.1.4",
+				"debug": "^4.3.4",
+				"fast-safe-stringify": "^2.1.1",
+				"form-data": "^4.0.0",
+				"formidable": "^3.5.1",
 				"methods": "^1.1.2",
-				"mime": "^2.4.6",
-				"qs": "^6.9.4",
-				"readable-stream": "^3.6.0",
-				"semver": "^7.3.2"
+				"mime": "2.6.0",
+				"qs": "^6.11.0"
 			},
 			"dependencies": {
 				"form-data": {
-					"version": "3.0.4",
-					"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz",
-					"integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==",
+					"version": "4.0.4",
+					"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+					"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
 					"dev": true,
 					"requires": {
 						"asynckit": "^0.4.0",
 						"combined-stream": "^1.0.8",
 						"es-set-tostringtag": "^2.1.0",
 						"hasown": "^2.0.2",
-						"mime-types": "^2.1.35"
+						"mime-types": "^2.1.12"
 					}
 				},
 				"qs": {
@@ -31713,13 +31492,13 @@
 			}
 		},
 		"supertest": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/supertest/-/supertest-5.0.0.tgz",
-			"integrity": "sha512-2JAWpPrUOZF4hHH5ZTCN2xjKXvJS3AEwPNXl0HUseHsfcXFvMy9kcsufIHCNAmQ5hlGCvgeAqaR5PBEouN3hlQ==",
+			"version": "7.1.0",
+			"resolved": "https://registry.npmjs.org/supertest/-/supertest-7.1.0.tgz",
+			"integrity": "sha512-5QeSO8hSrKghtcWEoPiO036fxH0Ii2wVQfFZSP0oqQhmjk8bOLhDFXr4JrvaFmPuEWUoq4znY3uSi8UzLKxGqw==",
 			"dev": true,
 			"requires": {
-				"methods": "1.1.2",
-				"superagent": "6.1.0"
+				"methods": "^1.1.2",
+				"superagent": "^9.0.1"
 			}
 		},
 		"supports-color": {
@@ -31815,35 +31594,6 @@
 			"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
 			"dev": true
 		},
-		"tar-fs": {
-			"version": "2.1.1",
-			"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
-			"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"requires": {
-				"chownr": "^1.1.1",
-				"mkdirp-classic": "^0.5.2",
-				"pump": "^3.0.0",
-				"tar-stream": "^2.1.4"
-			}
-		},
-		"tar-stream": {
-			"version": "2.2.0",
-			"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
-			"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"requires": {
-				"bl": "^4.0.3",
-				"end-of-stream": "^1.4.1",
-				"fs-constants": "^1.0.0",
-				"inherits": "^2.0.3",
-				"readable-stream": "^3.1.1"
-			}
-		},
 		"test-exclude": {
 			"version": "6.0.0",
 			"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
@@ -32098,6 +31848,14 @@
 				"is-typed-array": "^1.1.9"
 			}
 		},
+		"typed-query-selector": {
+			"version": "2.12.0",
+			"resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz",
+			"integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
 		"typescript": {
 			"version": "4.9.5",
 			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
@@ -32117,18 +31875,6 @@
 				"which-boxed-primitive": "^1.0.2"
 			}
 		},
-		"unbzip2-stream": {
-			"version": "1.4.3",
-			"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
-			"integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"requires": {
-				"buffer": "^5.2.1",
-				"through": "^2.3.8"
-			}
-		},
 		"unc-path-regex": {
 			"version": "0.1.2",
 			"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -32395,9 +32141,10 @@
 			}
 		},
 		"wdio-wikibase": {
-			"version": "git+ssh://git@github.com/wmde/wdio-wikibase.git#60dd13e91c65809708132ff6a5323f483d952337",
+			"version": "6.4.0",
+			"resolved": "https://registry.npmjs.org/wdio-wikibase/-/wdio-wikibase-6.4.0.tgz",
+			"integrity": "sha512-xYWOQHoyNOXUr/A7sXYC4fH2vE+KENCODFEHWJnESYRhGjwu8pgrZY/7qflINielbEmEVDsI6Do8eqttMj7g7w==",
 			"dev": true,
-			"from": "wdio-wikibase@6.4.0",
 			"requires": {}
 		},
 		"web-streams-polyfill": {
@@ -32440,16 +32187,17 @@
 						"agent-base": "^7.1.2",
 						"debug": "4"
 					}
-				},
-				"ws": {
-					"version": "8.18.3",
-					"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
-					"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
-					"dev": true,
-					"requires": {}
 				}
 			}
 		},
+		"webdriver-bidi-protocol": {
+			"version": "0.3.8",
+			"resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.8.tgz",
+			"integrity": "sha512-21Yi2GhGntMc671vNBCjiAeEVknXjVRoyu+k+9xOMShu+ZQfpGQwnBqbNz/Sv4GXZ6JmutlPAi2nIJcrymAWuQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
 		"webdriverio": {
 			"version": "9.20.0",
 			"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-9.20.0.tgz",
@@ -32602,12 +32350,10 @@
 			}
 		},
 		"ws": {
-			"version": "8.5.0",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
-			"integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+			"version": "8.18.3",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+			"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
 			"dev": true,
-			"optional": true,
-			"peer": true,
 			"requires": {}
 		},
 		"xml-name-validator": {
@@ -32791,6 +32537,14 @@
 					}
 				}
 			}
+		},
+		"zod": {
+			"version": "3.25.76",
+			"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+			"integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true
 		}
 	}
 }
diff --git a/package.json b/package.json
index 8c15844..66527d2 100644
--- a/package.json
+++ b/package.json
@@ -41,8 +41,8 @@
 		"@wdio/local-runner": "^9.20.0",
 		"@wdio/mocha-framework": "^9.20.0",
 		"@wdio/spec-reporter": "^9.20.0",
-		"@wikimedia/codex": "2.3.1",
-		"api-testing": "1.7.0",
+		"@wikimedia/codex": "2.3.2",
+		"api-testing": "1.7.1",
 		"apollo-boost": "^0.4.9",
 		"axe-core": "^4.10.3",
 		"cross-fetch": "^3.1.5",
-- 
2.47.3

$ date
--- stdout ---
Sat Nov  8 04:35:18 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 '7d7ff681d26da4ae7947bf444d28f507982064c8'
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 ---
686238a13900f7f9cb3a71a5d9a9b526ee75f5d3 refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "form-data": {
      "name": "form-data",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1109540,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data uses unsafe random function in form-data for choosing boundary",
          "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
          "severity": "critical",
          "cwe": [
            "CWE-330"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<2.5.4"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<2.5.4",
      "nodes": [
        "node_modules/form-data"
      ],
      "fixAvailable": false
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki",
        "wdio-wikibase"
      ],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": false
    },
    "puppeteer-core": {
      "name": "puppeteer-core",
      "severity": "high",
      "isDirect": false,
      "via": [
        "tar-fs",
        "ws"
      ],
      "effects": [],
      "range": "10.0.0 - 22.11.1",
      "nodes": [
        "node_modules/puppeteer-core"
      ],
      "fixAvailable": true
    },
    "request": {
      "name": "request",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "form-data",
        "tough-cookie"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": false
    },
    "tar-fs": {
      "name": "tar-fs",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1109532,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball",
          "url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v",
          "severity": "high",
          "cwe": [
            "CWE-22",
            "CWE-61"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=2.0.0 <2.1.4"
        },
        {
          "source": 1109543,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs can extract outside the specified dir with a specific tarball",
          "url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=2.0.0 <2.1.3"
        },
        {
          "source": 1109552,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File",
          "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=2.0.0 <2.1.2"
        }
      ],
      "effects": [
        "puppeteer-core"
      ],
      "range": "2.0.0 - 2.1.3",
      "nodes": [
        "node_modules/tar-fs"
      ],
      "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": "<=5.1.0",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.0.0",
        "isSemVerMajor": true
      }
    },
    "wdio-wikibase": {
      "name": "wdio-wikibase",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot",
        "wdio-mediawiki"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/wdio-wikibase"
      ],
      "fixAvailable": false
    },
    "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": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 4,
      "high": 3,
      "critical": 2,
      "total": 9
    },
    "dependencies": {
      "prod": 1,
      "dev": 1475,
      "optional": 50,
      "peer": 26,
      "peerOptional": 0,
      "total": 1475
    }
  }
}

--- 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: 61 installs, 0 updates, 0 removals
  - Locking composer/installers (v2.3.0)
  - Locking composer/pcre (3.3.2)
  - Locking composer/semver (3.4.4)
  - Locking composer/spdx-licenses (1.5.9)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking data-values/common (1.2.0)
  - Locking data-values/data-values (3.1.0)
  - Locking data-values/geo (4.6.0)
  - 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 mck89/peast (v1.17.4)
  - Locking mediawiki/mediawiki-codesniffer (v48.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.17.0)
  - Locking mediawiki/minus-x (1.1.3)
  - Locking mediawiki/phan-taint-check-plugin (7.0.0)
  - Locking microsoft/tolerant-php-parser (v0.1.2)
  - Locking netresearch/jsonmapper (v4.5.0)
  - Locking onoi/message-reporter (1.4.2)
  - Locking phan/phan (5.5.1)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking php-parallel-lint/php-parallel-lint (v1.4.0)
  - Locking phpat/phpat (0.11.10)
  - Locking phpcsstandards/phpcsextra (1.4.0)
  - Locking phpcsstandards/phpcsutils (1.1.1)
  - 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 (2.1.31)
  - Locking psr/clock (1.0.0)
  - 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.13.2)
  - Locking swaggest/json-diff (v3.12.1)
  - Locking symfony/console (v7.3.6)
  - Locking symfony/deprecation-contracts (v3.6.0)
  - Locking symfony/polyfill-ctype (v1.33.0)
  - Locking symfony/polyfill-intl-grapheme (v1.33.0)
  - Locking symfony/polyfill-intl-normalizer (v1.33.0)
  - Locking symfony/polyfill-mbstring (v1.33.0)
  - Locking symfony/polyfill-php80 (v1.33.0)
  - Locking symfony/service-contracts (v3.6.1)
  - Locking symfony/string (v7.3.4)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (1.12.1)
  - Locking webonyx/graphql-php (v15.25.2)
  - Locking wikimedia/at-ease (v3.0.0)
  - Locking wikimedia/purtle (v2.0.0)
  - Locking wikimedia/timestamp (v5.0.0)
  - Locking wmde/php-vuejs-templating (2.2.0-beta.8)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 61 installs, 0 updates, 0 removals
  - Downloading dealerdirect/phpcodesniffer-composer-installer (v0.7.2)
  - Downloading data-values/geo (4.6.0)
  - 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 (2.1.31)
  - Downloading phpat/phpat (0.11.10)
  - Downloading phpstan/phpdoc-parser (0.4.9)
  - Downloading slevomat/coding-standard (6.4.1)
  - Downloading webonyx/graphql-php (v15.25.2)
  - Downloading mck89/peast (v1.17.4)
  - Downloading wmde/php-vuejs-templating (2.2.0-beta.8)
  0/14 [>---------------------------]   0%
  7/14 [==============>-------------]  50%
 13/14 [==========================>-]  92%
 14/14 [============================] 100%
  - Installing composer/installers (v2.3.0): Extracting archive
  - Installing squizlabs/php_codesniffer (3.13.2): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v0.7.2): Extracting archive
  - Installing composer/pcre (3.3.2): 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.6.0): 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.1.1): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.4.0): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.33.0): Extracting archive
  - Installing composer/spdx-licenses (1.5.9): Extracting archive
  - Installing composer/semver (3.4.4): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v48.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/polyfill-php80 (v1.33.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.33.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.33.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.33.0): Extracting archive
  - Installing symfony/string (v7.3.4): Extracting archive
  - Installing symfony/deprecation-contracts (v3.6.0): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.6.1): Extracting archive
  - Installing symfony/console (v7.3.6): Extracting archive
  - Installing sabre/event (5.1.7): Extracting archive
  - Installing netresearch/jsonmapper (v4.5.0): Extracting archive
  - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive
  - Installing webmozart/assert (1.12.1): 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.5.1): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (7.0.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.17.0): Extracting archive
  - Installing mediawiki/minus-x (1.1.3): 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 (2.1.31): Extracting archive
  - Installing phpat/phpat (0.11.10): 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 webonyx/graphql-php (v15.25.2): Extracting archive
  - Installing wikimedia/at-ease (v3.0.0): Extracting archive
  - Installing wikimedia/purtle (v2.0.0): Extracting archive
  - Installing psr/clock (1.0.0): Extracting archive
  - Installing wikimedia/timestamp (v5.0.0): Extracting archive
  - Installing mck89/peast (v1.17.4): Extracting archive
  - Installing wmde/php-vuejs-templating (2.2.0-beta.8): Extracting archive
  0/58 [>---------------------------]   0%
 27/58 [=============>--------------]  46%
 43/58 [====================>-------]  74%
 56/58 [===========================>]  96%
 58/58 [============================] 100%
3 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:api-testing from 1.7.0 -> 1.7.1
Upgrading n:@wikimedia/codex from 2.3.1 -> 2.3.2
$ /usr/bin/npm install
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.3.2',
npm WARN EBADENGINE   required: { npm: '>=10.8.2', node: '>=20.19.1' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.3.2',
npm WARN EBADENGINE   required: { npm: '>=10.8.2', node: '>=20.19.1' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
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 abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated supertest@7.1.0: Please upgrade to supertest v7.1.3+, see release notes at https://github.com/forwardemail/supertest/releases/tag/v7.1.3 - maintenance is supported by Forward Email @ https://forwardemail.net
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm WARN deprecated superagent@9.0.2: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net
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: 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: 'v20.19.2', 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: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @vue/server-renderer@3.5.16
npm WARN Found: vue@3.5.13
npm WARN node_modules/vue
npm WARN   vue@"3.5.13" 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.5.16" from @vue/server-renderer@3.5.16
npm WARN node_modules/@vue/test-utils/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.5.16
npm WARN node_modules/vue
npm WARN   peer vue@"3.5.16" from @vue/server-renderer@3.5.16
npm WARN   node_modules/@vue/test-utils/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 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 glob@8.1.0: Glob versions prior to v9 are no longer supported
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 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 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 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 node-domexception@1.0.0: Use your platform's native DOMException instead
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 3m

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

157 vulnerabilities (7 low, 77 moderate, 54 high, 19 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.

added 928 packages, and audited 929 packages in 3m

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

23 vulnerabilities (3 low, 11 moderate, 7 high, 2 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.

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


added 2423 packages, and audited 2424 packages in 3m

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

79 vulnerabilities (13 low, 33 moderate, 29 high, 4 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.

added 1453 packages, and audited 1454 packages in 4m

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

9 vulnerabilities (4 moderate, 3 high, 2 critical)

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

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

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

Run `npm audit` for details.

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

--- end ---
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.3.2',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.3.2',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
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 abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated supertest@7.1.0: Please upgrade to supertest v7.1.3+, see release notes at https://github.com/forwardemail/supertest/releases/tag/v7.1.3 - maintenance is supported by Forward Email @ https://forwardemail.net
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm WARN deprecated superagent@9.0.2: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net
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: 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 ERESOLVE overriding peer dependency
npm WARN While resolving: @vue/server-renderer@3.5.16
npm WARN Found: vue@3.5.13
npm WARN node_modules/vue
npm WARN   vue@"3.5.13" 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.5.16" from @vue/server-renderer@3.5.16
npm WARN node_modules/@vue/test-utils/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.5.16
npm WARN node_modules/vue
npm WARN   peer vue@"3.5.16" from @vue/server-renderer@3.5.16
npm WARN   node_modules/@vue/test-utils/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 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: 'v20.19.2', 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: 'v20.19.2', 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 glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated formidable@1.2.6: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
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 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 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.
npmnpm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
 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 eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
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 node-domexception@1.0.0: Use your platform's native DOMException instead
--- stdout ---

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


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


> 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


added 928 packages, and audited 929 packages in 6m

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

23 vulnerabilities (3 low, 11 moderate, 7 high, 2 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.

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


added 2722 packages, and audited 2723 packages in 6m

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

157 vulnerabilities (7 low, 77 moderate, 54 high, 19 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 2423 packages, and audited 2424 packages in 6m

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

79 vulnerabilities (13 low, 33 moderate, 29 high, 4 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.

added 1453 packages, and audited 1454 packages in 7m

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

9 vulnerabilities (4 moderate, 3 high, 2 critical)

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

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

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

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
specs/openapi-joined.json: join processed in 1201ms

PASS repo/tests/jest/store/editStatementsStore.spec.js

    ╔═══════════════════════════════════════════════════════╗
    ║                                                       ║
    ║  A new version of Redocly CLI (2.11.0) 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 1845ms

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


PASS repo/tests/jest/ScopedTypeaheadSearch.spec.js (11.481 s)
PASS repo/tests/jest/wikibase.vector.searchClient.spec.js
PASS repo/tests/jest/wikibase.wbui2025.editableSnakValue.spec.js (7.817 s)
PASS repo/tests/jest/wikibase.wbui2025.statementGroupView.spec.js (6.369 s)
PASS repo/tests/jest/wikibase.wbui2025.editStatementGroup.spec.js (6.276 s)
PASS repo/tests/jest/wikibase.wbui2025.propertyLookup.spec.js
PASS repo/tests/jest/store/parsedValueStore.spec.js
PASS repo/tests/jest/wikibase.wbui2025.statementView.spec.js
PASS repo/tests/jest/wikibase.wbui2025.addQualifier.spec.js
PASS repo/tests/jest/wikibase.wbui2025.addReference.spec.js
PASS repo/tests/jest/wikibase.wbui2025.references.spec.js
PASS repo/tests/jest/wikibase.wbui2025.addStatementButton.spec.js
PASS repo/tests/jest/wikibase.wbui2025.editableReferences.spec.js
PASS repo/tests/jest/wikibase.wbui2025.statementSections.spec.js
PASS repo/tests/jest/wikibase.wbui2025.editableReference.spec.js
PASS repo/tests/jest/wikibase.wbui2025.mainSnak.spec.js
PASS repo/tests/jest/store/savedStatementsStore.spec.js
PASS repo/tests/jest/wikibase.wbui2025.qualifiers.spec.js
PASS repo/tests/jest/wikibase.wbui2025.propertySelector.spec.js
PASS repo/tests/jest/wikibase.wbui2025.modalOverlay.spec.js
PASS repo/tests/jest/wikibase.wbui2025.statusMessage.spec.js
PASS repo/tests/jest/wikibase.wbui2025.propertyName.spec.js
PASS repo/tests/jest/store/messageStore.spec.js
PASS repo/tests/jest/store/serverRenderedHtml.spec.js
PASS tests/unit/StatementTracker.spec.ts (10.091 s)
PASS tests/unit/store/actions.spec.ts
PASS tests/unit/store/mutations.spec.ts
PASS tests/unit/MWHookHandler.spec.ts (11.576 s)
PASS tests/unit/TaintedIcon.spec.ts
PASS tests/unit/Popper.spec.ts
PASS tests/unit/TaintedPopper.spec.ts (13.563 s)
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:        19.229 s
Ran all test suites.
PASS repo/tests/jest/wikibase.wbui2025.editStatement.spec.js (39.188 s)

Test Suites: 26 passed, 26 total
Tests:       170 passed, 170 total
Snapshots:   0 total
Time:        51.113 s
Ran all test suites.
PASS tests/unit/store/getters.spec.ts (8.714 s)
PASS tests/unit/store/actions.spec.ts (9.416 s)
PASS tests/unit/services/createServices.spec.ts
PASS tests/unit/data-access/ApiWritingRepository.spec.ts
PASS tests/unit/presentation/components/ErrorPermission.spec.ts (12.638 s)
PASS tests/unit/data-access/ApiPageEditPermissionErrorsRepository.spec.ts
PASS tests/unit/presentation/components/AppHeader.spec.ts
PASS tests/unit/data-access/CombiningPermissionsRepository.spec.ts
PASS tests/unit/presentation/components/Loading.spec.ts
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/presentation/App.spec.ts (9.005 s)
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/data-access/TrimmingWritingRepository.spec.ts
PASS tests/unit/mediawiki/BridgeDomElementsSelector.spec.ts
PASS tests/unit/data-access/ApiCore.spec.ts
PASS tests/unit/data-access/SpecialPageReadingEntityRepository.spec.ts
PASS tests/unit/data-access/ApiRenderReferencesRepository.spec.ts
PASS tests/unit/data-access/BatchingApi.spec.ts
PASS tests/unit/store/statements/MainSnakPath.spec.ts
PASS tests/unit/presentation/components/ErrorSavingAssertUser.spec.ts
PASS tests/unit/mediawiki/Dispatcher.spec.ts
PASS tests/unit/data-access/ApiEntityLabelRepository.spec.ts
PASS tests/unit/presentation/components/ErrorSaving.spec.ts
PASS tests/unit/data-access/ApiRepoConfigRepository.spec.ts
PASS tests/unit/change-op/statement-mutation/strategies/UpdateMutationStrategy.spec.ts
PASS tests/unit/presentation/components/ErrorUnsupportedSnakType.spec.ts
PASS tests/unit/presentation/components/StringDataValue.spec.ts
PASS tests/unit/presentation/components/ErrorUnknown.spec.ts
PASS tests/unit/presentation/components/EditDecision.spec.ts
PASS tests/unit/change-op/statement-mutation/strategies/ReplaceMutationStrategy.spec.ts
PASS tests/unit/presentation/components/ErrorUnsupportedDatatype.spec.ts
PASS tests/unit/data-access/ApiTempUserConfigRepository.spec.ts
PASS tests/unit/data-access/RepoRouter.spec.ts
PASS tests/unit/main.spec.ts
PASS tests/unit/mediawiki/prepareContainer.spec.ts
PASS tests/unit/presentation/components/WarningAnonymousEdit.spec.ts
PASS tests/unit/mediawiki/MwInitTracker.spec.ts
PASS tests/unit/presentation/components/ErrorPermissionInfo.spec.ts
PASS tests/unit/presentation/components/ReportIssue.spec.ts
PASS tests/unit/presentation/components/DataBridge.spec.ts
PASS tests/unit/presentation/components/ReferenceSection.spec.ts
PASS tests/unit/data-access/ApiWbgetentities.spec.ts
PASS tests/unit/data-access/ApiPropertyDataTypeRepository.spec.ts
PASS tests/unit/presentation/components/License.spec.ts
PASS tests/unit/presentation/components/ErrorDeprecatedStatement.spec.ts
PASS tests/unit/presentation/components/ErrorAmbiguousStatement.spec.ts
PASS tests/unit/presentation/components/RadioInput.spec.ts
PASS tests/unit/store/newMockableEntityRevision.spec.ts
PASS tests/unit/presentation/components/ResizingTextField.spec.ts
PASS tests/unit/presentation/extendVueEnvironment.spec.ts
PASS tests/unit/data-access/ApiReadingEntityRepository.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/presentation/components/BailoutActions.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/plugins/InLanguagePlugin/InLanguagePlugin.spec.ts
PASS tests/unit/presentation/components/ThankYou.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/data-access/MwMessagesRepository.spec.ts
PASS tests/unit/presentation/components/PropertyLabel.spec.ts
PASS tests/unit/mediawiki/subscribeToEvents.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/TermLabel.spec.ts
PASS tests/unit/services/ServiceContainer.spec.ts
PASS tests/unit/presentation/components/UserLink.spec.ts
PASS tests/unit/presentation/components/PageList.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/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/ErrorSavingEditConflict.spec.ts
PASS tests/unit/presentation/components/RadioGroup.spec.ts
PASS tests/unit/presentation/components/IndeterminateProgressBar.spec.ts
PASS tests/unit/store/clone.spec.ts
PASS tests/unit/timer.spec.ts

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

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

Test Suites: 2 passed, 2 total
Tests:       29 passed, 29 total
Snapshots:   0 total
Time:        13.594 s
Ran all test suites.
-  Building for production...
(node:2014) [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)
(node:2014) [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:rest-api
> npm --prefix repo/rest-api test


> 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:jest-repo
> jest -c repo/tests/jest/jest.config.js


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


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


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


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


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


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

Running "eslint:all" (eslint) task

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


> 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
> npm-run-all --parallel --continue-on-error eslint:*


> wikibase-rest-api-definition@0.1.0 spec:join
> bash -c 'redocly join --without-x-tag-groups specs/openapi.base.json <(node ../domains/crud/specs/index.fragment.js) <(node ../domains/search/specs/index.fragment.js) -o specs/openapi-joined.json'


> wikibase-rest-api-definition@0.1.0 eslint:rest
> eslint . --max-warnings 0


> wikibase-rest-api-definition@0.1.0 eslint:crud
> eslint ../domains/crud --max-warnings 0


> wikibase-rest-api-definition@0.1.0 eslint:search
> eslint ../domains/search --max-warnings 0


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

 DONE  No lint errors found!

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

 DONE  No lint errors found!

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

Running "stylelint:all" (stylelint) task

> 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

>> Linted 51 files without errors

Done.

> 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


 WARNING  Compiled with 2 warnings4:48:50 AM

 warning  

entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
Entrypoints:
  app (247 KiB)
      data-bridge.chunk-vendors.js
      css/data-bridge.app.css
      data-bridge.app.js


 warning  

webpack performance recommendations: 
You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.
For more info visit https://webpack.js.org/guides/code-splitting/

  File                                      Size             Gzipped

  ../../../../tmp/dist/data-bridge.app.j    194.51 KiB       53.46 KiB
  s
  ../../../../tmp/dist/data-bridge.chunk    27.44 KiB        10.19 KiB
  -vendors.js
  ../../../../tmp/dist/data-bridge.init.    9.59 KiB         4.13 KiB
  js
  ../../../../tmp/dist/css/data-bridge.a    25.54 KiB        4.26 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 ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "form-data": {
      "name": "form-data",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1109540,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data uses unsafe random function in form-data for choosing boundary",
          "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
          "severity": "critical",
          "cwe": [
            "CWE-330"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<2.5.4"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<2.5.4",
      "nodes": [
        "node_modules/form-data"
      ],
      "fixAvailable": false
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki",
        "wdio-wikibase"
      ],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": false
    },
    "puppeteer-core": {
      "name": "puppeteer-core",
      "severity": "high",
      "isDirect": false,
      "via": [
        "tar-fs",
        "ws"
      ],
      "effects": [],
      "range": "10.0.0 - 22.11.1",
      "nodes": [
        "node_modules/puppeteer-core"
      ],
      "fixAvailable": true
    },
    "request": {
      "name": "request",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "form-data",
        "tough-cookie"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": false
    },
    "tar-fs": {
      "name": "tar-fs",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1109532,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball",
          "url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v",
          "severity": "high",
          "cwe": [
            "CWE-22",
            "CWE-61"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=2.0.0 <2.1.4"
        },
        {
          "source": 1109543,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs can extract outside the specified dir with a specific tarball",
          "url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=2.0.0 <2.1.3"
        },
        {
          "source": 1109552,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File",
          "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=2.0.0 <2.1.2"
        }
      ],
      "effects": [
        "puppeteer-core"
      ],
      "range": "2.0.0 - 2.1.3",
      "nodes": [
        "node_modules/tar-fs"
      ],
      "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": "<=5.1.0",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.0.0",
        "isSemVerMajor": true
      }
    },
    "wdio-wikibase": {
      "name": "wdio-wikibase",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot",
        "wdio-mediawiki"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/wdio-wikibase"
      ],
      "fixAvailable": false
    },
    "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": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 4,
      "high": 3,
      "critical": 2,
      "total": 9
    },
    "dependencies": {
      "prod": 1,
      "dev": 1479,
      "optional": 50,
      "peer": 26,
      "peerOptional": 0,
      "total": 1479
    }
  }
}

--- end ---
Attempting to npm audit fix
$ /usr/bin/npm audit fix --dry-run --only=dev --json
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.3.2',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.3.2',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
{
  "added": 31,
  "removed": 18,
  "changed": 6,
  "audited": 1467,
  "funding": 277,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "form-data": {
        "name": "form-data",
        "severity": "critical",
        "isDirect": false,
        "via": [
          {
            "source": 1109540,
            "name": "form-data",
            "dependency": "form-data",
            "title": "form-data uses unsafe random function in form-data for choosing boundary",
            "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
            "severity": "critical",
            "cwe": [
              "CWE-330"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<2.5.4"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<2.5.4",
        "nodes": [
          "node_modules/form-data"
        ],
        "fixAvailable": false
      },
      "mwbot": {
        "name": "mwbot",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "request"
        ],
        "effects": [
          "wdio-mediawiki",
          "wdio-wikibase"
        ],
        "range": ">=0.1.6",
        "nodes": [
          "node_modules/mwbot"
        ],
        "fixAvailable": false
      },
      "puppeteer-core": {
        "name": "puppeteer-core",
        "severity": "high",
        "isDirect": false,
        "via": [
          "tar-fs",
          "ws"
        ],
        "effects": [],
        "range": "10.0.0 - 22.11.1",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "request": {
        "name": "request",
        "severity": "critical",
        "isDirect": false,
        "via": [
          {
            "source": 1096727,
            "name": "request",
            "dependency": "request",
            "title": "Server-Side Request Forgery in Request",
            "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
            "severity": "moderate",
            "cwe": [
              "CWE-918"
            ],
            "cvss": {
              "score": 6.1,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
            },
            "range": "<=2.88.2"
          },
          "form-data",
          "tough-cookie"
        ],
        "effects": [
          "mwbot"
        ],
        "range": "*",
        "nodes": [
          "node_modules/request"
        ],
        "fixAvailable": false
      },
      "tar-fs": {
        "name": "tar-fs",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1109532,
            "name": "tar-fs",
            "dependency": "tar-fs",
            "title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball",
            "url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v",
            "severity": "high",
            "cwe": [
              "CWE-22",
              "CWE-61"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": ">=2.0.0 <2.1.4"
          },
          {
            "source": 1109543,
            "name": "tar-fs",
            "dependency": "tar-fs",
            "title": "tar-fs can extract outside the specified dir with a specific tarball",
            "url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v",
            "severity": "high",
            "cwe": [
              "CWE-22"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": ">=2.0.0 <2.1.3"
          },
          {
            "source": 1109552,
            "name": "tar-fs",
            "dependency": "tar-fs",
            "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File",
            "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx",
            "severity": "high",
            "cwe": [
              "CWE-22"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
            },
            "range": ">=2.0.0 <2.1.2"
          }
        ],
        "effects": [
          "puppeteer-core"
        ],
        "range": "2.0.0 - 2.1.3",
        "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": "<=5.1.0",
        "nodes": [
          "node_modules/wdio-mediawiki"
        ],
        "fixAvailable": {
          "name": "wdio-mediawiki",
          "version": "6.0.0",
          "isSemVerMajor": true
        }
      },
      "wdio-wikibase": {
        "name": "wdio-wikibase",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "mwbot",
          "wdio-mediawiki"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          ""
        ],
        "fixAvailable": false
      },
      "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": [
          ""
        ],
        "fixAvailable": true
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 0,
        "moderate": 4,
        "high": 3,
        "critical": 2,
        "total": 9
      },
      "dependencies": {
        "prod": 1,
        "dev": 1466,
        "optional": 44,
        "peer": 20,
        "peerOptional": 0,
        "total": 1466
      }
    }
  }
}

--- end ---
{"added": 31, "removed": 18, "changed": 6, "audited": 1467, "funding": 277, "audit": {"auditReportVersion": 2, "vulnerabilities": {"form-data": {"name": "form-data", "severity": "critical", "isDirect": false, "via": [{"source": 1109540, "name": "form-data", "dependency": "form-data", "title": "form-data uses unsafe random function in form-data for choosing boundary", "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4", "severity": "critical", "cwe": ["CWE-330"], "cvss": {"score": 0, "vectorString": null}, "range": "<2.5.4"}], "effects": ["request"], "range": "<2.5.4", "nodes": ["node_modules/form-data"], "fixAvailable": false}, "mwbot": {"name": "mwbot", "severity": "moderate", "isDirect": false, "via": ["request"], "effects": ["wdio-mediawiki", "wdio-wikibase"], "range": ">=0.1.6", "nodes": ["node_modules/mwbot"], "fixAvailable": false}, "puppeteer-core": {"name": "puppeteer-core", "severity": "high", "isDirect": false, "via": ["tar-fs", "ws"], "effects": [], "range": "10.0.0 - 22.11.1", "nodes": [""], "fixAvailable": true}, "request": {"name": "request", "severity": "critical", "isDirect": false, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "form-data", "tough-cookie"], "effects": ["mwbot"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": false}, "tar-fs": {"name": "tar-fs", "severity": "high", "isDirect": false, "via": [{"source": 1109532, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball", "url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v", "severity": "high", "cwe": ["CWE-22", "CWE-61"], "cvss": {"score": 0, "vectorString": null}, "range": ">=2.0.0 <2.1.4"}, {"source": 1109543, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs can extract outside the specified dir with a specific tarball", "url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 0, "vectorString": null}, "range": ">=2.0.0 <2.1.3"}, {"source": 1109552, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File", "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=2.0.0 <2.1.2"}], "effects": ["puppeteer-core"], "range": "2.0.0 - 2.1.3", "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": "<=5.1.0", "nodes": ["node_modules/wdio-mediawiki"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.0.0", "isSemVerMajor": true}}, "wdio-wikibase": {"name": "wdio-wikibase", "severity": "moderate", "isDirect": false, "via": ["mwbot", "wdio-mediawiki"], "effects": [], "range": "*", "nodes": [""], "fixAvailable": false}, "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": [""], "fixAvailable": true}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 4, "high": 3, "critical": 2, "total": 9}, "dependencies": {"prod": 1, "dev": 1466, "optional": 44, "peer": 20, "peerOptional": 0, "total": 1466}}}}
$ /usr/bin/npm audit fix --only=dev
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.3.2',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.3.2',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---

added 5 packages, removed 18 packages, changed 6 packages, and audited 1441 packages in 6s

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

# npm audit report

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

6 vulnerabilities (4 moderate, 2 critical)

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

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

--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.3.2',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.3.2',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
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 abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated supertest@7.1.0: Please upgrade to supertest v7.1.3+, see release notes at https://github.com/forwardemail/supertest/releases/tag/v7.1.3 - maintenance is supported by Forward Email @ https://forwardemail.net
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm WARN deprecated superagent@9.0.2: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net
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 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: 'v20.19.2', 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: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
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 ERESOLVE overriding peer dependency
npm WARN While resolving: @vue/server-renderer@3.5.16
npm WARN Found: vue@3.5.13
npm WARN node_modules/vue
npm WARN   vue@"3.5.13" 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.5.16" from @vue/server-renderer@3.5.16
npm WARN node_modules/@vue/test-utils/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.5.16
npm WARN node_modules/vue
npm WARN   peer vue@"3.5.16" from @vue/server-renderer@3.5.16
npm WARN   node_modules/@vue/test-utils/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 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 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 glob@8.1.0: Glob versions prior to v9 are no longer supported
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 node-domexception@1.0.0: Use your platform's native DOMException instead
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:tainted-ref
> npm --prefix view/lib/wikibase-tainted-ref ci


> 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


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


added 928 packages, and audited 929 packages in 6m

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

23 vulnerabilities (3 low, 11 moderate, 7 high, 2 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 2722 packages, and audited 2723 packages in 6m

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

157 vulnerabilities (7 low, 77 moderate, 54 high, 19 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 2423 packages, and audited 2424 packages in 6m

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

79 vulnerabilities (13 low, 33 moderate, 29 high, 4 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.

added 1440 packages, and audited 1441 packages in 7m

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

6 vulnerabilities (4 moderate, 2 critical)

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

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

Run `npm audit` for details.

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


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


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

validating specs/openapi-joined.json...
PASS repo/tests/jest/ScopedTypeaheadSearch.spec.js (7.523 s)
specs/openapi-joined.json: validated in 1551ms

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


PASS repo/tests/jest/wikibase.wbui2025.editableSnakValue.spec.js (8.42 s)
PASS repo/tests/jest/wikibase.wbui2025.statementGroupView.spec.js
PASS repo/tests/jest/store/editStatementsStore.spec.js
PASS repo/tests/jest/wikibase.wbui2025.editStatementGroup.spec.js
PASS repo/tests/jest/wikibase.wbui2025.addReference.spec.js
PASS repo/tests/jest/wikibase.wbui2025.addStatementButton.spec.js
PASS repo/tests/jest/wikibase.wbui2025.addQualifier.spec.js
PASS repo/tests/jest/wikibase.wbui2025.propertySelector.spec.js
PASS repo/tests/jest/wikibase.wbui2025.propertyLookup.spec.js
PASS repo/tests/jest/wikibase.wbui2025.statementSections.spec.js
PASS repo/tests/jest/wikibase.wbui2025.editableReference.spec.js
PASS repo/tests/jest/wikibase.wbui2025.qualifiers.spec.js
PASS repo/tests/jest/wikibase.wbui2025.modalOverlay.spec.js
PASS repo/tests/jest/wikibase.wbui2025.statusMessage.spec.js
PASS repo/tests/jest/wikibase.wbui2025.mainSnak.spec.js
PASS repo/tests/jest/wikibase.wbui2025.statementView.spec.js
PASS repo/tests/jest/store/parsedValueStore.spec.js
PASS repo/tests/jest/wikibase.wbui2025.propertyName.spec.js
PASS repo/tests/jest/wikibase.wbui2025.editableReferences.spec.js
PASS repo/tests/jest/store/savedStatementsStore.spec.js
PASS repo/tests/jest/wikibase.vector.searchClient.spec.js
PASS repo/tests/jest/wikibase.wbui2025.references.spec.js
PASS repo/tests/jest/store/serverRenderedHtml.spec.js
PASS repo/tests/jest/store/messageStore.spec.js
PASS repo/tests/jest/wikibase.wbui2025.editStatement.spec.js (23.716 s)

Test Suites: 26 passed, 26 total
Tests:       170 passed, 170 total
Snapshots:   0 total
Time:        35.016 s, estimated 40 s
Ran all test suites.
PASS tests/unit/StatementTracker.spec.ts (5.098 s)
PASS tests/unit/MWHookHandler.spec.ts (5.385 s)
PASS tests/unit/TaintedPopper.spec.ts (5.439 s)
PASS tests/unit/TaintedIcon.spec.ts
PASS tests/unit/Popper.spec.ts
PASS tests/unit/App.spec.ts
PASS tests/unit/store/index.spec.ts
PASS tests/unit/store/getters.spec.ts
PASS tests/unit/store/actions.spec.ts
PASS tests/unit/TaintedChecker.spec.ts
PASS tests/unit/ReferenceListChangeCounter.spec.ts
PASS tests/unit/store/mutations.spec.ts

Test Suites: 12 passed, 12 total
Tests:       68 passed, 68 total
Snapshots:   0 total
Time:        10.17 s, estimated 14 s
Ran all test suites.
PASS tests/unit/store/actions.spec.ts (9.039 s)
PASS tests/unit/presentation/components/ErrorPermission.spec.ts (8.948 s)
PASS tests/unit/store/getters.spec.ts
PASS tests/unit/presentation/components/AppHeader.spec.ts
PASS tests/unit/presentation/App.spec.ts (9.716 s)
PASS tests/unit/data-access/CombiningPermissionsRepository.spec.ts
PASS tests/unit/presentation/components/ErrorSaving.spec.ts
PASS tests/unit/presentation/components/Loading.spec.ts
PASS tests/unit/presentation/components/ErrorUnsupportedDatatype.spec.ts
PASS tests/unit/presentation/components/EditDecision.spec.ts
PASS tests/unit/presentation/components/ErrorUnknown.spec.ts
PASS tests/unit/presentation/components/ErrorWrapper.spec.ts
PASS tests/unit/presentation/components/ErrorUnsupportedSnakType.spec.ts
PASS tests/unit/presentation/components/ErrorSavingAssertUser.spec.ts
PASS tests/unit/presentation/components/ResizingTextField.spec.ts
PASS tests/unit/presentation/components/WarningAnonymousEdit.spec.ts
PASS tests/unit/presentation/components/ErrorAmbiguousStatement.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/ErrorDeprecatedStatement.spec.ts
PASS tests/unit/presentation/components/ReportIssue.spec.ts
PASS tests/unit/presentation/components/License.spec.ts
PASS tests/unit/presentation/components/DataBridge.spec.ts
PASS tests/unit/presentation/components/BailoutActions.spec.ts
PASS tests/unit/presentation/components/ThankYou.spec.ts
PASS tests/unit/presentation/components/ReferenceSection.spec.ts
PASS tests/unit/presentation/components/StringDataValue.spec.ts
PASS tests/unit/data-access/ApiRepoConfigRepository.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/main.spec.ts
PASS tests/unit/data-access/ApiTempUserConfigRepository.spec.ts
PASS tests/unit/presentation/components/PropertyLabel.spec.ts
PASS tests/unit/presentation/components/ErrorSavingEditConflict.spec.ts
PASS tests/unit/services/createServices.spec.ts
PASS tests/unit/presentation/components/PageList.spec.ts
PASS tests/unit/mediawiki/prepareContainer.spec.ts
PASS tests/unit/presentation/components/ProcessDialogHeader.spec.ts
PASS tests/unit/presentation/components/RadioInput.spec.ts
PASS tests/unit/store/statements/getters.spec.ts
PASS tests/unit/presentation/components/TermLabel.spec.ts
PASS tests/unit/timer.spec.ts
PASS tests/unit/presentation/components/ErrorPermissionInfo.spec.ts
PASS tests/unit/data-access/ApiCore.spec.ts
PASS tests/unit/change-op/statement-mutation/strategies/ReplaceMutationStrategy.spec.ts
PASS tests/unit/store/entity/actions.spec.ts
PASS tests/unit/presentation/plugins/InLanguagePlugin/InLanguagePlugin.spec.ts
PASS tests/unit/data-access/ApiReadingEntityRepository.spec.ts
PASS tests/unit/data-access/BatchingApi.spec.ts
PASS tests/unit/data-access/ApiWritingRepository.spec.ts
PASS tests/unit/mediawiki/BridgeDomElementsSelector.spec.ts
PASS tests/unit/presentation/components/IndeterminateProgressBar.spec.ts
PASS tests/unit/data-access/ApiPageEditPermissionErrorsRepository.spec.ts
PASS tests/unit/store/mutations.spec.ts
PASS tests/unit/mediawiki/init.spec.ts
PASS tests/unit/presentation/components/UserLink.spec.ts
PASS tests/unit/data-access/SpecialPageReadingEntityRepository.spec.ts
PASS tests/unit/mediawiki/Dispatcher.spec.ts
PASS tests/unit/presentation/components/RadioGroup.spec.ts
PASS tests/unit/data-access/TrimmingWritingRepository.spec.ts
PASS tests/unit/change-op/statement-mutation/strategies/UpdateMutationStrategy.spec.ts
PASS tests/unit/data-access/ApiEntityLabelRepository.spec.ts
PASS tests/unit/store/statements/mutations.spec.ts
PASS tests/unit/store/entity/mutations.spec.ts
PASS tests/unit/store/statements/MainSnakPath.spec.ts
PASS tests/unit/store/newMockableEntityRevision.spec.ts
PASS tests/unit/services/ServiceContainer.spec.ts
PASS tests/unit/presentation/extendVueEnvironment.spec.ts
PASS tests/unit/tracking/PrefixingEventTracker.spec.ts
PASS tests/unit/data-access/MwLanguageInfoRepository.spec.ts
PASS tests/unit/data-access/ApiRenderReferencesRepository.spec.ts
PASS tests/unit/data-access/ApiPropertyDataTypeRepository.spec.ts
PASS tests/unit/presentation/plugins/MessagesPlugin/Messages.spec.ts
PASS tests/unit/mediawiki/subscribeToEvents.spec.ts
PASS tests/unit/mediawiki/MwInitTracker.spec.ts
PASS tests/unit/data-access/RepoRouter.spec.ts
PASS tests/unit/data-access/MwMessagesRepository.spec.ts
PASS tests/unit/data-access/ApiWbgetentities.spec.ts
PASS tests/unit/tracking/mutationsTrackerPlugin.spec.ts
PASS tests/unit/data-access/ApiQuery.spec.ts
PASS tests/unit/store/index.spec.ts
PASS tests/unit/data-access/DataBridgeTrackerService.spec.ts
PASS tests/unit/store/statements/actions.spec.ts
PASS tests/unit/data-access/ApiPurge.spec.ts
PASS tests/unit/utils/errorTypeFormatter.spec.ts
PASS tests/unit/data-access/ClientRouter.spec.ts
PASS tests/unit/change-op/statement-mutation/statementMutationFactory.spec.ts
PASS tests/unit/presentation/plugins/RepoRouter/RepoRouterPlugin.spec.ts
PASS tests/unit/mediawiki/facades/EventTracker.spec.ts
PASS tests/unit/store/clone.spec.ts

Test Suites: 88 passed, 88 total
Tests:       627 passed, 627 total
Snapshots:   13 passed, 13 total
Time:        17.374 s, estimated 33 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.541 s, estimated 9 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.459 s, estimated 12 s
Ran all test suites.
-  Building for production...
(node:3308) [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)
(node:3308) [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:tainted-ref
> npm --prefix view/lib/wikibase-tainted-ref 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:bridge
> npm --prefix client/data-bridge test


> wikibase@0.1.0 test-fast:jest-repo
> jest -c repo/tests/jest/jest.config.js


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


> 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 lint
> npm-run-all --parallel --continue-on-error lint:*


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


> 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
> npm-run-all --parallel --continue-on-error eslint:*


> 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 spec:join
> bash -c 'redocly join --without-x-tag-groups specs/openapi.base.json <(node ../domains/crud/specs/index.fragment.js) <(node ../domains/search/specs/index.fragment.js) -o specs/openapi-joined.json'


> wikibase-rest-api-definition@0.1.0 eslint:rest
> eslint . --max-warnings 0


> wikibase-rest-api-definition@0.1.0 eslint:search
> eslint ../domains/search --max-warnings 0


> wikibase-rest-api-definition@0.1.0 eslint:crud
> eslint ../domains/crud --max-warnings 0


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

Running "stylelint:all" (stylelint) task

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

 DONE  No lint errors found!

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

 DONE  No lint errors found!
>> Linted 51 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


 WARNING  Compiled with 2 warnings4:57:50 AM

 warning  

entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
Entrypoints:
  app (247 KiB)
      data-bridge.chunk-vendors.js
      css/data-bridge.app.css
      data-bridge.app.js


 warning  

webpack performance recommendations: 
You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.
For more info visit https://webpack.js.org/guides/code-splitting/

  File                                      Size             Gzipped

  ../../../../tmp/dist/data-bridge.app.j    194.51 KiB       53.46 KiB
  s
  ../../../../tmp/dist/data-bridge.chunk    27.44 KiB        10.19 KiB
  -vendors.js
  ../../../../tmp/dist/data-bridge.init.    9.59 KiB         4.13 KiB
  js
  ../../../../tmp/dist/css/data-bridge.a    25.54 KiB        4.26 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 ---
{"1109532": {"source": 1109532, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball", "url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v", "severity": "high", "cwe": ["CWE-22", "CWE-61"], "cvss": {"score": 0, "vectorString": null}, "range": ">=2.0.0 <2.1.4"}, "1109543": {"source": 1109543, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs can extract outside the specified dir with a specific tarball", "url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 0, "vectorString": null}, "range": ">=2.0.0 <2.1.3"}, "1109552": {"source": 1109552, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File", "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=2.0.0 <2.1.2"}, "1098392": {"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"}}
Upgrading n:puppeteer-core from 13.7.0 -> 24.29.1
{"1109532": {"source": 1109532, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball", "url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v", "severity": "high", "cwe": ["CWE-22", "CWE-61"], "cvss": {"score": 0, "vectorString": null}, "range": ">=2.0.0 <2.1.4"}, "1109543": {"source": 1109543, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs can extract outside the specified dir with a specific tarball", "url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 0, "vectorString": null}, "range": ">=2.0.0 <2.1.3"}, "1109552": {"source": 1109552, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File", "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=2.0.0 <2.1.2"}}
Upgrading n:tar-fs from 2.1.1, 3.1.1 -> 3.1.1
{"1098392": {"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"}}
Upgrading n:ws from 8.18.1, 8.18.3, 8.5.0 -> 8.18.3
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

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

* api-testing: 1.7.0 → 1.7.1
* @wikimedia/codex: 2.3.1 → 2.3.2
* puppeteer-core: 13.7.0 → 24.29.1
  * https://github.com/advisories/GHSA-3h5v-q93c-6h6q
  * https://github.com/advisories/GHSA-8cj5-5rvv-wf4v
  * https://github.com/advisories/GHSA-pq67-2wwv-3xjx
  * https://github.com/advisories/GHSA-vj76-c3g6-qr5v
* tar-fs: 2.1.1, 3.1.1 → 3.1.1
  * https://github.com/advisories/GHSA-8cj5-5rvv-wf4v
  * https://github.com/advisories/GHSA-pq67-2wwv-3xjx
  * https://github.com/advisories/GHSA-vj76-c3g6-qr5v
* ws: 8.18.1, 8.18.3, 8.5.0 → 8.18.3
  * https://github.com/advisories/GHSA-3h5v-q93c-6h6q

$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmpm1oo5f2x
--- stdout ---
[master 6305c25] build: Updating npm dependencies
 2 files changed, 297 insertions(+), 543 deletions(-)

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

* api-testing: 1.7.0 → 1.7.1
* @wikimedia/codex: 2.3.1 → 2.3.2
* puppeteer-core: 13.7.0 → 24.29.1
  * https://github.com/advisories/GHSA-3h5v-q93c-6h6q
  * https://github.com/advisories/GHSA-8cj5-5rvv-wf4v
  * https://github.com/advisories/GHSA-pq67-2wwv-3xjx
  * https://github.com/advisories/GHSA-vj76-c3g6-qr5v
* tar-fs: 2.1.1, 3.1.1 → 3.1.1
  * https://github.com/advisories/GHSA-8cj5-5rvv-wf4v
  * https://github.com/advisories/GHSA-pq67-2wwv-3xjx
  * https://github.com/advisories/GHSA-vj76-c3g6-qr5v
* ws: 8.18.1, 8.18.3, 8.5.0 → 8.18.3
  * https://github.com/advisories/GHSA-3h5v-q93c-6h6q

Change-Id: If9a8e7e28675bbf6d8078263ef2488cf46e93b0d
---
 package-lock.json | 836 ++++++++++++++++------------------------------
 package.json      |   4 +-
 2 files changed, 297 insertions(+), 543 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index aac4363..1608974 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,8 +17,8 @@
 				"@wdio/local-runner": "^9.20.0",
 				"@wdio/mocha-framework": "^9.20.0",
 				"@wdio/spec-reporter": "^9.20.0",
-				"@wikimedia/codex": "2.3.1",
-				"api-testing": "1.7.0",
+				"@wikimedia/codex": "2.3.2",
+				"api-testing": "1.7.1",
 				"apollo-boost": "^0.4.9",
 				"axe-core": "^4.10.3",
 				"cross-fetch": "^3.1.5",
@@ -3502,6 +3502,18 @@
 			"integrity": "sha512-0USwV4F7T4vWGqPoefi0j103sq6Nut2YEXqLz9TUyoj7LBbqXSeWseNRHA7C6LXXm0glrvllKXdeju4oHqIxZw==",
 			"dev": true
 		},
+		"node_modules/@noble/hashes": {
+			"version": "1.8.0",
+			"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+			"integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+			"dev": true,
+			"engines": {
+				"node": "^14.21.3 || >=16"
+			},
+			"funding": {
+				"url": "https://paulmillr.com/funding/"
+			}
+		},
 		"node_modules/@nodelib/fs.scandir": {
 			"version": "2.1.5",
 			"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -3543,6 +3555,15 @@
 			"integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==",
 			"dev": true
 		},
+		"node_modules/@paralleldrive/cuid2": {
+			"version": "2.3.1",
+			"resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz",
+			"integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==",
+			"dev": true,
+			"dependencies": {
+				"@noble/hashes": "^1.1.5"
+			}
+		},
 		"node_modules/@pinia/testing": {
 			"version": "0.0.12",
 			"resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-0.0.12.tgz",
@@ -3614,9 +3635,9 @@
 			}
 		},
 		"node_modules/@puppeteer/browsers": {
-			"version": "2.10.12",
-			"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.12.tgz",
-			"integrity": "sha512-mP9iLFZwH+FapKJLeA7/fLqOlSUwYpMwjR1P5J23qd4e7qGJwecJccJqHYrjw33jmIZYV4dtiTHPD/J+1e7cEw==",
+			"version": "2.10.13",
+			"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.13.tgz",
+			"integrity": "sha512-a9Ruw3j3qlnB5a/zHRTkruppynxqaeE4H9WNj5eYGRWqw0ZauZ23f4W2ARf3hghF5doozyD+CRtt7XSYuYRI/Q==",
 			"dev": true,
 			"dependencies": {
 				"debug": "^4.4.3",
@@ -3634,29 +3655,6 @@
 				"node": ">=18"
 			}
 		},
-		"node_modules/@puppeteer/browsers/node_modules/debug": {
-			"version": "4.4.3",
-			"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
-			"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
-			"dev": true,
-			"dependencies": {
-				"ms": "^2.1.3"
-			},
-			"engines": {
-				"node": ">=6.0"
-			},
-			"peerDependenciesMeta": {
-				"supports-color": {
-					"optional": true
-				}
-			}
-		},
-		"node_modules/@puppeteer/browsers/node_modules/ms": {
-			"version": "2.1.3",
-			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-			"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-			"dev": true
-		},
 		"node_modules/@puppeteer/browsers/node_modules/tar-fs": {
 			"version": "3.1.1",
 			"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz",
@@ -5242,13 +5240,13 @@
 			}
 		},
 		"node_modules/@wikimedia/codex": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.3.1.tgz",
-			"integrity": "sha512-cQhs0LfmGUxML05QBdpt7RkqLdLgRv48yD/JTyr12I43w7msZwZEhYmztMC+Q1l7Ra7YEKpBegoqkljMOrMpOA==",
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.3.2.tgz",
+			"integrity": "sha512-kzDg5RZxvlaJEE0JDK+CQjR+83DpY/QEW01BwLalcDKhP/HCujMz2QpsUAV8qaGNArAO/IkIUzBj1+2eL7yKNg==",
 			"dev": true,
 			"dependencies": {
 				"@floating-ui/vue": "1.0.6",
-				"@wikimedia/codex-icons": "2.3.1"
+				"@wikimedia/codex-icons": "2.3.2"
 			},
 			"engines": {
 				"node": ">=20.19.1",
@@ -5259,9 +5257,9 @@
 			}
 		},
 		"node_modules/@wikimedia/codex-icons": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.3.1.tgz",
-			"integrity": "sha512-lMZD1V8mtfFxuUHimAGi9Qd9vAliV7P/KS0SDk/F+aBRAR0as6cLaWAEx8uanhRJ/Ptdl5pp4WELydkpaTXS/w==",
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.3.2.tgz",
+			"integrity": "sha512-2oIGBBrK7B+oHhiKjGdkrZdABCymaSAFCRrBOj+83S5oD/q0u+D3IEs/SQ1JT1RuV5pv/iap3mh7StPfLKI1mw==",
 			"dev": true,
 			"engines": {
 				"node": ">=20.19.1",
@@ -5481,16 +5479,16 @@
 			}
 		},
 		"node_modules/api-testing": {
-			"version": "1.7.0",
-			"resolved": "https://registry.npmjs.org/api-testing/-/api-testing-1.7.0.tgz",
-			"integrity": "sha512-+gp8xQtm1CYQNgsGvzolWjjkm059mDuTF975P0aebUfekouY+CIPirfGjU+UT464b2+wVaiSy5wPlDnXB1zXBA==",
+			"version": "1.7.1",
+			"resolved": "https://registry.npmjs.org/api-testing/-/api-testing-1.7.1.tgz",
+			"integrity": "sha512-h6eqLa9uOOpbBXGN6/s91GquV1YprC1XLVtWIRv/25XWFRqHibIBwuXjqcUqFSsU1fgYvfclSMRXuUcCvEmX6A==",
 			"dev": true,
 			"dependencies": {
-				"chai": "^4.2.0",
-				"supertest": "^5.0.0-0"
+				"chai": "4.5.0",
+				"supertest": "7.1.0"
 			},
 			"engines": {
-				"node": ">= 10.0.0"
+				"node": ">= 14.18.0"
 			}
 		},
 		"node_modules/apollo-boost": {
@@ -5933,6 +5931,12 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/asap": {
+			"version": "2.0.6",
+			"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+			"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+			"dev": true
+		},
 		"node_modules/asn1": {
 			"version": "0.2.6",
 			"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
@@ -6384,19 +6388,6 @@
 				"node": ">=8"
 			}
 		},
-		"node_modules/bl": {
-			"version": "4.1.0",
-			"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
-			"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"buffer": "^5.5.0",
-				"inherits": "^2.0.4",
-				"readable-stream": "^3.4.0"
-			}
-		},
 		"node_modules/blob-util": {
 			"version": "2.0.2",
 			"resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz",
@@ -6851,13 +6842,20 @@
 				"fsevents": "~2.3.2"
 			}
 		},
-		"node_modules/chownr": {
-			"version": "1.1.4",
-			"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
-			"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+		"node_modules/chromium-bidi": {
+			"version": "10.5.1",
+			"resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-10.5.1.tgz",
+			"integrity": "sha512-rlj6OyhKhVTnk4aENcUme3Jl9h+cq4oXu4AzBcvr8RMmT6BR4a3zSNT9dbIfXr9/BS6ibzRyDhowuw4n2GgzsQ==",
 			"dev": true,
 			"optional": true,
-			"peer": true
+			"peer": true,
+			"dependencies": {
+				"mitt": "^3.0.1",
+				"zod": "^3.24.1"
+			},
+			"peerDependencies": {
+				"devtools-protocol": "*"
+			}
 		},
 		"node_modules/ci-info": {
 			"version": "3.9.0",
@@ -8179,12 +8177,12 @@
 			"dev": true
 		},
 		"node_modules/debug": {
-			"version": "4.3.4",
-			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-			"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+			"version": "4.4.3",
+			"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+			"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
 			"dev": true,
 			"dependencies": {
-				"ms": "2.1.2"
+				"ms": "^2.1.3"
 			},
 			"engines": {
 				"node": ">=6.0"
@@ -8360,6 +8358,24 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/devtools-protocol": {
+			"version": "0.0.1521046",
+			"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1521046.tgz",
+			"integrity": "sha512-vhE6eymDQSKWUXwwA37NtTTVEzjtGVfDr3pRbsWEQ5onH/Snp2c+2xZHWJJawG/0hCCJLRGt4xVtEVUVILol4w==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"node_modules/dezalgo": {
+			"version": "1.0.4",
+			"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
+			"integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
+			"dev": true,
+			"dependencies": {
+				"asap": "^2.0.0",
+				"wrappy": "1"
+			}
+		},
 		"node_modules/diff": {
 			"version": "5.2.0",
 			"resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
@@ -10583,23 +10599,22 @@
 			}
 		},
 		"node_modules/formidable": {
-			"version": "1.2.6",
-			"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz",
-			"integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==",
-			"deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau",
+			"version": "3.5.4",
+			"resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz",
+			"integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==",
 			"dev": true,
+			"dependencies": {
+				"@paralleldrive/cuid2": "^2.2.2",
+				"dezalgo": "^1.0.4",
+				"once": "^1.4.0"
+			},
+			"engines": {
+				"node": ">=14.0.0"
+			},
 			"funding": {
 				"url": "https://ko-fi.com/tunnckoCore/commissions"
 			}
 		},
-		"node_modules/fs-constants": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
-			"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
-			"dev": true,
-			"optional": true,
-			"peer": true
-		},
 		"node_modules/fs.realpath": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -13317,27 +13332,6 @@
 				"node": ">=12"
 			}
 		},
-		"node_modules/jsdom/node_modules/ws": {
-			"version": "8.18.1",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz",
-			"integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==",
-			"dev": true,
-			"engines": {
-				"node": ">=10.0.0"
-			},
-			"peerDependencies": {
-				"bufferutil": "^4.0.1",
-				"utf-8-validate": ">=5.0.2"
-			},
-			"peerDependenciesMeta": {
-				"bufferutil": {
-					"optional": true
-				},
-				"utf-8-validate": {
-					"optional": true
-				}
-			}
-		},
 		"node_modules/jsesc": {
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
@@ -14129,14 +14123,6 @@
 			"integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
 			"dev": true
 		},
-		"node_modules/mkdirp-classic": {
-			"version": "0.5.3",
-			"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
-			"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
-			"dev": true,
-			"optional": true,
-			"peer": true
-		},
 		"node_modules/mocha": {
 			"version": "10.8.2",
 			"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
@@ -14192,23 +14178,6 @@
 				"wrap-ansi": "^7.0.0"
 			}
 		},
-		"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": {
-				"ms": "^2.1.3"
-			},
-			"engines": {
-				"node": ">=6.0"
-			},
-			"peerDependenciesMeta": {
-				"supports-color": {
-					"optional": true
-				}
-			}
-		},
 		"node_modules/mocha/node_modules/minimatch": {
 			"version": "5.1.6",
 			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
@@ -14221,12 +14190,6 @@
 				"node": ">=10"
 			}
 		},
-		"node_modules/mocha/node_modules/ms": {
-			"version": "2.1.3",
-			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-			"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-			"dev": true
-		},
 		"node_modules/mocha/node_modules/yargs": {
 			"version": "16.2.0",
 			"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
@@ -14246,9 +14209,9 @@
 			}
 		},
 		"node_modules/ms": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-			"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+			"version": "2.1.3",
+			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+			"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
 			"dev": true
 		},
 		"node_modules/multimatch": {
@@ -15686,69 +15649,23 @@
 			}
 		},
 		"node_modules/puppeteer-core": {
-			"version": "13.7.0",
-			"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz",
-			"integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"cross-fetch": "3.1.5",
-				"debug": "4.3.4",
-				"devtools-protocol": "0.0.981744",
-				"extract-zip": "2.0.1",
-				"https-proxy-agent": "5.0.1",
-				"pkg-dir": "4.2.0",
-				"progress": "2.0.3",
-				"proxy-from-env": "1.1.0",
-				"rimraf": "3.0.2",
-				"tar-fs": "2.1.1",
-				"unbzip2-stream": "1.4.3",
-				"ws": "8.5.0"
-			},
-			"engines": {
-				"node": ">=10.18.1"
-			}
-		},
-		"node_modules/puppeteer-core/node_modules/cross-fetch": {
-			"version": "3.1.5",
-			"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
-			"integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"node-fetch": "2.6.7"
-			}
-		},
-		"node_modules/puppeteer-core/node_modules/devtools-protocol": {
-			"version": "0.0.981744",
-			"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz",
-			"integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==",
-			"dev": true,
-			"optional": true,
-			"peer": true
-		},
-		"node_modules/puppeteer-core/node_modules/node-fetch": {
-			"version": "2.6.7",
-			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
-			"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+			"version": "24.29.1",
+			"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.29.1.tgz",
+			"integrity": "sha512-ErJ9qKCK+bdLvBa7QVSQTBSPm8KZbl1yC/WvhrZ0ut27hDf2QBzjDsn1IukzE1i1KtZ7NYGETOV4W1beoo9izA==",
 			"dev": true,
 			"optional": true,
 			"peer": true,
 			"dependencies": {
-				"whatwg-url": "^5.0.0"
+				"@puppeteer/browsers": "2.10.13",
+				"chromium-bidi": "10.5.1",
+				"debug": "^4.4.3",
+				"devtools-protocol": "0.0.1521046",
+				"typed-query-selector": "^2.12.0",
+				"webdriver-bidi-protocol": "0.3.8",
+				"ws": "^8.18.3"
 			},
 			"engines": {
-				"node": "4.x || >=6.0.0"
-			},
-			"peerDependencies": {
-				"encoding": "^0.1.0"
-			},
-			"peerDependenciesMeta": {
-				"encoding": {
-					"optional": true
-				}
+				"node": ">=18"
 			}
 		},
 		"node_modules/pure-rand": {
@@ -17430,24 +17347,6 @@
 			"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
 			"dev": true
 		},
-		"node_modules/stylelint/node_modules/debug": {
-			"version": "4.3.7",
-			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
-			"integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"ms": "^2.1.3"
-			},
-			"engines": {
-				"node": ">=6.0"
-			},
-			"peerDependenciesMeta": {
-				"supports-color": {
-					"optional": true
-				}
-			}
-		},
 		"node_modules/stylelint/node_modules/file-entry-cache": {
 			"version": "9.1.0",
 			"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz",
@@ -17520,13 +17419,6 @@
 				"node": ">=0.10.0"
 			}
 		},
-		"node_modules/stylelint/node_modules/ms": {
-			"version": "2.1.3",
-			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-			"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-			"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",
@@ -17587,39 +17479,37 @@
 			}
 		},
 		"node_modules/superagent": {
-			"version": "6.1.0",
-			"resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz",
-			"integrity": "sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==",
+			"version": "9.0.2",
+			"resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz",
+			"integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==",
 			"deprecated": "Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net",
 			"dev": true,
 			"dependencies": {
 				"component-emitter": "^1.3.0",
-				"cookiejar": "^2.1.2",
-				"debug": "^4.1.1",
-				"fast-safe-stringify": "^2.0.7",
-				"form-data": "^3.0.0",
-				"formidable": "^1.2.2",
+				"cookiejar": "^2.1.4",
+				"debug": "^4.3.4",
+				"fast-safe-stringify": "^2.1.1",
+				"form-data": "^4.0.0",
+				"formidable": "^3.5.1",
 				"methods": "^1.1.2",
-				"mime": "^2.4.6",
-				"qs": "^6.9.4",
-				"readable-stream": "^3.6.0",
-				"semver": "^7.3.2"
+				"mime": "2.6.0",
+				"qs": "^6.11.0"
 			},
 			"engines": {
-				"node": ">= 7.0.0"
+				"node": ">=14.18.0"
 			}
 		},
 		"node_modules/superagent/node_modules/form-data": {
-			"version": "3.0.4",
-			"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz",
-			"integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==",
+			"version": "4.0.4",
+			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+			"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
 			"dev": true,
 			"dependencies": {
 				"asynckit": "^0.4.0",
 				"combined-stream": "^1.0.8",
 				"es-set-tostringtag": "^2.1.0",
 				"hasown": "^2.0.2",
-				"mime-types": "^2.1.35"
+				"mime-types": "^2.1.12"
 			},
 			"engines": {
 				"node": ">= 6"
@@ -17641,17 +17531,17 @@
 			}
 		},
 		"node_modules/supertest": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/supertest/-/supertest-5.0.0.tgz",
-			"integrity": "sha512-2JAWpPrUOZF4hHH5ZTCN2xjKXvJS3AEwPNXl0HUseHsfcXFvMy9kcsufIHCNAmQ5hlGCvgeAqaR5PBEouN3hlQ==",
+			"version": "7.1.0",
+			"resolved": "https://registry.npmjs.org/supertest/-/supertest-7.1.0.tgz",
+			"integrity": "sha512-5QeSO8hSrKghtcWEoPiO036fxH0Ii2wVQfFZSP0oqQhmjk8bOLhDFXr4JrvaFmPuEWUoq4znY3uSi8UzLKxGqw==",
 			"deprecated": "Please upgrade to supertest v7.1.3+, see release notes at https://github.com/forwardemail/supertest/releases/tag/v7.1.3 - maintenance is supported by Forward Email @ https://forwardemail.net",
 			"dev": true,
 			"dependencies": {
-				"methods": "1.1.2",
-				"superagent": "6.1.0"
+				"methods": "^1.1.2",
+				"superagent": "^9.0.1"
 			},
 			"engines": {
-				"node": ">=6.0.0"
+				"node": ">=14.18.0"
 			}
 		},
 		"node_modules/supports-color": {
@@ -17779,38 +17669,6 @@
 				"node": ">=6"
 			}
 		},
-		"node_modules/tar-fs": {
-			"version": "2.1.1",
-			"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
-			"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"chownr": "^1.1.1",
-				"mkdirp-classic": "^0.5.2",
-				"pump": "^3.0.0",
-				"tar-stream": "^2.1.4"
-			}
-		},
-		"node_modules/tar-stream": {
-			"version": "2.2.0",
-			"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
-			"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"bl": "^4.0.3",
-				"end-of-stream": "^1.4.1",
-				"fs-constants": "^1.0.0",
-				"inherits": "^2.0.3",
-				"readable-stream": "^3.1.1"
-			},
-			"engines": {
-				"node": ">=6"
-			}
-		},
 		"node_modules/test-exclude": {
 			"version": "6.0.0",
 			"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
@@ -18141,6 +17999,14 @@
 				"url": "https://github.com/sponsors/ljharb"
 			}
 		},
+		"node_modules/typed-query-selector": {
+			"version": "2.12.0",
+			"resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz",
+			"integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
 		"node_modules/typescript": {
 			"version": "4.9.5",
 			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
@@ -18170,18 +18036,6 @@
 				"url": "https://github.com/sponsors/ljharb"
 			}
 		},
-		"node_modules/unbzip2-stream": {
-			"version": "1.4.3",
-			"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
-			"integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"dependencies": {
-				"buffer": "^5.2.1",
-				"through": "^2.3.8"
-			}
-		},
 		"node_modules/unc-path-regex": {
 			"version": "0.1.2",
 			"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -18550,7 +18404,8 @@
 		},
 		"node_modules/wdio-wikibase": {
 			"version": "6.4.0",
-			"resolved": "git+ssh://git@github.com/wmde/wdio-wikibase.git#60dd13e91c65809708132ff6a5323f483d952337",
+			"resolved": "https://registry.npmjs.org/wdio-wikibase/-/wdio-wikibase-6.4.0.tgz",
+			"integrity": "sha512-xYWOQHoyNOXUr/A7sXYC4fH2vE+KENCODFEHWJnESYRhGjwu8pgrZY/7qflINielbEmEVDsI6Do8eqttMj7g7w==",
 			"dev": true,
 			"engines": {
 				"node": ">=16.0"
@@ -18592,6 +18447,14 @@
 				"node": ">=18.20.0"
 			}
 		},
+		"node_modules/webdriver-bidi-protocol": {
+			"version": "0.3.8",
+			"resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.8.tgz",
+			"integrity": "sha512-21Yi2GhGntMc671vNBCjiAeEVknXjVRoyu+k+9xOMShu+ZQfpGQwnBqbNz/Sv4GXZ6JmutlPAi2nIJcrymAWuQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
 		"node_modules/webdriver/node_modules/agent-base": {
 			"version": "7.1.4",
 			"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
@@ -18614,27 +18477,6 @@
 				"node": ">= 14"
 			}
 		},
-		"node_modules/webdriver/node_modules/ws": {
-			"version": "8.18.3",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
-			"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
-			"dev": true,
-			"engines": {
-				"node": ">=10.0.0"
-			},
-			"peerDependencies": {
-				"bufferutil": "^4.0.1",
-				"utf-8-validate": ">=5.0.2"
-			},
-			"peerDependenciesMeta": {
-				"bufferutil": {
-					"optional": true
-				},
-				"utf-8-validate": {
-					"optional": true
-				}
-			}
-		},
 		"node_modules/webdriverio": {
 			"version": "9.20.0",
 			"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-9.20.0.tgz",
@@ -18833,18 +18675,16 @@
 			}
 		},
 		"node_modules/ws": {
-			"version": "8.5.0",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
-			"integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+			"version": "8.18.3",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+			"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
 			"dev": true,
-			"optional": true,
-			"peer": true,
 			"engines": {
 				"node": ">=10.0.0"
 			},
 			"peerDependencies": {
 				"bufferutil": "^4.0.1",
-				"utf-8-validate": "^5.0.2"
+				"utf-8-validate": ">=5.0.2"
 			},
 			"peerDependenciesMeta": {
 				"bufferutil": {
@@ -19113,6 +18953,17 @@
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
 			}
+		},
+		"node_modules/zod": {
+			"version": "3.25.76",
+			"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+			"integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"funding": {
+				"url": "https://github.com/sponsors/colinhacks"
+			}
 		}
 	},
 	"dependencies": {
@@ -21379,6 +21230,12 @@
 			"integrity": "sha512-0USwV4F7T4vWGqPoefi0j103sq6Nut2YEXqLz9TUyoj7LBbqXSeWseNRHA7C6LXXm0glrvllKXdeju4oHqIxZw==",
 			"dev": true
 		},
+		"@noble/hashes": {
+			"version": "1.8.0",
+			"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+			"integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+			"dev": true
+		},
 		"@nodelib/fs.scandir": {
 			"version": "2.1.5",
 			"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -21411,6 +21268,15 @@
 			"integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==",
 			"dev": true
 		},
+		"@paralleldrive/cuid2": {
+			"version": "2.3.1",
+			"resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz",
+			"integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==",
+			"dev": true,
+			"requires": {
+				"@noble/hashes": "^1.1.5"
+			}
+		},
 		"@pinia/testing": {
 			"version": "0.0.12",
 			"resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-0.0.12.tgz",
@@ -21446,9 +21312,9 @@
 			}
 		},
 		"@puppeteer/browsers": {
-			"version": "2.10.12",
-			"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.12.tgz",
-			"integrity": "sha512-mP9iLFZwH+FapKJLeA7/fLqOlSUwYpMwjR1P5J23qd4e7qGJwecJccJqHYrjw33jmIZYV4dtiTHPD/J+1e7cEw==",
+			"version": "2.10.13",
+			"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.13.tgz",
+			"integrity": "sha512-a9Ruw3j3qlnB5a/zHRTkruppynxqaeE4H9WNj5eYGRWqw0ZauZ23f4W2ARf3hghF5doozyD+CRtt7XSYuYRI/Q==",
 			"dev": true,
 			"requires": {
 				"debug": "^4.4.3",
@@ -21460,21 +21326,6 @@
 				"yargs": "^17.7.2"
 			},
 			"dependencies": {
-				"debug": {
-					"version": "4.4.3",
-					"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
-					"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
-					"dev": true,
-					"requires": {
-						"ms": "^2.1.3"
-					}
-				},
-				"ms": {
-					"version": "2.1.3",
-					"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-					"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-					"dev": true
-				},
 				"tar-fs": {
 					"version": "3.1.1",
 					"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz",
@@ -22676,19 +22527,19 @@
 			}
 		},
 		"@wikimedia/codex": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.3.1.tgz",
-			"integrity": "sha512-cQhs0LfmGUxML05QBdpt7RkqLdLgRv48yD/JTyr12I43w7msZwZEhYmztMC+Q1l7Ra7YEKpBegoqkljMOrMpOA==",
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.3.2.tgz",
+			"integrity": "sha512-kzDg5RZxvlaJEE0JDK+CQjR+83DpY/QEW01BwLalcDKhP/HCujMz2QpsUAV8qaGNArAO/IkIUzBj1+2eL7yKNg==",
 			"dev": true,
 			"requires": {
 				"@floating-ui/vue": "1.0.6",
-				"@wikimedia/codex-icons": "2.3.1"
+				"@wikimedia/codex-icons": "2.3.2"
 			}
 		},
 		"@wikimedia/codex-icons": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.3.1.tgz",
-			"integrity": "sha512-lMZD1V8mtfFxuUHimAGi9Qd9vAliV7P/KS0SDk/F+aBRAR0as6cLaWAEx8uanhRJ/Ptdl5pp4WELydkpaTXS/w==",
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.3.2.tgz",
+			"integrity": "sha512-2oIGBBrK7B+oHhiKjGdkrZdABCymaSAFCRrBOj+83S5oD/q0u+D3IEs/SQ1JT1RuV5pv/iap3mh7StPfLKI1mw==",
 			"dev": true
 		},
 		"@wry/context": {
@@ -22849,13 +22700,13 @@
 			}
 		},
 		"api-testing": {
-			"version": "1.7.0",
-			"resolved": "https://registry.npmjs.org/api-testing/-/api-testing-1.7.0.tgz",
-			"integrity": "sha512-+gp8xQtm1CYQNgsGvzolWjjkm059mDuTF975P0aebUfekouY+CIPirfGjU+UT464b2+wVaiSy5wPlDnXB1zXBA==",
+			"version": "1.7.1",
+			"resolved": "https://registry.npmjs.org/api-testing/-/api-testing-1.7.1.tgz",
+			"integrity": "sha512-h6eqLa9uOOpbBXGN6/s91GquV1YprC1XLVtWIRv/25XWFRqHibIBwuXjqcUqFSsU1fgYvfclSMRXuUcCvEmX6A==",
 			"dev": true,
 			"requires": {
-				"chai": "^4.2.0",
-				"supertest": "^5.0.0-0"
+				"chai": "4.5.0",
+				"supertest": "7.1.0"
 			}
 		},
 		"apollo-boost": {
@@ -23182,6 +23033,12 @@
 			"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
 			"dev": true
 		},
+		"asap": {
+			"version": "2.0.6",
+			"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+			"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+			"dev": true
+		},
 		"asn1": {
 			"version": "0.2.6",
 			"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
@@ -23510,19 +23367,6 @@
 			"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
 			"dev": true
 		},
-		"bl": {
-			"version": "4.1.0",
-			"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
-			"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"requires": {
-				"buffer": "^5.5.0",
-				"inherits": "^2.0.4",
-				"readable-stream": "^3.4.0"
-			}
-		},
 		"blob-util": {
 			"version": "2.0.2",
 			"resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz",
@@ -23835,13 +23679,17 @@
 				"readdirp": "~3.6.0"
 			}
 		},
-		"chownr": {
-			"version": "1.1.4",
-			"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
-			"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+		"chromium-bidi": {
+			"version": "10.5.1",
+			"resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-10.5.1.tgz",
+			"integrity": "sha512-rlj6OyhKhVTnk4aENcUme3Jl9h+cq4oXu4AzBcvr8RMmT6BR4a3zSNT9dbIfXr9/BS6ibzRyDhowuw4n2GgzsQ==",
 			"dev": true,
 			"optional": true,
-			"peer": true
+			"peer": true,
+			"requires": {
+				"mitt": "^3.0.1",
+				"zod": "^3.24.1"
+			}
 		},
 		"ci-info": {
 			"version": "3.9.0",
@@ -24799,12 +24647,12 @@
 			"dev": true
 		},
 		"debug": {
-			"version": "4.3.4",
-			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-			"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+			"version": "4.4.3",
+			"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+			"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
 			"dev": true,
 			"requires": {
-				"ms": "2.1.2"
+				"ms": "^2.1.3"
 			}
 		},
 		"decamelize": {
@@ -24920,6 +24768,24 @@
 			"integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
 			"dev": true
 		},
+		"devtools-protocol": {
+			"version": "0.0.1521046",
+			"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1521046.tgz",
+			"integrity": "sha512-vhE6eymDQSKWUXwwA37NtTTVEzjtGVfDr3pRbsWEQ5onH/Snp2c+2xZHWJJawG/0hCCJLRGt4xVtEVUVILol4w==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"dezalgo": {
+			"version": "1.0.4",
+			"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
+			"integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
+			"dev": true,
+			"requires": {
+				"asap": "^2.0.0",
+				"wrappy": "1"
+			}
+		},
 		"diff": {
 			"version": "5.2.0",
 			"resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
@@ -26533,18 +26399,15 @@
 			}
 		},
 		"formidable": {
-			"version": "1.2.6",
-			"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz",
-			"integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==",
-			"dev": true
-		},
-		"fs-constants": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
-			"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+			"version": "3.5.4",
+			"resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz",
+			"integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==",
 			"dev": true,
-			"optional": true,
-			"peer": true
+			"requires": {
+				"@paralleldrive/cuid2": "^2.2.2",
+				"dezalgo": "^1.0.4",
+				"once": "^1.4.0"
+			}
 		},
 		"fs.realpath": {
 			"version": "1.0.0",
@@ -28517,13 +28380,6 @@
 						"tr46": "^3.0.0",
 						"webidl-conversions": "^7.0.0"
 					}
-				},
-				"ws": {
-					"version": "8.18.1",
-					"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz",
-					"integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==",
-					"dev": true,
-					"requires": {}
 				}
 			}
 		},
@@ -29159,14 +29015,6 @@
 			"integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
 			"dev": true
 		},
-		"mkdirp-classic": {
-			"version": "0.5.3",
-			"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
-			"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
-			"dev": true,
-			"optional": true,
-			"peer": true
-		},
 		"mocha": {
 			"version": "10.8.2",
 			"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
@@ -29215,15 +29063,6 @@
 						"wrap-ansi": "^7.0.0"
 					}
 				},
-				"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": {
-						"ms": "^2.1.3"
-					}
-				},
 				"minimatch": {
 					"version": "5.1.6",
 					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
@@ -29233,12 +29072,6 @@
 						"brace-expansion": "^2.0.1"
 					}
 				},
-				"ms": {
-					"version": "2.1.3",
-					"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-					"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-					"dev": true
-				},
 				"yargs": {
 					"version": "16.2.0",
 					"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
@@ -29257,9 +29090,9 @@
 			}
 		},
 		"ms": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-			"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+			"version": "2.1.3",
+			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+			"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
 			"dev": true
 		},
 		"multimatch": {
@@ -30284,57 +30117,20 @@
 			"dev": true
 		},
 		"puppeteer-core": {
-			"version": "13.7.0",
-			"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz",
-			"integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==",
+			"version": "24.29.1",
+			"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.29.1.tgz",
+			"integrity": "sha512-ErJ9qKCK+bdLvBa7QVSQTBSPm8KZbl1yC/WvhrZ0ut27hDf2QBzjDsn1IukzE1i1KtZ7NYGETOV4W1beoo9izA==",
 			"dev": true,
 			"optional": true,
 			"peer": true,
 			"requires": {
-				"cross-fetch": "3.1.5",
-				"debug": "4.3.4",
-				"devtools-protocol": "0.0.981744",
-				"extract-zip": "2.0.1",
-				"https-proxy-agent": "5.0.1",
-				"pkg-dir": "4.2.0",
-				"progress": "2.0.3",
-				"proxy-from-env": "1.1.0",
-				"rimraf": "3.0.2",
-				"tar-fs": "2.1.1",
-				"unbzip2-stream": "1.4.3",
-				"ws": "8.5.0"
-			},
-			"dependencies": {
-				"cross-fetch": {
-					"version": "3.1.5",
-					"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
-					"integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
-					"dev": true,
-					"optional": true,
-					"peer": true,
-					"requires": {
-						"node-fetch": "2.6.7"
-					}
-				},
-				"devtools-protocol": {
-					"version": "0.0.981744",
-					"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz",
-					"integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==",
-					"dev": true,
-					"optional": true,
-					"peer": true
-				},
-				"node-fetch": {
-					"version": "2.6.7",
-					"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
-					"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
-					"dev": true,
-					"optional": true,
-					"peer": true,
-					"requires": {
-						"whatwg-url": "^5.0.0"
-					}
-				}
+				"@puppeteer/browsers": "2.10.13",
+				"chromium-bidi": "10.5.1",
+				"debug": "^4.4.3",
+				"devtools-protocol": "0.0.1521046",
+				"typed-query-selector": "^2.12.0",
+				"webdriver-bidi-protocol": "0.3.8",
+				"ws": "^8.18.3"
 			}
 		},
 		"pure-rand": {
@@ -31527,15 +31323,6 @@
 					"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
 					"dev": true
 				},
-				"debug": {
-					"version": "4.3.7",
-					"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
-					"integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
-					"dev": true,
-					"requires": {
-						"ms": "^2.1.3"
-					}
-				},
 				"file-entry-cache": {
 					"version": "9.1.0",
 					"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz",
@@ -31587,12 +31374,6 @@
 					"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
 					"dev": true
 				},
-				"ms": {
-					"version": "2.1.3",
-					"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-					"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",
@@ -31670,35 +31451,33 @@
 			}
 		},
 		"superagent": {
-			"version": "6.1.0",
-			"resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz",
-			"integrity": "sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==",
+			"version": "9.0.2",
+			"resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz",
+			"integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==",
 			"dev": true,
 			"requires": {
 				"component-emitter": "^1.3.0",
-				"cookiejar": "^2.1.2",
-				"debug": "^4.1.1",
-				"fast-safe-stringify": "^2.0.7",
-				"form-data": "^3.0.0",
-				"formidable": "^1.2.2",
+				"cookiejar": "^2.1.4",
+				"debug": "^4.3.4",
+				"fast-safe-stringify": "^2.1.1",
+				"form-data": "^4.0.0",
+				"formidable": "^3.5.1",
 				"methods": "^1.1.2",
-				"mime": "^2.4.6",
-				"qs": "^6.9.4",
-				"readable-stream": "^3.6.0",
-				"semver": "^7.3.2"
+				"mime": "2.6.0",
+				"qs": "^6.11.0"
 			},
 			"dependencies": {
 				"form-data": {
-					"version": "3.0.4",
-					"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz",
-					"integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==",
+					"version": "4.0.4",
+					"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+					"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
 					"dev": true,
 					"requires": {
 						"asynckit": "^0.4.0",
 						"combined-stream": "^1.0.8",
 						"es-set-tostringtag": "^2.1.0",
 						"hasown": "^2.0.2",
-						"mime-types": "^2.1.35"
+						"mime-types": "^2.1.12"
 					}
 				},
 				"qs": {
@@ -31713,13 +31492,13 @@
 			}
 		},
 		"supertest": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/supertest/-/supertest-5.0.0.tgz",
-			"integrity": "sha512-2JAWpPrUOZF4hHH5ZTCN2xjKXvJS3AEwPNXl0HUseHsfcXFvMy9kcsufIHCNAmQ5hlGCvgeAqaR5PBEouN3hlQ==",
+			"version": "7.1.0",
+			"resolved": "https://registry.npmjs.org/supertest/-/supertest-7.1.0.tgz",
+			"integrity": "sha512-5QeSO8hSrKghtcWEoPiO036fxH0Ii2wVQfFZSP0oqQhmjk8bOLhDFXr4JrvaFmPuEWUoq4znY3uSi8UzLKxGqw==",
 			"dev": true,
 			"requires": {
-				"methods": "1.1.2",
-				"superagent": "6.1.0"
+				"methods": "^1.1.2",
+				"superagent": "^9.0.1"
 			}
 		},
 		"supports-color": {
@@ -31815,35 +31594,6 @@
 			"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
 			"dev": true
 		},
-		"tar-fs": {
-			"version": "2.1.1",
-			"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
-			"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"requires": {
-				"chownr": "^1.1.1",
-				"mkdirp-classic": "^0.5.2",
-				"pump": "^3.0.0",
-				"tar-stream": "^2.1.4"
-			}
-		},
-		"tar-stream": {
-			"version": "2.2.0",
-			"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
-			"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"requires": {
-				"bl": "^4.0.3",
-				"end-of-stream": "^1.4.1",
-				"fs-constants": "^1.0.0",
-				"inherits": "^2.0.3",
-				"readable-stream": "^3.1.1"
-			}
-		},
 		"test-exclude": {
 			"version": "6.0.0",
 			"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
@@ -32098,6 +31848,14 @@
 				"is-typed-array": "^1.1.9"
 			}
 		},
+		"typed-query-selector": {
+			"version": "2.12.0",
+			"resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz",
+			"integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
 		"typescript": {
 			"version": "4.9.5",
 			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
@@ -32117,18 +31875,6 @@
 				"which-boxed-primitive": "^1.0.2"
 			}
 		},
-		"unbzip2-stream": {
-			"version": "1.4.3",
-			"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
-			"integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
-			"dev": true,
-			"optional": true,
-			"peer": true,
-			"requires": {
-				"buffer": "^5.2.1",
-				"through": "^2.3.8"
-			}
-		},
 		"unc-path-regex": {
 			"version": "0.1.2",
 			"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -32395,9 +32141,10 @@
 			}
 		},
 		"wdio-wikibase": {
-			"version": "git+ssh://git@github.com/wmde/wdio-wikibase.git#60dd13e91c65809708132ff6a5323f483d952337",
+			"version": "6.4.0",
+			"resolved": "https://registry.npmjs.org/wdio-wikibase/-/wdio-wikibase-6.4.0.tgz",
+			"integrity": "sha512-xYWOQHoyNOXUr/A7sXYC4fH2vE+KENCODFEHWJnESYRhGjwu8pgrZY/7qflINielbEmEVDsI6Do8eqttMj7g7w==",
 			"dev": true,
-			"from": "wdio-wikibase@6.4.0",
 			"requires": {}
 		},
 		"web-streams-polyfill": {
@@ -32440,16 +32187,17 @@
 						"agent-base": "^7.1.2",
 						"debug": "4"
 					}
-				},
-				"ws": {
-					"version": "8.18.3",
-					"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
-					"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
-					"dev": true,
-					"requires": {}
 				}
 			}
 		},
+		"webdriver-bidi-protocol": {
+			"version": "0.3.8",
+			"resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.8.tgz",
+			"integrity": "sha512-21Yi2GhGntMc671vNBCjiAeEVknXjVRoyu+k+9xOMShu+ZQfpGQwnBqbNz/Sv4GXZ6JmutlPAi2nIJcrymAWuQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
 		"webdriverio": {
 			"version": "9.20.0",
 			"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-9.20.0.tgz",
@@ -32602,12 +32350,10 @@
 			}
 		},
 		"ws": {
-			"version": "8.5.0",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
-			"integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+			"version": "8.18.3",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+			"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
 			"dev": true,
-			"optional": true,
-			"peer": true,
 			"requires": {}
 		},
 		"xml-name-validator": {
@@ -32791,6 +32537,14 @@
 					}
 				}
 			}
+		},
+		"zod": {
+			"version": "3.25.76",
+			"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+			"integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true
 		}
 	}
 }
diff --git a/package.json b/package.json
index 8c15844..66527d2 100644
--- a/package.json
+++ b/package.json
@@ -41,8 +41,8 @@
 		"@wdio/local-runner": "^9.20.0",
 		"@wdio/mocha-framework": "^9.20.0",
 		"@wdio/spec-reporter": "^9.20.0",
-		"@wikimedia/codex": "2.3.1",
-		"api-testing": "1.7.0",
+		"@wikimedia/codex": "2.3.2",
+		"api-testing": "1.7.1",
 		"apollo-boost": "^0.4.9",
 		"axe-core": "^4.10.3",
 		"cross-fetch": "^3.1.5",
-- 
2.47.3


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