mediawiki/extensions/MediaSearch: REL1_41 (log #1465521)

sourcepatches

This run took 79 seconds.

From 85545316d3c662b6314135bbba9192840438050f Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Thu, 22 Aug 2024 15:13:36 +0000
Subject: [PATCH] build: Updating npm dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* @babel/traverse: 7.18.9 → 7.25.4
  * https://github.com/advisories/GHSA-67hx-6x53-jw92
* braces: 3.0.2 → 3.0.3
  * https://github.com/advisories/GHSA-grv7-fg5c-xmjg
* postcss: 8.4.21 → 8.4.41
  * https://github.com/advisories/GHSA-7fh5-64p2-3v2j
* ws: 7.5.9 → 7.5.10
  * https://github.com/advisories/GHSA-3h5v-q93c-6h6q

Additional changes:
* Dropped default excluded folder(s) from .phpcs.xml (T274684).
* composer.json: Updated phpcs command in composer test (T280592).
* composer.json: Added phpcs command to scripts (T280592).

Change-Id: I2d223661a323c781c6819abad7afd8c6bc913e4a
---
 .phpcs.xml        |   1 -
 composer.json     |   5 +-
 package-lock.json | 499 ++++++++++++++++++++++++----------------------
 3 files changed, 266 insertions(+), 239 deletions(-)

diff --git a/.phpcs.xml b/.phpcs.xml
index 02af787..eddb6dc 100644
--- a/.phpcs.xml
+++ b/.phpcs.xml
@@ -4,5 +4,4 @@
 	<file>.</file>
 	<arg name="extensions" value="php" />
 	<arg name="encoding" value="UTF-8" />
-	<exclude-pattern>vendor</exclude-pattern>
 </ruleset>
diff --git a/composer.json b/composer.json
index 92660b7..2807546 100644
--- a/composer.json
+++ b/composer.json
@@ -13,9 +13,10 @@
 		],
 		"test": [
 			"parallel-lint . --exclude vendor --exclude node_modules",
-			"phpcs -p -s",
+			"@phpcs",
 			"minus-x check ."
 		],
-		"phan": "phan -d . --long-progress-bar"
+		"phan": "phan -d . --long-progress-bar",
+		"phpcs": "phpcs -sp --cache"
 	}
 }
diff --git a/package-lock.json b/package-lock.json
index c37667c..2f3707c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -43,12 +43,13 @@
 			}
 		},
 		"node_modules/@babel/code-frame": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
-			"integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+			"version": "7.24.7",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
+			"integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
 			"dev": true,
 			"dependencies": {
-				"@babel/highlight": "^7.18.6"
+				"@babel/highlight": "^7.24.7",
+				"picocolors": "^1.0.0"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -94,13 +95,14 @@
 			}
 		},
 		"node_modules/@babel/generator": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz",
-			"integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.4.tgz",
+			"integrity": "sha512-NFtZmZsyzDPJnk9Zg3BbTfKKc9UlHYzD0E//p2Z3B9nCwwtJW9T0gVbCz8+fBngnn4zf1Dr3IK8PHQQHq0lDQw==",
 			"dev": true,
 			"dependencies": {
-				"@babel/types": "^7.18.9",
-				"@jridgewell/gen-mapping": "^0.3.2",
+				"@babel/types": "^7.25.4",
+				"@jridgewell/gen-mapping": "^0.3.5",
+				"@jridgewell/trace-mapping": "^0.3.25",
 				"jsesc": "^2.5.1"
 			},
 			"engines": {
@@ -108,14 +110,14 @@
 			}
 		},
 		"node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
-			"version": "0.3.2",
-			"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
-			"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+			"version": "0.3.5",
+			"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+			"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
 			"dev": true,
 			"dependencies": {
-				"@jridgewell/set-array": "^1.0.1",
+				"@jridgewell/set-array": "^1.2.1",
 				"@jridgewell/sourcemap-codec": "^1.4.10",
-				"@jridgewell/trace-mapping": "^0.3.9"
+				"@jridgewell/trace-mapping": "^0.3.24"
 			},
 			"engines": {
 				"node": ">=6.0.0"
@@ -398,10 +400,19 @@
 				"node": ">=6.9.0"
 			}
 		},
+		"node_modules/@babel/helper-string-parser": {
+			"version": "7.24.8",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
+			"integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=6.9.0"
+			}
+		},
 		"node_modules/@babel/helper-validator-identifier": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
-			"integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
+			"version": "7.24.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+			"integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
@@ -446,24 +457,28 @@
 			}
 		},
 		"node_modules/@babel/highlight": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
-			"integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+			"version": "7.24.7",
+			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
+			"integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-validator-identifier": "^7.18.6",
-				"chalk": "^2.0.0",
-				"js-tokens": "^4.0.0"
+				"@babel/helper-validator-identifier": "^7.24.7",
+				"chalk": "^2.4.2",
+				"js-tokens": "^4.0.0",
+				"picocolors": "^1.0.0"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/parser": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
-			"integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.4.tgz",
+			"integrity": "sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==",
 			"dev": true,
+			"dependencies": {
+				"@babel/types": "^7.25.4"
+			},
 			"bin": {
 				"parser": "bin/babel-parser.js"
 			},
@@ -1615,34 +1630,31 @@
 			"dev": true
 		},
 		"node_modules/@babel/template": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz",
-			"integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==",
+			"version": "7.25.0",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
+			"integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.18.6",
-				"@babel/parser": "^7.18.6",
-				"@babel/types": "^7.18.6"
+				"@babel/code-frame": "^7.24.7",
+				"@babel/parser": "^7.25.0",
+				"@babel/types": "^7.25.0"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/traverse": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz",
-			"integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.4.tgz",
+			"integrity": "sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.18.6",
-				"@babel/generator": "^7.18.9",
-				"@babel/helper-environment-visitor": "^7.18.9",
-				"@babel/helper-function-name": "^7.18.9",
-				"@babel/helper-hoist-variables": "^7.18.6",
-				"@babel/helper-split-export-declaration": "^7.18.6",
-				"@babel/parser": "^7.18.9",
-				"@babel/types": "^7.18.9",
-				"debug": "^4.1.0",
+				"@babel/code-frame": "^7.24.7",
+				"@babel/generator": "^7.25.4",
+				"@babel/parser": "^7.25.4",
+				"@babel/template": "^7.25.0",
+				"@babel/types": "^7.25.4",
+				"debug": "^4.3.1",
 				"globals": "^11.1.0"
 			},
 			"engines": {
@@ -1650,12 +1662,13 @@
 			}
 		},
 		"node_modules/@babel/types": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz",
-			"integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.4.tgz",
+			"integrity": "sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-validator-identifier": "^7.18.6",
+				"@babel/helper-string-parser": "^7.24.8",
+				"@babel/helper-validator-identifier": "^7.24.7",
 				"to-fast-properties": "^2.0.0"
 			},
 			"engines": {
@@ -2507,9 +2520,9 @@
 			}
 		},
 		"node_modules/@jridgewell/set-array": {
-			"version": "1.1.2",
-			"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
-			"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+			"version": "1.2.1",
+			"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+			"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.0.0"
@@ -2522,13 +2535,13 @@
 			"dev": true
 		},
 		"node_modules/@jridgewell/trace-mapping": {
-			"version": "0.3.14",
-			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
-			"integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
+			"version": "0.3.25",
+			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+			"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
 			"dev": true,
 			"dependencies": {
-				"@jridgewell/resolve-uri": "^3.0.3",
-				"@jridgewell/sourcemap-codec": "^1.4.10"
+				"@jridgewell/resolve-uri": "^3.1.0",
+				"@jridgewell/sourcemap-codec": "^1.4.14"
 			}
 		},
 		"node_modules/@mdn/browser-compat-data": {
@@ -2755,13 +2768,13 @@
 			"dev": true
 		},
 		"node_modules/@typescript-eslint/scope-manager": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.11.tgz",
-			"integrity": "sha512-dHFOsxoLFtrIcSj5h0QoBT/89hxQONwmn3FOQ0GOQcLOOXm+MIrS8zEAhs4tWl5MraxCY3ZJpaXQQdFMc2Tu+Q==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+			"integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
 			"dev": true,
 			"dependencies": {
-				"@typescript-eslint/types": "5.59.11",
-				"@typescript-eslint/visitor-keys": "5.59.11"
+				"@typescript-eslint/types": "5.62.0",
+				"@typescript-eslint/visitor-keys": "5.62.0"
 			},
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -2772,9 +2785,9 @@
 			}
 		},
 		"node_modules/@typescript-eslint/types": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.11.tgz",
-			"integrity": "sha512-epoN6R6tkvBYSc+cllrz+c2sOFWkbisJZWkOE+y3xHtvYaOE6Wk6B8e114McRJwFRjGvYdJwLXQH5c9osME/AA==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+			"integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
 			"dev": true,
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -2785,13 +2798,13 @@
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.11.tgz",
-			"integrity": "sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+			"integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
 			"dev": true,
 			"dependencies": {
-				"@typescript-eslint/types": "5.59.11",
-				"@typescript-eslint/visitor-keys": "5.59.11",
+				"@typescript-eslint/types": "5.62.0",
+				"@typescript-eslint/visitor-keys": "5.62.0",
 				"debug": "^4.3.4",
 				"globby": "^11.1.0",
 				"is-glob": "^4.0.3",
@@ -2812,13 +2825,10 @@
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
-			"version": "7.5.2",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
-			"integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
+			"version": "7.6.3",
+			"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+			"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
 			"dev": true,
-			"dependencies": {
-				"lru-cache": "^6.0.0"
-			},
 			"bin": {
 				"semver": "bin/semver.js"
 			},
@@ -2827,17 +2837,17 @@
 			}
 		},
 		"node_modules/@typescript-eslint/utils": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.11.tgz",
-			"integrity": "sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+			"integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
 			"dev": true,
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.2.0",
 				"@types/json-schema": "^7.0.9",
 				"@types/semver": "^7.3.12",
-				"@typescript-eslint/scope-manager": "5.59.11",
-				"@typescript-eslint/types": "5.59.11",
-				"@typescript-eslint/typescript-estree": "5.59.11",
+				"@typescript-eslint/scope-manager": "5.62.0",
+				"@typescript-eslint/types": "5.62.0",
+				"@typescript-eslint/typescript-estree": "5.62.0",
 				"eslint-scope": "^5.1.1",
 				"semver": "^7.3.7"
 			},
@@ -2890,12 +2900,12 @@
 			}
 		},
 		"node_modules/@typescript-eslint/visitor-keys": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.11.tgz",
-			"integrity": "sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+			"integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
 			"dev": true,
 			"dependencies": {
-				"@typescript-eslint/types": "5.59.11",
+				"@typescript-eslint/types": "5.62.0",
 				"eslint-visitor-keys": "^3.3.0"
 			},
 			"engines": {
@@ -3868,12 +3878,12 @@
 			}
 		},
 		"node_modules/braces": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-			"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+			"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
 			"dev": true,
 			"dependencies": {
-				"fill-range": "^7.0.1"
+				"fill-range": "^7.1.1"
 			},
 			"engines": {
 				"node": ">=8"
@@ -5702,9 +5712,9 @@
 			"dev": true
 		},
 		"node_modules/fast-glob": {
-			"version": "3.2.12",
-			"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
-			"integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+			"version": "3.3.2",
+			"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+			"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
 			"dev": true,
 			"dependencies": {
 				"@nodelib/fs.stat": "^2.0.2",
@@ -5781,9 +5791,9 @@
 			}
 		},
 		"node_modules/fill-range": {
-			"version": "7.0.1",
-			"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-			"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+			"version": "7.1.1",
+			"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+			"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
 			"dev": true,
 			"dependencies": {
 				"to-regex-range": "^5.0.1"
@@ -9376,12 +9386,12 @@
 			}
 		},
 		"node_modules/micromatch": {
-			"version": "4.0.5",
-			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
-			"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+			"version": "4.0.7",
+			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
+			"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
 			"dev": true,
 			"dependencies": {
-				"braces": "^3.0.2",
+				"braces": "^3.0.3",
 				"picomatch": "^2.3.1"
 			},
 			"engines": {
@@ -9506,10 +9516,16 @@
 			}
 		},
 		"node_modules/nanoid": {
-			"version": "3.3.4",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
-			"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+			"version": "3.3.7",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+			"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/ai"
+				}
+			],
 			"bin": {
 				"nanoid": "bin/nanoid.cjs"
 			},
@@ -9902,9 +9918,9 @@
 			}
 		},
 		"node_modules/picocolors": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-			"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
+			"integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
 			"dev": true
 		},
 		"node_modules/picomatch": {
@@ -9950,9 +9966,9 @@
 			}
 		},
 		"node_modules/postcss": {
-			"version": "8.4.21",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
-			"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+			"version": "8.4.41",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz",
+			"integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
 			"dev": true,
 			"funding": [
 				{
@@ -9962,12 +9978,16 @@
 				{
 					"type": "tidelift",
 					"url": "https://tidelift.com/funding/github/npm/postcss"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/ai"
 				}
 			],
 			"dependencies": {
-				"nanoid": "^3.3.4",
-				"picocolors": "^1.0.0",
-				"source-map-js": "^1.0.2"
+				"nanoid": "^3.3.7",
+				"picocolors": "^1.0.1",
+				"source-map-js": "^1.2.0"
 			},
 			"engines": {
 				"node": "^10 || ^12 || >=14"
@@ -10703,9 +10723,9 @@
 			}
 		},
 		"node_modules/source-map-js": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
-			"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+			"version": "1.2.0",
+			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+			"integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
 			"dev": true,
 			"engines": {
 				"node": ">=0.10.0"
@@ -11873,9 +11893,9 @@
 			}
 		},
 		"node_modules/ws": {
-			"version": "7.5.9",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
-			"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+			"version": "7.5.10",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+			"integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
 			"dev": true,
 			"engines": {
 				"node": ">=8.3.0"
@@ -12004,12 +12024,13 @@
 			}
 		},
 		"@babel/code-frame": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
-			"integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+			"version": "7.24.7",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
+			"integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
 			"dev": true,
 			"requires": {
-				"@babel/highlight": "^7.18.6"
+				"@babel/highlight": "^7.24.7",
+				"picocolors": "^1.0.0"
 			}
 		},
 		"@babel/compat-data": {
@@ -12042,25 +12063,26 @@
 			}
 		},
 		"@babel/generator": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz",
-			"integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.4.tgz",
+			"integrity": "sha512-NFtZmZsyzDPJnk9Zg3BbTfKKc9UlHYzD0E//p2Z3B9nCwwtJW9T0gVbCz8+fBngnn4zf1Dr3IK8PHQQHq0lDQw==",
 			"dev": true,
 			"requires": {
-				"@babel/types": "^7.18.9",
-				"@jridgewell/gen-mapping": "^0.3.2",
+				"@babel/types": "^7.25.4",
+				"@jridgewell/gen-mapping": "^0.3.5",
+				"@jridgewell/trace-mapping": "^0.3.25",
 				"jsesc": "^2.5.1"
 			},
 			"dependencies": {
 				"@jridgewell/gen-mapping": {
-					"version": "0.3.2",
-					"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
-					"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+					"version": "0.3.5",
+					"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+					"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
 					"dev": true,
 					"requires": {
-						"@jridgewell/set-array": "^1.0.1",
+						"@jridgewell/set-array": "^1.2.1",
 						"@jridgewell/sourcemap-codec": "^1.4.10",
-						"@jridgewell/trace-mapping": "^0.3.9"
+						"@jridgewell/trace-mapping": "^0.3.24"
 					}
 				}
 			}
@@ -12270,10 +12292,16 @@
 				"@babel/types": "^7.18.6"
 			}
 		},
+		"@babel/helper-string-parser": {
+			"version": "7.24.8",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
+			"integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
+			"dev": true
+		},
 		"@babel/helper-validator-identifier": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
-			"integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
+			"version": "7.24.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+			"integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
 			"dev": true
 		},
 		"@babel/helper-validator-option": {
@@ -12306,21 +12334,25 @@
 			}
 		},
 		"@babel/highlight": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
-			"integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+			"version": "7.24.7",
+			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
+			"integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
 			"dev": true,
 			"requires": {
-				"@babel/helper-validator-identifier": "^7.18.6",
-				"chalk": "^2.0.0",
-				"js-tokens": "^4.0.0"
+				"@babel/helper-validator-identifier": "^7.24.7",
+				"chalk": "^2.4.2",
+				"js-tokens": "^4.0.0",
+				"picocolors": "^1.0.0"
 			}
 		},
 		"@babel/parser": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
-			"integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==",
-			"dev": true
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.4.tgz",
+			"integrity": "sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==",
+			"dev": true,
+			"requires": {
+				"@babel/types": "^7.25.4"
+			}
 		},
 		"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
 			"version": "7.18.6",
@@ -13093,41 +13125,39 @@
 			}
 		},
 		"@babel/template": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz",
-			"integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==",
+			"version": "7.25.0",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
+			"integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
 			"dev": true,
 			"requires": {
-				"@babel/code-frame": "^7.18.6",
-				"@babel/parser": "^7.18.6",
-				"@babel/types": "^7.18.6"
+				"@babel/code-frame": "^7.24.7",
+				"@babel/parser": "^7.25.0",
+				"@babel/types": "^7.25.0"
 			}
 		},
 		"@babel/traverse": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz",
-			"integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.4.tgz",
+			"integrity": "sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==",
 			"dev": true,
 			"requires": {
-				"@babel/code-frame": "^7.18.6",
-				"@babel/generator": "^7.18.9",
-				"@babel/helper-environment-visitor": "^7.18.9",
-				"@babel/helper-function-name": "^7.18.9",
-				"@babel/helper-hoist-variables": "^7.18.6",
-				"@babel/helper-split-export-declaration": "^7.18.6",
-				"@babel/parser": "^7.18.9",
-				"@babel/types": "^7.18.9",
-				"debug": "^4.1.0",
+				"@babel/code-frame": "^7.24.7",
+				"@babel/generator": "^7.25.4",
+				"@babel/parser": "^7.25.4",
+				"@babel/template": "^7.25.0",
+				"@babel/types": "^7.25.4",
+				"debug": "^4.3.1",
 				"globals": "^11.1.0"
 			}
 		},
 		"@babel/types": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz",
-			"integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.4.tgz",
+			"integrity": "sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==",
 			"dev": true,
 			"requires": {
-				"@babel/helper-validator-identifier": "^7.18.6",
+				"@babel/helper-string-parser": "^7.24.8",
+				"@babel/helper-validator-identifier": "^7.24.7",
 				"to-fast-properties": "^2.0.0"
 			}
 		},
@@ -13754,9 +13784,9 @@
 			"dev": true
 		},
 		"@jridgewell/set-array": {
-			"version": "1.1.2",
-			"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
-			"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+			"version": "1.2.1",
+			"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+			"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
 			"dev": true
 		},
 		"@jridgewell/sourcemap-codec": {
@@ -13766,13 +13796,13 @@
 			"dev": true
 		},
 		"@jridgewell/trace-mapping": {
-			"version": "0.3.14",
-			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
-			"integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
+			"version": "0.3.25",
+			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+			"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
 			"dev": true,
 			"requires": {
-				"@jridgewell/resolve-uri": "^3.0.3",
-				"@jridgewell/sourcemap-codec": "^1.4.10"
+				"@jridgewell/resolve-uri": "^3.1.0",
+				"@jridgewell/sourcemap-codec": "^1.4.14"
 			}
 		},
 		"@mdn/browser-compat-data": {
@@ -13987,29 +14017,29 @@
 			"dev": true
 		},
 		"@typescript-eslint/scope-manager": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.11.tgz",
-			"integrity": "sha512-dHFOsxoLFtrIcSj5h0QoBT/89hxQONwmn3FOQ0GOQcLOOXm+MIrS8zEAhs4tWl5MraxCY3ZJpaXQQdFMc2Tu+Q==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+			"integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
 			"dev": true,
 			"requires": {
-				"@typescript-eslint/types": "5.59.11",
-				"@typescript-eslint/visitor-keys": "5.59.11"
+				"@typescript-eslint/types": "5.62.0",
+				"@typescript-eslint/visitor-keys": "5.62.0"
 			}
 		},
 		"@typescript-eslint/types": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.11.tgz",
-			"integrity": "sha512-epoN6R6tkvBYSc+cllrz+c2sOFWkbisJZWkOE+y3xHtvYaOE6Wk6B8e114McRJwFRjGvYdJwLXQH5c9osME/AA==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+			"integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
 			"dev": true
 		},
 		"@typescript-eslint/typescript-estree": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.11.tgz",
-			"integrity": "sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+			"integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
 			"dev": true,
 			"requires": {
-				"@typescript-eslint/types": "5.59.11",
-				"@typescript-eslint/visitor-keys": "5.59.11",
+				"@typescript-eslint/types": "5.62.0",
+				"@typescript-eslint/visitor-keys": "5.62.0",
 				"debug": "^4.3.4",
 				"globby": "^11.1.0",
 				"is-glob": "^4.0.3",
@@ -14018,28 +14048,25 @@
 			},
 			"dependencies": {
 				"semver": {
-					"version": "7.5.2",
-					"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
-					"integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
-					"dev": true,
-					"requires": {
-						"lru-cache": "^6.0.0"
-					}
+					"version": "7.6.3",
+					"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+					"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+					"dev": true
 				}
 			}
 		},
 		"@typescript-eslint/utils": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.11.tgz",
-			"integrity": "sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+			"integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
 			"dev": true,
 			"requires": {
 				"@eslint-community/eslint-utils": "^4.2.0",
 				"@types/json-schema": "^7.0.9",
 				"@types/semver": "^7.3.12",
-				"@typescript-eslint/scope-manager": "5.59.11",
-				"@typescript-eslint/types": "5.59.11",
-				"@typescript-eslint/typescript-estree": "5.59.11",
+				"@typescript-eslint/scope-manager": "5.62.0",
+				"@typescript-eslint/types": "5.62.0",
+				"@typescript-eslint/typescript-estree": "5.62.0",
 				"eslint-scope": "^5.1.1",
 				"semver": "^7.3.7"
 			},
@@ -14072,12 +14099,12 @@
 			}
 		},
 		"@typescript-eslint/visitor-keys": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.11.tgz",
-			"integrity": "sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+			"integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
 			"dev": true,
 			"requires": {
-				"@typescript-eslint/types": "5.59.11",
+				"@typescript-eslint/types": "5.62.0",
 				"eslint-visitor-keys": "^3.3.0"
 			}
 		},
@@ -14872,12 +14899,12 @@
 			}
 		},
 		"braces": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-			"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+			"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
 			"dev": true,
 			"requires": {
-				"fill-range": "^7.0.1"
+				"fill-range": "^7.1.1"
 			}
 		},
 		"browser-process-hrtime": {
@@ -16204,9 +16231,9 @@
 			"dev": true
 		},
 		"fast-glob": {
-			"version": "3.2.12",
-			"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
-			"integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+			"version": "3.3.2",
+			"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+			"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
 			"dev": true,
 			"requires": {
 				"@nodelib/fs.stat": "^2.0.2",
@@ -16273,9 +16300,9 @@
 			}
 		},
 		"fill-range": {
-			"version": "7.0.1",
-			"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-			"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+			"version": "7.1.1",
+			"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+			"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
 			"dev": true,
 			"requires": {
 				"to-regex-range": "^5.0.1"
@@ -18964,12 +18991,12 @@
 			"dev": true
 		},
 		"micromatch": {
-			"version": "4.0.5",
-			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
-			"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+			"version": "4.0.7",
+			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
+			"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
 			"dev": true,
 			"requires": {
-				"braces": "^3.0.2",
+				"braces": "^3.0.3",
 				"picomatch": "^2.3.1"
 			}
 		},
@@ -19063,9 +19090,9 @@
 			}
 		},
 		"nanoid": {
-			"version": "3.3.4",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
-			"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+			"version": "3.3.7",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+			"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
 			"dev": true
 		},
 		"natural-compare": {
@@ -19362,9 +19389,9 @@
 			"dev": true
 		},
 		"picocolors": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-			"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
+			"integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
 			"dev": true
 		},
 		"picomatch": {
@@ -19395,14 +19422,14 @@
 			"dev": true
 		},
 		"postcss": {
-			"version": "8.4.21",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
-			"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+			"version": "8.4.41",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz",
+			"integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
 			"dev": true,
 			"requires": {
-				"nanoid": "^3.3.4",
-				"picocolors": "^1.0.0",
-				"source-map-js": "^1.0.2"
+				"nanoid": "^3.3.7",
+				"picocolors": "^1.0.1",
+				"source-map-js": "^1.2.0"
 			}
 		},
 		"postcss-html": {
@@ -19952,9 +19979,9 @@
 			"dev": true
 		},
 		"source-map-js": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
-			"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+			"version": "1.2.0",
+			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+			"integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
 			"dev": true
 		},
 		"source-map-resolve": {
@@ -20874,9 +20901,9 @@
 			}
 		},
 		"ws": {
-			"version": "7.5.9",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
-			"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+			"version": "7.5.10",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+			"integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
 			"dev": true,
 			"requires": {}
 		},
-- 
2.39.2

$ date
--- stdout ---
Thu Aug 22 15:12:22 UTC 2024

--- end ---
$ git clone file:///srv/git/mediawiki-extensions-MediaSearch.git repo --depth=1 -b REL1_41
--- 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
--- stdout ---

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

--- end ---
$ git show-ref refs/heads/REL1_41
--- stdout ---
aadbce956d0f23a04ded05024807c6ae0e9ffbaa refs/heads/REL1_41

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@babel/traverse": {
      "name": "@babel/traverse",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096886,
          "name": "@babel/traverse",
          "dependency": "@babel/traverse",
          "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
          "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
          "severity": "critical",
          "cwe": [
            "CWE-184",
            "CWE-697"
          ],
          "cvss": {
            "score": 9.4,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
          },
          "range": "<7.23.2"
        }
      ],
      "effects": [],
      "range": "<7.23.2",
      "nodes": [
        "node_modules/@babel/traverse"
      ],
      "fixAvailable": true
    },
    "@jest/console": {
      "name": "@jest/console",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-message-util"
      ],
      "effects": [
        "@jest/core",
        "@jest/reporters",
        "@jest/test-result",
        "jest-runner"
      ],
      "range": ">=25.4.0",
      "nodes": [
        "node_modules/@jest/console"
      ],
      "fixAvailable": false
    },
    "@jest/core": {
      "name": "@jest/core",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/console",
        "@jest/reporters",
        "@jest/test-result",
        "@jest/transform",
        "jest-config",
        "jest-haste-map",
        "jest-message-util",
        "jest-resolve",
        "jest-resolve-dependencies",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot",
        "jest-watcher",
        "micromatch"
      ],
      "effects": [
        "jest",
        "jest-cli"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/core"
      ],
      "fixAvailable": false
    },
    "@jest/environment": {
      "name": "@jest/environment",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/fake-timers"
      ],
      "effects": [
        "@jest/globals",
        "jest-circus",
        "jest-environment-jsdom",
        "jest-runner"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/environment"
      ],
      "fixAvailable": false
    },
    "@jest/fake-timers": {
      "name": "@jest/fake-timers",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-message-util"
      ],
      "effects": [
        "@jest/environment",
        "jest-environment-jsdom",
        "jest-environment-node",
        "jest-runtime"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/fake-timers"
      ],
      "fixAvailable": false
    },
    "@jest/globals": {
      "name": "@jest/globals",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/environment",
        "expect"
      ],
      "effects": [
        "jest-runtime"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/globals"
      ],
      "fixAvailable": false
    },
    "@jest/reporters": {
      "name": "@jest/reporters",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/console",
        "@jest/test-result",
        "@jest/transform",
        "jest-haste-map",
        "jest-resolve"
      ],
      "effects": [
        "@jest/core"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/reporters"
      ],
      "fixAvailable": false
    },
    "@jest/test-result": {
      "name": "@jest/test-result",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/console"
      ],
      "effects": [
        "@jest/test-sequencer",
        "jest-circus",
        "jest-cli",
        "jest-jasmine2",
        "jest-runtime",
        "jest-watcher"
      ],
      "range": ">=25.4.0",
      "nodes": [
        "node_modules/@jest/test-result"
      ],
      "fixAvailable": false
    },
    "@jest/test-sequencer": {
      "name": "@jest/test-sequencer",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/test-result",
        "jest-haste-map",
        "jest-runtime"
      ],
      "effects": [
        "jest-config"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/test-sequencer"
      ],
      "fixAvailable": false
    },
    "@jest/transform": {
      "name": "@jest/transform",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-haste-map",
        "micromatch"
      ],
      "effects": [
        "@jest/reporters",
        "babel-jest",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/transform"
      ],
      "fixAvailable": false
    },
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "globby"
      ],
      "effects": [
        "@typescript-eslint/utils"
      ],
      "range": ">=3.10.2-alpha.0",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree"
      ],
      "fixAvailable": {
        "name": "eslint-plugin-jest",
        "version": "25.7.0",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/utils": {
      "name": "@typescript-eslint/utils",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree"
      ],
      "effects": [
        "eslint-plugin-jest"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": {
        "name": "eslint-plugin-jest",
        "version": "25.7.0",
        "isSemVerMajor": true
      }
    },
    "@vue/vue3-jest": {
      "name": "@vue/vue3-jest",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "babel-jest",
        "jest"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@vue/vue3-jest"
      ],
      "fixAvailable": false
    },
    "babel-core": {
      "name": "babel-core",
      "severity": "critical",
      "isDirect": true,
      "via": [
        "babel-helpers",
        "babel-register",
        "babel-template",
        "babel-traverse",
        "json5"
      ],
      "effects": [
        "babel-register"
      ],
      "range": "5.8.20 - 7.0.0-beta.3",
      "nodes": [
        "node_modules/babel-core"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "babel-helpers": {
      "name": "babel-helpers",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "babel-template"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/babel-helpers"
      ],
      "fixAvailable": true
    },
    "babel-jest": {
      "name": "babel-jest",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/transform"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=24.2.0-alpha.0",
      "nodes": [
        "node_modules/babel-jest"
      ],
      "fixAvailable": false
    },
    "babel-register": {
      "name": "babel-register",
      "severity": "high",
      "isDirect": false,
      "via": [
        "babel-core"
      ],
      "effects": [
        "babel-core"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-register"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "babel-template": {
      "name": "babel-template",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "babel-traverse"
      ],
      "effects": [
        "babel-helpers"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-template"
      ],
      "fixAvailable": true
    },
    "babel-traverse": {
      "name": "babel-traverse",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096879,
          "name": "babel-traverse",
          "dependency": "babel-traverse",
          "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
          "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
          "severity": "critical",
          "cwe": [
            "CWE-184",
            "CWE-697"
          ],
          "cvss": {
            "score": 9.4,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
          },
          "range": "<7.23.2"
        }
      ],
      "effects": [
        "babel-core",
        "babel-template"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-traverse"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "braces": {
      "name": "braces",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1098094,
          "name": "braces",
          "dependency": "braces",
          "title": "Uncontrolled resource consumption in braces",
          "url": "https://github.com/advisories/GHSA-grv7-fg5c-xmjg",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-1050"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.0.3"
        }
      ],
      "effects": [],
      "range": "<3.0.3",
      "nodes": [
        "node_modules/braces"
      ],
      "fixAvailable": true
    },
    "eslint-plugin-jest": {
      "name": "eslint-plugin-jest",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "@typescript-eslint/utils"
      ],
      "effects": [],
      "range": ">=26.0.0",
      "nodes": [
        "node_modules/eslint-plugin-jest"
      ],
      "fixAvailable": {
        "name": "eslint-plugin-jest",
        "version": "25.7.0",
        "isSemVerMajor": true
      }
    },
    "expect": {
      "name": "expect",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-message-util"
      ],
      "effects": [
        "@jest/globals",
        "jest-circus",
        "jest-jasmine2",
        "jest-snapshot"
      ],
      "range": ">=21.0.0-beta.1",
      "nodes": [
        "node_modules/expect"
      ],
      "fixAvailable": false
    },
    "fast-glob": {
      "name": "fast-glob",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "micromatch"
      ],
      "effects": [
        "globby",
        "stylelint"
      ],
      "range": "*",
      "nodes": [
        "node_modules/fast-glob"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.3.0",
        "isSemVerMajor": true
      }
    },
    "findup-sync": {
      "name": "findup-sync",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "micromatch"
      ],
      "effects": [
        "grunt",
        "liftup"
      ],
      "range": ">=0.4.0",
      "nodes": [
        "node_modules/findup-sync",
        "node_modules/liftup/node_modules/findup-sync"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "1.5.3",
        "isSemVerMajor": true
      }
    },
    "globby": {
      "name": "globby",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "fast-glob"
      ],
      "effects": [
        "@typescript-eslint/typescript-estree",
        "stylelint"
      ],
      "range": ">=8.0.0",
      "nodes": [
        "node_modules/globby"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.3.0",
        "isSemVerMajor": true
      }
    },
    "grunt": {
      "name": "grunt",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "findup-sync",
        "grunt-cli"
      ],
      "effects": [],
      "range": ">=1.4.0",
      "nodes": [
        "node_modules/grunt"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "1.5.3",
        "isSemVerMajor": true
      }
    },
    "grunt-cli": {
      "name": "grunt-cli",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "liftup"
      ],
      "effects": [
        "grunt"
      ],
      "range": ">=1.4.0",
      "nodes": [
        "node_modules/grunt-cli"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "1.5.3",
        "isSemVerMajor": true
      }
    },
    "grunt-stylelint": {
      "name": "grunt-stylelint",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "stylelint"
      ],
      "effects": [],
      "range": ">=0.7.0",
      "nodes": [
        "node_modules/grunt-stylelint"
      ],
      "fixAvailable": {
        "name": "grunt-stylelint",
        "version": "0.6.0",
        "isSemVerMajor": true
      }
    },
    "jest": {
      "name": "jest",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "@jest/core",
        "jest-cli"
      ],
      "effects": [
        "@vue/vue3-jest"
      ],
      "range": ">=24.2.0-alpha.0",
      "nodes": [
        "node_modules/jest"
      ],
      "fixAvailable": false
    },
    "jest-circus": {
      "name": "jest-circus",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/environment",
        "@jest/test-result",
        "expect",
        "jest-message-util",
        "jest-runtime",
        "jest-snapshot"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=20.1.0-alpha.1",
      "nodes": [
        "node_modules/jest-circus"
      ],
      "fixAvailable": false
    },
    "jest-cli": {
      "name": "jest-cli",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/core",
        "@jest/test-result",
        "jest-config"
      ],
      "effects": [
        "jest"
      ],
      "range": ">=23.5.0",
      "nodes": [
        "node_modules/jest-cli"
      ],
      "fixAvailable": false
    },
    "jest-config": {
      "name": "jest-config",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/test-sequencer",
        "babel-jest",
        "jest-circus",
        "jest-environment-jsdom",
        "jest-environment-node",
        "jest-jasmine2",
        "jest-resolve",
        "jest-runner",
        "micromatch"
      ],
      "effects": [
        "jest-cli"
      ],
      "range": ">=18.1.0",
      "nodes": [
        "node_modules/jest-config"
      ],
      "fixAvailable": false
    },
    "jest-environment-jsdom": {
      "name": "jest-environment-jsdom",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/environment",
        "@jest/fake-timers"
      ],
      "effects": [
        "jest-config",
        "jest-runner"
      ],
      "range": ">=24.2.0-alpha.0",
      "nodes": [
        "node_modules/jest-environment-jsdom"
      ],
      "fixAvailable": false
    },
    "jest-environment-node": {
      "name": "jest-environment-node",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/environment",
        "@jest/fake-timers"
      ],
      "effects": [
        "jest-runner"
      ],
      "range": ">=24.2.0-alpha.0",
      "nodes": [
        "node_modules/jest-environment-node"
      ],
      "fixAvailable": false
    },
    "jest-haste-map": {
      "name": "jest-haste-map",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "micromatch"
      ],
      "effects": [
        "@jest/reporters",
        "@jest/test-sequencer",
        "jest-resolve",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot"
      ],
      "range": ">=18.1.0",
      "nodes": [
        "node_modules/jest-haste-map"
      ],
      "fixAvailable": false
    },
    "jest-jasmine2": {
      "name": "jest-jasmine2",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/environment",
        "@jest/test-result",
        "expect",
        "jest-message-util",
        "jest-runtime",
        "jest-snapshot"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=18.5.0-alpha.7da3df39",
      "nodes": [
        "node_modules/jest-jasmine2"
      ],
      "fixAvailable": false
    },
    "jest-message-util": {
      "name": "jest-message-util",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "micromatch"
      ],
      "effects": [
        "@jest/console",
        "@jest/fake-timers",
        "expect",
        "jest-circus",
        "jest-jasmine2",
        "jest-runtime",
        "jest-snapshot"
      ],
      "range": ">=18.5.0-alpha.7da3df39",
      "nodes": [
        "node_modules/jest-message-util"
      ],
      "fixAvailable": false
    },
    "jest-resolve": {
      "name": "jest-resolve",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-haste-map"
      ],
      "effects": [
        "@jest/core",
        "@jest/reporters",
        "jest-config",
        "jest-runner",
        "jest-runtime"
      ],
      "range": "18.1.0 - 19.0.2 || 24.2.0-alpha.0 - 24.5.0 || >=27.1.0",
      "nodes": [
        "node_modules/jest-resolve"
      ],
      "fixAvailable": false
    },
    "jest-resolve-dependencies": {
      "name": "jest-resolve-dependencies",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-snapshot"
      ],
      "effects": [],
      "range": "26.1.0 - 28.1.3",
      "nodes": [
        "node_modules/jest-resolve-dependencies"
      ],
      "fixAvailable": true
    },
    "jest-runner": {
      "name": "jest-runner",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/console",
        "@jest/environment",
        "@jest/test-result",
        "@jest/transform",
        "jest-environment-jsdom",
        "jest-environment-node",
        "jest-haste-map",
        "jest-message-util",
        "jest-resolve",
        "jest-runtime"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=21.0.0-alpha.1",
      "nodes": [
        "node_modules/jest-runner"
      ],
      "fixAvailable": false
    },
    "jest-runtime": {
      "name": "jest-runtime",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/environment",
        "@jest/fake-timers",
        "@jest/globals",
        "@jest/test-result",
        "@jest/transform",
        "jest-haste-map",
        "jest-message-util",
        "jest-resolve",
        "jest-snapshot"
      ],
      "effects": [
        "@jest/test-sequencer",
        "jest-circus",
        "jest-jasmine2"
      ],
      "range": ">=18.1.0",
      "nodes": [
        "node_modules/jest-runtime"
      ],
      "fixAvailable": false
    },
    "jest-snapshot": {
      "name": "jest-snapshot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/transform",
        "expect",
        "jest-haste-map",
        "jest-message-util"
      ],
      "effects": [
        "@jest/core",
        "jest-circus",
        "jest-jasmine2",
        "jest-resolve-dependencies",
        "jest-runtime"
      ],
      "range": ">=23.3.0",
      "nodes": [
        "node_modules/jest-snapshot"
      ],
      "fixAvailable": false
    },
    "jest-watcher": {
      "name": "jest-watcher",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/test-result"
      ],
      "effects": [],
      "range": ">=25.4.0",
      "nodes": [
        "node_modules/jest-watcher"
      ],
      "fixAvailable": true
    },
    "json5": {
      "name": "json5",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1096543,
          "name": "json5",
          "dependency": "json5",
          "title": "Prototype Pollution in JSON5 via Parse Method",
          "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h",
          "severity": "high",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 7.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"
          },
          "range": "<1.0.2"
        }
      ],
      "effects": [
        "babel-core"
      ],
      "range": "<1.0.2",
      "nodes": [
        "node_modules/babel-core/node_modules/json5"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "liftup": {
      "name": "liftup",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "findup-sync"
      ],
      "effects": [
        "grunt-cli"
      ],
      "range": "*",
      "nodes": [
        "node_modules/liftup"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "1.5.3",
        "isSemVerMajor": true
      }
    },
    "micromatch": {
      "name": "micromatch",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1098615,
          "name": "micromatch",
          "dependency": "micromatch",
          "title": "Regular Expression Denial of Service (ReDoS) in micromatch",
          "url": "https://github.com/advisories/GHSA-952p-6rrq-rcjv",
          "severity": "moderate",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<=4.0.7"
        }
      ],
      "effects": [
        "@jest/core",
        "@jest/transform",
        "fast-glob",
        "findup-sync",
        "jest-config",
        "jest-haste-map",
        "jest-message-util",
        "stylelint"
      ],
      "range": "*",
      "nodes": [
        "node_modules/micromatch"
      ],
      "fixAvailable": false
    },
    "postcss": {
      "name": "postcss",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1094544,
          "name": "postcss",
          "dependency": "postcss",
          "title": "PostCSS line return parsing error",
          "url": "https://github.com/advisories/GHSA-7fh5-64p2-3v2j",
          "severity": "moderate",
          "cwe": [
            "CWE-74",
            "CWE-144"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<8.4.31"
        }
      ],
      "effects": [],
      "range": "<8.4.31",
      "nodes": [
        "node_modules/postcss"
      ],
      "fixAvailable": true
    },
    "stylelint": {
      "name": "stylelint",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "fast-glob",
        "globby",
        "micromatch"
      ],
      "effects": [
        "grunt-stylelint",
        "stylelint-config-recommended",
        "stylelint-config-wikimedia",
        "stylelint-no-unsupported-browser-features"
      ],
      "range": ">=7.7.1",
      "nodes": [
        "node_modules/stylelint"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.3.0",
        "isSemVerMajor": true
      }
    },
    "stylelint-config-recommended": {
      "name": "stylelint-config-recommended",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "stylelint"
      ],
      "effects": [
        "stylelint-config-wikimedia"
      ],
      "range": "*",
      "nodes": [
        "node_modules/stylelint-config-recommended"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.3.0",
        "isSemVerMajor": true
      }
    },
    "stylelint-config-wikimedia": {
      "name": "stylelint-config-wikimedia",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "stylelint",
        "stylelint-config-recommended",
        "stylelint-no-unsupported-browser-features"
      ],
      "effects": [],
      "range": ">=0.4.0",
      "nodes": [
        "node_modules/stylelint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.3.0",
        "isSemVerMajor": true
      }
    },
    "stylelint-no-unsupported-browser-features": {
      "name": "stylelint-no-unsupported-browser-features",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "stylelint"
      ],
      "effects": [
        "stylelint-config-wikimedia"
      ],
      "range": ">=4.0.0",
      "nodes": [
        "node_modules/stylelint-no-unsupported-browser-features"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.3.0",
        "isSemVerMajor": true
      }
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1098393,
          "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": ">=7.0.0 <7.5.10"
        }
      ],
      "effects": [],
      "range": "7.0.0 - 7.5.9",
      "nodes": [
        "node_modules/ws"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 43,
      "high": 4,
      "critical": 5,
      "total": 52
    },
    "dependencies": {
      "prod": 1,
      "dev": 985,
      "optional": 1,
      "peer": 1,
      "peerOptional": 0,
      "total": 985
    }
  }
}

--- 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: 36 installs, 0 updates, 0 removals
  - Locking composer/pcre (3.3.0)
  - Locking composer/semver (3.3.2)
  - Locking composer/spdx-licenses (1.5.8)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking doctrine/deprecations (1.1.3)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking mediawiki/mediawiki-codesniffer (v41.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.12.1)
  - Locking mediawiki/minus-x (1.1.1)
  - Locking mediawiki/phan-taint-check-plugin (4.0.0)
  - Locking microsoft/tolerant-php-parser (v0.1.1)
  - Locking netresearch/jsonmapper (v4.4.1)
  - Locking phan/phan (5.4.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.3.2)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.4.1)
  - Locking phpdocumentor/type-resolver (1.8.2)
  - Locking phpstan/phpdoc-parser (1.29.1)
  - Locking psr/container (2.0.2)
  - Locking psr/log (2.0.0)
  - Locking sabre/event (5.1.6)
  - Locking squizlabs/php_codesniffer (3.7.2)
  - Locking symfony/console (v5.4.42)
  - Locking symfony/deprecation-contracts (v3.5.0)
  - Locking symfony/polyfill-ctype (v1.30.0)
  - Locking symfony/polyfill-intl-grapheme (v1.30.0)
  - Locking symfony/polyfill-intl-normalizer (v1.30.0)
  - Locking symfony/polyfill-mbstring (v1.30.0)
  - Locking symfony/polyfill-php73 (v1.30.0)
  - Locking symfony/polyfill-php80 (v1.30.0)
  - Locking symfony/service-contracts (v3.5.0)
  - Locking symfony/string (v6.4.10)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (1.11.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 36 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Installing composer/pcre (3.3.0): Extracting archive
  - Installing symfony/polyfill-php80 (v1.30.0): Extracting archive
  - Installing squizlabs/php_codesniffer (3.7.2): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.30.0): Extracting archive
  - Installing composer/spdx-licenses (1.5.8): Extracting archive
  - Installing composer/semver (3.3.2): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v41.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.30.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.30.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.30.0): Extracting archive
  - Installing symfony/string (v6.4.10): Extracting archive
  - Installing symfony/deprecation-contracts (v3.5.0): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.5.0): Extracting archive
  - Installing symfony/polyfill-php73 (v1.30.0): Extracting archive
  - Installing symfony/console (v5.4.42): Extracting archive
  - Installing sabre/event (5.1.6): Extracting archive
  - Installing netresearch/jsonmapper (v4.4.1): Extracting archive
  - Installing microsoft/tolerant-php-parser (v0.1.1): Extracting archive
  - Installing webmozart/assert (1.11.0): Extracting archive
  - Installing phpstan/phpdoc-parser (1.29.1): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing doctrine/deprecations (1.1.3): Extracting archive
  - Installing phpdocumentor/type-resolver (1.8.2): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.4.1): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing psr/log (2.0.0): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (5.4.1): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (4.0.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.12.1): Extracting archive
  - Installing mediawiki/minus-x (1.1.1): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.3.2): Extracting archive
  0/36 [>---------------------------]   0%
 20/36 [===============>------------]  55%
 35/36 [===========================>]  97%
 36/36 [============================] 100%
3 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
15 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@babel/traverse": {
      "name": "@babel/traverse",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096886,
          "name": "@babel/traverse",
          "dependency": "@babel/traverse",
          "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
          "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
          "severity": "critical",
          "cwe": [
            "CWE-184",
            "CWE-697"
          ],
          "cvss": {
            "score": 9.4,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
          },
          "range": "<7.23.2"
        }
      ],
      "effects": [],
      "range": "<7.23.2",
      "nodes": [
        "node_modules/@babel/traverse"
      ],
      "fixAvailable": true
    },
    "@jest/console": {
      "name": "@jest/console",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-message-util"
      ],
      "effects": [
        "@jest/core",
        "@jest/reporters",
        "@jest/test-result",
        "jest-runner"
      ],
      "range": ">=25.4.0",
      "nodes": [
        "node_modules/@jest/console"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/core": {
      "name": "@jest/core",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/console",
        "@jest/reporters",
        "@jest/test-result",
        "@jest/transform",
        "jest-config",
        "jest-haste-map",
        "jest-message-util",
        "jest-resolve",
        "jest-resolve-dependencies",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot",
        "jest-watcher",
        "micromatch"
      ],
      "effects": [
        "jest",
        "jest-cli"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/core"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/environment": {
      "name": "@jest/environment",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/fake-timers"
      ],
      "effects": [
        "@jest/globals",
        "jest-circus",
        "jest-environment-jsdom"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/environment"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/fake-timers": {
      "name": "@jest/fake-timers",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-message-util"
      ],
      "effects": [
        "@jest/environment",
        "jest-environment-jsdom",
        "jest-environment-node",
        "jest-runtime"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/fake-timers"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/globals": {
      "name": "@jest/globals",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/environment",
        "expect"
      ],
      "effects": [
        "jest-runtime"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/globals"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/reporters": {
      "name": "@jest/reporters",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/console",
        "@jest/test-result",
        "@jest/transform",
        "jest-haste-map",
        "jest-resolve"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@jest/reporters"
      ],
      "fixAvailable": true
    },
    "@jest/test-result": {
      "name": "@jest/test-result",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/console"
      ],
      "effects": [
        "@jest/test-sequencer",
        "jest-circus",
        "jest-cli",
        "jest-jasmine2",
        "jest-runtime",
        "jest-watcher"
      ],
      "range": ">=25.4.0",
      "nodes": [
        "node_modules/@jest/test-result"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/test-sequencer": {
      "name": "@jest/test-sequencer",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/test-result",
        "jest-haste-map",
        "jest-runtime"
      ],
      "effects": [
        "jest-config"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/test-sequencer"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/transform": {
      "name": "@jest/transform",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-haste-map",
        "micromatch"
      ],
      "effects": [
        "@jest/reporters",
        "babel-jest",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/transform"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "globby"
      ],
      "effects": [
        "@typescript-eslint/utils"
      ],
      "range": ">=3.10.2-alpha.0",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree"
      ],
      "fixAvailable": {
        "name": "eslint-plugin-jest",
        "version": "25.7.0",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/utils": {
      "name": "@typescript-eslint/utils",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree"
      ],
      "effects": [
        "eslint-plugin-jest"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": {
        "name": "eslint-plugin-jest",
        "version": "25.7.0",
        "isSemVerMajor": true
      }
    },
    "@vue/vue3-jest": {
      "name": "@vue/vue3-jest",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "babel-jest",
        "jest"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@vue/vue3-jest"
      ],
      "fixAvailable": false
    },
    "babel-core": {
      "name": "babel-core",
      "severity": "critical",
      "isDirect": true,
      "via": [
        "babel-helpers",
        "babel-register",
        "babel-template",
        "babel-traverse",
        "json5"
      ],
      "effects": [
        "babel-register"
      ],
      "range": "5.8.20 - 7.0.0-beta.3",
      "nodes": [
        "node_modules/babel-core"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "babel-helpers": {
      "name": "babel-helpers",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "babel-template"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/babel-helpers"
      ],
      "fixAvailable": true
    },
    "babel-jest": {
      "name": "babel-jest",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/transform"
      ],
      "effects": [
        "@vue/vue3-jest",
        "jest-config"
      ],
      "range": ">=24.2.0-alpha.0",
      "nodes": [
        "node_modules/babel-jest"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "babel-register": {
      "name": "babel-register",
      "severity": "high",
      "isDirect": false,
      "via": [
        "babel-core"
      ],
      "effects": [
        "babel-core"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-register"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "babel-template": {
      "name": "babel-template",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "babel-traverse"
      ],
      "effects": [
        "babel-helpers"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-template"
      ],
      "fixAvailable": true
    },
    "babel-traverse": {
      "name": "babel-traverse",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096879,
          "name": "babel-traverse",
          "dependency": "babel-traverse",
          "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
          "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
          "severity": "critical",
          "cwe": [
            "CWE-184",
            "CWE-697"
          ],
          "cvss": {
            "score": 9.4,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
          },
          "range": "<7.23.2"
        }
      ],
      "effects": [
        "babel-core",
        "babel-template"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-traverse"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "braces": {
      "name": "braces",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1098094,
          "name": "braces",
          "dependency": "braces",
          "title": "Uncontrolled resource consumption in braces",
          "url": "https://github.com/advisories/GHSA-grv7-fg5c-xmjg",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-1050"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.0.3"
        }
      ],
      "effects": [],
      "range": "<3.0.3",
      "nodes": [
        "node_modules/braces"
      ],
      "fixAvailable": true
    },
    "eslint-plugin-jest": {
      "name": "eslint-plugin-jest",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "@typescript-eslint/utils"
      ],
      "effects": [],
      "range": ">=26.0.0",
      "nodes": [
        "node_modules/eslint-plugin-jest"
      ],
      "fixAvailable": {
        "name": "eslint-plugin-jest",
        "version": "25.7.0",
        "isSemVerMajor": true
      }
    },
    "expect": {
      "name": "expect",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-message-util"
      ],
      "effects": [
        "@jest/globals",
        "jest-circus",
        "jest-jasmine2",
        "jest-snapshot"
      ],
      "range": ">=21.0.0-beta.1",
      "nodes": [
        "node_modules/expect"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "fast-glob": {
      "name": "fast-glob",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "micromatch"
      ],
      "effects": [
        "globby",
        "stylelint"
      ],
      "range": "*",
      "nodes": [
        "node_modules/fast-glob"
      ],
      "fixAvailable": {
        "name": "grunt-stylelint",
        "version": "0.6.0",
        "isSemVerMajor": true
      }
    },
    "findup-sync": {
      "name": "findup-sync",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "micromatch"
      ],
      "effects": [
        "grunt",
        "liftup"
      ],
      "range": ">=0.4.0",
      "nodes": [
        "node_modules/findup-sync",
        "node_modules/liftup/node_modules/findup-sync"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "1.5.3",
        "isSemVerMajor": true
      }
    },
    "globby": {
      "name": "globby",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "fast-glob"
      ],
      "effects": [
        "@typescript-eslint/typescript-estree",
        "stylelint"
      ],
      "range": ">=8.0.0",
      "nodes": [
        "node_modules/globby"
      ],
      "fixAvailable": {
        "name": "grunt-stylelint",
        "version": "0.6.0",
        "isSemVerMajor": true
      }
    },
    "grunt": {
      "name": "grunt",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "findup-sync",
        "grunt-cli"
      ],
      "effects": [],
      "range": ">=1.4.0",
      "nodes": [
        "node_modules/grunt"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "1.5.3",
        "isSemVerMajor": true
      }
    },
    "grunt-cli": {
      "name": "grunt-cli",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "liftup"
      ],
      "effects": [
        "grunt"
      ],
      "range": ">=1.4.0",
      "nodes": [
        "node_modules/grunt-cli"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "1.5.3",
        "isSemVerMajor": true
      }
    },
    "grunt-stylelint": {
      "name": "grunt-stylelint",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "stylelint"
      ],
      "effects": [],
      "range": ">=0.7.0",
      "nodes": [
        "node_modules/grunt-stylelint"
      ],
      "fixAvailable": {
        "name": "grunt-stylelint",
        "version": "0.6.0",
        "isSemVerMajor": true
      }
    },
    "jest": {
      "name": "jest",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "@jest/core",
        "jest-cli"
      ],
      "effects": [],
      "range": ">=24.2.0-alpha.0",
      "nodes": [
        "node_modules/jest"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-circus": {
      "name": "jest-circus",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/environment",
        "@jest/test-result",
        "expect",
        "jest-message-util",
        "jest-runtime",
        "jest-snapshot"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=20.1.0-alpha.1",
      "nodes": [
        "node_modules/jest-circus"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-cli": {
      "name": "jest-cli",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/core",
        "@jest/test-result",
        "jest-config"
      ],
      "effects": [
        "jest"
      ],
      "range": ">=23.5.0",
      "nodes": [
        "node_modules/jest-cli"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-config": {
      "name": "jest-config",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/test-sequencer",
        "babel-jest",
        "jest-circus",
        "jest-environment-jsdom",
        "jest-environment-node",
        "jest-jasmine2",
        "jest-resolve",
        "jest-runner",
        "micromatch"
      ],
      "effects": [
        "jest-cli"
      ],
      "range": ">=18.1.0",
      "nodes": [
        "node_modules/jest-config"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-environment-jsdom": {
      "name": "jest-environment-jsdom",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/environment",
        "@jest/fake-timers"
      ],
      "effects": [
        "jest-config",
        "jest-runner"
      ],
      "range": ">=24.2.0-alpha.0",
      "nodes": [
        "node_modules/jest-environment-jsdom"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-environment-node": {
      "name": "jest-environment-node",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/environment",
        "@jest/fake-timers"
      ],
      "effects": [
        "jest-runner"
      ],
      "range": ">=24.2.0-alpha.0",
      "nodes": [
        "node_modules/jest-environment-node"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-haste-map": {
      "name": "jest-haste-map",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "micromatch"
      ],
      "effects": [
        "@jest/reporters",
        "@jest/test-sequencer",
        "jest-resolve",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot"
      ],
      "range": ">=18.1.0",
      "nodes": [
        "node_modules/jest-haste-map"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-jasmine2": {
      "name": "jest-jasmine2",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/environment",
        "@jest/test-result",
        "expect",
        "jest-message-util",
        "jest-runtime",
        "jest-snapshot"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=18.5.0-alpha.7da3df39",
      "nodes": [
        "node_modules/jest-jasmine2"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-message-util": {
      "name": "jest-message-util",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "micromatch"
      ],
      "effects": [
        "@jest/console",
        "@jest/fake-timers",
        "expect",
        "jest-circus",
        "jest-jasmine2",
        "jest-runtime",
        "jest-snapshot"
      ],
      "range": ">=18.5.0-alpha.7da3df39",
      "nodes": [
        "node_modules/jest-message-util"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-resolve": {
      "name": "jest-resolve",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-haste-map"
      ],
      "effects": [
        "@jest/core",
        "@jest/reporters",
        "jest-config",
        "jest-runner",
        "jest-runtime"
      ],
      "range": "18.1.0 - 19.0.2 || 24.2.0-alpha.0 - 24.5.0 || >=27.1.0",
      "nodes": [
        "node_modules/jest-resolve"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-resolve-dependencies": {
      "name": "jest-resolve-dependencies",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-snapshot"
      ],
      "effects": [],
      "range": ">=27.0.0-next.0",
      "nodes": [
        "node_modules/jest-resolve-dependencies"
      ],
      "fixAvailable": true
    },
    "jest-runner": {
      "name": "jest-runner",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/console",
        "@jest/environment",
        "@jest/test-result",
        "@jest/transform",
        "jest-environment-jsdom",
        "jest-environment-node",
        "jest-haste-map",
        "jest-message-util",
        "jest-resolve",
        "jest-runtime"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=21.0.0-alpha.1",
      "nodes": [
        "node_modules/jest-runner"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-runtime": {
      "name": "jest-runtime",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/environment",
        "@jest/fake-timers",
        "@jest/globals",
        "@jest/test-result",
        "@jest/transform",
        "jest-haste-map",
        "jest-message-util",
        "jest-resolve",
        "jest-snapshot"
      ],
      "effects": [
        "@jest/test-sequencer",
        "jest-circus",
        "jest-jasmine2",
        "jest-runner"
      ],
      "range": ">=18.1.0",
      "nodes": [
        "node_modules/jest-runtime"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-snapshot": {
      "name": "jest-snapshot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/transform",
        "expect",
        "jest-haste-map",
        "jest-message-util"
      ],
      "effects": [
        "@jest/core",
        "jest-circus",
        "jest-jasmine2",
        "jest-resolve-dependencies",
        "jest-runtime"
      ],
      "range": ">=23.3.0",
      "nodes": [
        "node_modules/jest-snapshot"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-watcher": {
      "name": "jest-watcher",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/test-result"
      ],
      "effects": [],
      "range": ">=25.4.0",
      "nodes": [
        "node_modules/jest-watcher"
      ],
      "fixAvailable": true
    },
    "json5": {
      "name": "json5",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1096543,
          "name": "json5",
          "dependency": "json5",
          "title": "Prototype Pollution in JSON5 via Parse Method",
          "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h",
          "severity": "high",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 7.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"
          },
          "range": "<1.0.2"
        }
      ],
      "effects": [
        "babel-core"
      ],
      "range": "<1.0.2",
      "nodes": [
        "node_modules/babel-core/node_modules/json5"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "liftup": {
      "name": "liftup",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "findup-sync"
      ],
      "effects": [
        "grunt-cli"
      ],
      "range": "*",
      "nodes": [
        "node_modules/liftup"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "1.5.3",
        "isSemVerMajor": true
      }
    },
    "micromatch": {
      "name": "micromatch",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1098615,
          "name": "micromatch",
          "dependency": "micromatch",
          "title": "Regular Expression Denial of Service (ReDoS) in micromatch",
          "url": "https://github.com/advisories/GHSA-952p-6rrq-rcjv",
          "severity": "moderate",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<=4.0.7"
        }
      ],
      "effects": [
        "@jest/core",
        "@jest/transform",
        "fast-glob",
        "findup-sync",
        "jest-config",
        "jest-haste-map",
        "jest-message-util",
        "stylelint"
      ],
      "range": "*",
      "nodes": [
        "node_modules/micromatch"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "postcss": {
      "name": "postcss",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1094544,
          "name": "postcss",
          "dependency": "postcss",
          "title": "PostCSS line return parsing error",
          "url": "https://github.com/advisories/GHSA-7fh5-64p2-3v2j",
          "severity": "moderate",
          "cwe": [
            "CWE-74",
            "CWE-144"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<8.4.31"
        }
      ],
      "effects": [],
      "range": "<8.4.31",
      "nodes": [
        "node_modules/postcss"
      ],
      "fixAvailable": true
    },
    "stylelint": {
      "name": "stylelint",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "fast-glob",
        "globby",
        "micromatch"
      ],
      "effects": [
        "grunt-stylelint",
        "stylelint-config-recommended",
        "stylelint-config-wikimedia",
        "stylelint-no-unsupported-browser-features"
      ],
      "range": ">=7.7.1",
      "nodes": [
        "node_modules/stylelint"
      ],
      "fixAvailable": {
        "name": "grunt-stylelint",
        "version": "0.6.0",
        "isSemVerMajor": true
      }
    },
    "stylelint-config-recommended": {
      "name": "stylelint-config-recommended",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "stylelint"
      ],
      "effects": [
        "stylelint-config-wikimedia"
      ],
      "range": "*",
      "nodes": [
        "node_modules/stylelint-config-recommended"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.3.0",
        "isSemVerMajor": true
      }
    },
    "stylelint-config-wikimedia": {
      "name": "stylelint-config-wikimedia",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "stylelint",
        "stylelint-config-recommended",
        "stylelint-no-unsupported-browser-features"
      ],
      "effects": [],
      "range": ">=0.4.0",
      "nodes": [
        "node_modules/stylelint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.3.0",
        "isSemVerMajor": true
      }
    },
    "stylelint-no-unsupported-browser-features": {
      "name": "stylelint-no-unsupported-browser-features",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "stylelint"
      ],
      "effects": [
        "stylelint-config-wikimedia"
      ],
      "range": ">=4.0.0",
      "nodes": [
        "node_modules/stylelint-no-unsupported-browser-features"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.3.0",
        "isSemVerMajor": true
      }
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1098393,
          "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": ">=7.0.0 <7.5.10"
        }
      ],
      "effects": [],
      "range": "7.0.0 - 7.5.9",
      "nodes": [
        "node_modules/ws"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 43,
      "high": 4,
      "critical": 5,
      "total": 52
    },
    "dependencies": {
      "prod": 1,
      "dev": 985,
      "optional": 1,
      "peer": 1,
      "peerOptional": 0,
      "total": 985
    }
  }
}

--- 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: '@es-joy/jsdoccomment@0.23.6',
npm WARN EBADENGINE   required: { node: '^12 || ^14 || ^16 || ^17' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'eslint-plugin-jsdoc@39.2.2',
npm WARN EBADENGINE   required: { node: '^14 || ^16 || ^17' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
{
  "added": 986,
  "removed": 0,
  "changed": 0,
  "audited": 987,
  "funding": 94,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@babel/traverse": {
        "name": "@babel/traverse",
        "severity": "critical",
        "isDirect": false,
        "via": [
          {
            "source": 1096886,
            "name": "@babel/traverse",
            "dependency": "@babel/traverse",
            "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
            "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
            "severity": "critical",
            "cwe": [
              "CWE-184",
              "CWE-697"
            ],
            "cvss": {
              "score": 9.4,
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
            },
            "range": "<7.23.2"
          }
        ],
        "effects": [],
        "range": "<7.23.2",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "@jest/console": {
        "name": "@jest/console",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "jest-message-util"
        ],
        "effects": [
          "@jest/core",
          "@jest/reporters",
          "@jest/test-result",
          "jest-runner"
        ],
        "range": ">=25.4.0",
        "nodes": [
          "node_modules/@jest/console"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/core": {
        "name": "@jest/core",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/console",
          "@jest/reporters",
          "@jest/test-result",
          "@jest/transform",
          "jest-config",
          "jest-haste-map",
          "jest-message-util",
          "jest-resolve",
          "jest-resolve-dependencies",
          "jest-runner",
          "jest-runtime",
          "jest-snapshot",
          "jest-watcher",
          "micromatch"
        ],
        "effects": [
          "jest",
          "jest-cli"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@jest/core"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/environment": {
        "name": "@jest/environment",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/fake-timers"
        ],
        "effects": [
          "@jest/globals",
          "jest-circus",
          "jest-environment-jsdom"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@jest/environment"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/fake-timers": {
        "name": "@jest/fake-timers",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "jest-message-util"
        ],
        "effects": [
          "@jest/environment",
          "jest-environment-jsdom",
          "jest-environment-node",
          "jest-runtime"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@jest/fake-timers"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/globals": {
        "name": "@jest/globals",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/environment",
          "expect"
        ],
        "effects": [
          "jest-runtime"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@jest/globals"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/reporters": {
        "name": "@jest/reporters",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/console",
          "@jest/test-result",
          "@jest/transform",
          "jest-haste-map",
          "jest-resolve"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/@jest/reporters"
        ],
        "fixAvailable": true
      },
      "@jest/test-result": {
        "name": "@jest/test-result",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/console"
        ],
        "effects": [
          "@jest/test-sequencer",
          "jest-circus",
          "jest-cli",
          "jest-jasmine2",
          "jest-runtime",
          "jest-watcher"
        ],
        "range": ">=25.4.0",
        "nodes": [
          "node_modules/@jest/test-result"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/test-sequencer": {
        "name": "@jest/test-sequencer",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/test-result",
          "jest-haste-map",
          "jest-runtime"
        ],
        "effects": [
          "jest-config"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@jest/test-sequencer"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/transform": {
        "name": "@jest/transform",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "jest-haste-map",
          "micromatch"
        ],
        "effects": [
          "@jest/reporters",
          "babel-jest",
          "jest-runner",
          "jest-runtime",
          "jest-snapshot"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@jest/transform"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@typescript-eslint/typescript-estree": {
        "name": "@typescript-eslint/typescript-estree",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "globby"
        ],
        "effects": [
          "@typescript-eslint/utils"
        ],
        "range": ">=3.10.2-alpha.0",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "eslint-plugin-jest",
          "version": "25.7.0",
          "isSemVerMajor": true
        }
      },
      "@typescript-eslint/utils": {
        "name": "@typescript-eslint/utils",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@typescript-eslint/typescript-estree"
        ],
        "effects": [
          "eslint-plugin-jest"
        ],
        "range": "*",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "eslint-plugin-jest",
          "version": "25.7.0",
          "isSemVerMajor": true
        }
      },
      "@vue/vue3-jest": {
        "name": "@vue/vue3-jest",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "babel-jest",
          "jest"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/@vue/vue3-jest"
        ],
        "fixAvailable": false
      },
      "babel-core": {
        "name": "babel-core",
        "severity": "critical",
        "isDirect": true,
        "via": [
          "babel-helpers",
          "babel-register",
          "babel-template",
          "babel-traverse",
          "json5"
        ],
        "effects": [
          "babel-register"
        ],
        "range": "5.8.20 - 7.0.0-beta.3",
        "nodes": [
          "node_modules/babel-core"
        ],
        "fixAvailable": {
          "name": "babel-core",
          "version": "4.7.16",
          "isSemVerMajor": true
        }
      },
      "babel-helpers": {
        "name": "babel-helpers",
        "severity": "critical",
        "isDirect": false,
        "via": [
          "babel-template"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/babel-helpers"
        ],
        "fixAvailable": true
      },
      "babel-jest": {
        "name": "babel-jest",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/transform"
        ],
        "effects": [
          "@vue/vue3-jest",
          "jest-config"
        ],
        "range": ">=24.2.0-alpha.0",
        "nodes": [
          "node_modules/babel-jest"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "babel-register": {
        "name": "babel-register",
        "severity": "high",
        "isDirect": false,
        "via": [
          "babel-core"
        ],
        "effects": [
          "babel-core"
        ],
        "range": "*",
        "nodes": [
          "node_modules/babel-register"
        ],
        "fixAvailable": {
          "name": "babel-core",
          "version": "4.7.16",
          "isSemVerMajor": true
        }
      },
      "babel-template": {
        "name": "babel-template",
        "severity": "critical",
        "isDirect": false,
        "via": [
          "babel-traverse"
        ],
        "effects": [
          "babel-helpers"
        ],
        "range": "*",
        "nodes": [
          "node_modules/babel-template"
        ],
        "fixAvailable": true
      },
      "babel-traverse": {
        "name": "babel-traverse",
        "severity": "critical",
        "isDirect": false,
        "via": [
          {
            "source": 1096879,
            "name": "babel-traverse",
            "dependency": "babel-traverse",
            "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
            "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
            "severity": "critical",
            "cwe": [
              "CWE-184",
              "CWE-697"
            ],
            "cvss": {
              "score": 9.4,
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
            },
            "range": "<7.23.2"
          }
        ],
        "effects": [
          "babel-core",
          "babel-template"
        ],
        "range": "*",
        "nodes": [
          "node_modules/babel-traverse"
        ],
        "fixAvailable": {
          "name": "babel-core",
          "version": "4.7.16",
          "isSemVerMajor": true
        }
      },
      "braces": {
        "name": "braces",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1098094,
            "name": "braces",
            "dependency": "braces",
            "title": "Uncontrolled resource consumption in braces",
            "url": "https://github.com/advisories/GHSA-grv7-fg5c-xmjg",
            "severity": "high",
            "cwe": [
              "CWE-400",
              "CWE-1050"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<3.0.3"
          }
        ],
        "effects": [],
        "range": "<3.0.3",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "eslint-plugin-jest": {
        "name": "eslint-plugin-jest",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "@typescript-eslint/utils"
        ],
        "effects": [],
        "range": ">=26.0.0",
        "nodes": [
          "node_modules/eslint-plugin-jest"
        ],
        "fixAvailable": {
          "name": "eslint-plugin-jest",
          "version": "25.7.0",
          "isSemVerMajor": true
        }
      },
      "expect": {
        "name": "expect",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "jest-message-util"
        ],
        "effects": [
          "@jest/globals",
          "jest-circus",
          "jest-jasmine2",
          "jest-snapshot"
        ],
        "range": ">=21.0.0-beta.1",
        "nodes": [
          "node_modules/expect"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "fast-glob": {
        "name": "fast-glob",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "micromatch"
        ],
        "effects": [
          "globby",
          "stylelint"
        ],
        "range": "*",
        "nodes": [
          "",
          "node_modules/fast-glob"
        ],
        "fixAvailable": {
          "name": "grunt-stylelint",
          "version": "0.6.0",
          "isSemVerMajor": true
        }
      },
      "findup-sync": {
        "name": "findup-sync",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "micromatch"
        ],
        "effects": [
          "grunt",
          "liftup"
        ],
        "range": ">=0.4.0",
        "nodes": [
          "node_modules/findup-sync",
          "node_modules/liftup/node_modules/findup-sync"
        ],
        "fixAvailable": {
          "name": "grunt",
          "version": "1.5.3",
          "isSemVerMajor": true
        }
      },
      "globby": {
        "name": "globby",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "fast-glob"
        ],
        "effects": [
          "@typescript-eslint/typescript-estree",
          "stylelint"
        ],
        "range": ">=8.0.0",
        "nodes": [
          "node_modules/globby"
        ],
        "fixAvailable": {
          "name": "grunt-stylelint",
          "version": "0.6.0",
          "isSemVerMajor": true
        }
      },
      "grunt": {
        "name": "grunt",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "findup-sync",
          "grunt-cli"
        ],
        "effects": [],
        "range": ">=1.4.0",
        "nodes": [
          "node_modules/grunt"
        ],
        "fixAvailable": {
          "name": "grunt",
          "version": "1.5.3",
          "isSemVerMajor": true
        }
      },
      "grunt-cli": {
        "name": "grunt-cli",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "liftup"
        ],
        "effects": [
          "grunt"
        ],
        "range": ">=1.4.0",
        "nodes": [
          "node_modules/grunt-cli"
        ],
        "fixAvailable": {
          "name": "grunt",
          "version": "1.5.3",
          "isSemVerMajor": true
        }
      },
      "grunt-stylelint": {
        "name": "grunt-stylelint",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "stylelint"
        ],
        "effects": [],
        "range": ">=0.7.0",
        "nodes": [
          "node_modules/grunt-stylelint"
        ],
        "fixAvailable": {
          "name": "grunt-stylelint",
          "version": "0.6.0",
          "isSemVerMajor": true
        }
      },
      "jest": {
        "name": "jest",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "@jest/core",
          "jest-cli"
        ],
        "effects": [],
        "range": ">=24.2.0-alpha.0",
        "nodes": [
          "node_modules/jest"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-circus": {
        "name": "jest-circus",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/environment",
          "@jest/test-result",
          "expect",
          "jest-message-util",
          "jest-runtime",
          "jest-snapshot"
        ],
        "effects": [
          "jest-config"
        ],
        "range": ">=20.1.0-alpha.1",
        "nodes": [
          "node_modules/jest-circus"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-cli": {
        "name": "jest-cli",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/core",
          "@jest/test-result",
          "jest-config"
        ],
        "effects": [
          "jest"
        ],
        "range": ">=23.5.0",
        "nodes": [
          "node_modules/jest-cli"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-config": {
        "name": "jest-config",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/test-sequencer",
          "babel-jest",
          "jest-circus",
          "jest-environment-jsdom",
          "jest-environment-node",
          "jest-jasmine2",
          "jest-resolve",
          "jest-runner",
          "micromatch"
        ],
        "effects": [
          "jest-cli"
        ],
        "range": ">=18.1.0",
        "nodes": [
          "node_modules/jest-config"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-environment-jsdom": {
        "name": "jest-environment-jsdom",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/environment",
          "@jest/fake-timers"
        ],
        "effects": [
          "jest-config",
          "jest-runner"
        ],
        "range": ">=24.2.0-alpha.0",
        "nodes": [
          "node_modules/jest-environment-jsdom"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-environment-node": {
        "name": "jest-environment-node",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/environment",
          "@jest/fake-timers"
        ],
        "effects": [
          "jest-runner"
        ],
        "range": ">=24.2.0-alpha.0",
        "nodes": [
          "node_modules/jest-environment-node"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-haste-map": {
        "name": "jest-haste-map",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "micromatch"
        ],
        "effects": [
          "@jest/reporters",
          "@jest/test-sequencer",
          "jest-resolve",
          "jest-runner",
          "jest-runtime",
          "jest-snapshot"
        ],
        "range": ">=18.1.0",
        "nodes": [
          "node_modules/jest-haste-map"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-jasmine2": {
        "name": "jest-jasmine2",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/environment",
          "@jest/test-result",
          "expect",
          "jest-message-util",
          "jest-runtime",
          "jest-snapshot"
        ],
        "effects": [
          "jest-config"
        ],
        "range": ">=18.5.0-alpha.7da3df39",
        "nodes": [
          "node_modules/jest-jasmine2"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-message-util": {
        "name": "jest-message-util",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "micromatch"
        ],
        "effects": [
          "@jest/console",
          "@jest/fake-timers",
          "expect",
          "jest-circus",
          "jest-jasmine2",
          "jest-runtime",
          "jest-snapshot"
        ],
        "range": ">=18.5.0-alpha.7da3df39",
        "nodes": [
          "node_modules/jest-message-util"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-resolve": {
        "name": "jest-resolve",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "jest-haste-map"
        ],
        "effects": [
          "@jest/core",
          "@jest/reporters",
          "jest-config",
          "jest-runner",
          "jest-runtime"
        ],
        "range": "18.1.0 - 19.0.2 || 24.2.0-alpha.0 - 24.5.0 || >=27.1.0",
        "nodes": [
          "node_modules/jest-resolve"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-resolve-dependencies": {
        "name": "jest-resolve-dependencies",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "jest-snapshot"
        ],
        "effects": [],
        "range": ">=27.0.0-next.0",
        "nodes": [
          "node_modules/jest-resolve-dependencies"
        ],
        "fixAvailable": true
      },
      "jest-runner": {
        "name": "jest-runner",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/console",
          "@jest/environment",
          "@jest/test-result",
          "@jest/transform",
          "jest-environment-jsdom",
          "jest-environment-node",
          "jest-haste-map",
          "jest-message-util",
          "jest-resolve",
          "jest-runtime"
        ],
        "effects": [
          "jest-config"
        ],
        "range": ">=21.0.0-alpha.1",
        "nodes": [
          "node_modules/jest-runner"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-runtime": {
        "name": "jest-runtime",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/environment",
          "@jest/fake-timers",
          "@jest/globals",
          "@jest/test-result",
          "@jest/transform",
          "jest-haste-map",
          "jest-message-util",
          "jest-resolve",
          "jest-snapshot"
        ],
        "effects": [
          "@jest/test-sequencer",
          "jest-circus",
          "jest-jasmine2",
          "jest-runner"
        ],
        "range": ">=18.1.0",
        "nodes": [
          "node_modules/jest-runtime"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-snapshot": {
        "name": "jest-snapshot",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/transform",
          "expect",
          "jest-haste-map",
          "jest-message-util"
        ],
        "effects": [
          "@jest/core",
          "jest-circus",
          "jest-jasmine2",
          "jest-resolve-dependencies",
          "jest-runtime"
        ],
        "range": ">=23.3.0",
        "nodes": [
          "node_modules/jest-snapshot"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-watcher": {
        "name": "jest-watcher",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/test-result"
        ],
        "effects": [],
        "range": ">=25.4.0",
        "nodes": [
          "node_modules/jest-watcher"
        ],
        "fixAvailable": true
      },
      "json5": {
        "name": "json5",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1096543,
            "name": "json5",
            "dependency": "json5",
            "title": "Prototype Pollution in JSON5 via Parse Method",
            "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h",
            "severity": "high",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 7.1,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"
            },
            "range": "<1.0.2"
          }
        ],
        "effects": [
          "babel-core"
        ],
        "range": "<1.0.2",
        "nodes": [
          "node_modules/babel-core/node_modules/json5"
        ],
        "fixAvailable": {
          "name": "babel-core",
          "version": "4.7.16",
          "isSemVerMajor": true
        }
      },
      "liftup": {
        "name": "liftup",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "findup-sync"
        ],
        "effects": [
          "grunt-cli"
        ],
        "range": "*",
        "nodes": [
          "node_modules/liftup"
        ],
        "fixAvailable": {
          "name": "grunt",
          "version": "1.5.3",
          "isSemVerMajor": true
        }
      },
      "micromatch": {
        "name": "micromatch",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1098615,
            "name": "micromatch",
            "dependency": "micromatch",
            "title": "Regular Expression Denial of Service (ReDoS) in micromatch",
            "url": "https://github.com/advisories/GHSA-952p-6rrq-rcjv",
            "severity": "moderate",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<=4.0.7"
          }
        ],
        "effects": [
          "@jest/core",
          "@jest/transform",
          "fast-glob",
          "findup-sync",
          "jest-config",
          "jest-haste-map",
          "jest-message-util",
          "stylelint"
        ],
        "range": "*",
        "nodes": [
          "",
          "node_modules/micromatch"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "postcss": {
        "name": "postcss",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1094544,
            "name": "postcss",
            "dependency": "postcss",
            "title": "PostCSS line return parsing error",
            "url": "https://github.com/advisories/GHSA-7fh5-64p2-3v2j",
            "severity": "moderate",
            "cwe": [
              "CWE-74",
              "CWE-144"
            ],
            "cvss": {
              "score": 5.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": "<8.4.31"
          }
        ],
        "effects": [],
        "range": "<8.4.31",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "stylelint": {
        "name": "stylelint",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "fast-glob",
          "globby",
          "micromatch"
        ],
        "effects": [
          "grunt-stylelint",
          "stylelint-config-recommended",
          "stylelint-config-wikimedia",
          "stylelint-no-unsupported-browser-features"
        ],
        "range": ">=7.7.1",
        "nodes": [
          "node_modules/stylelint"
        ],
        "fixAvailable": {
          "name": "grunt-stylelint",
          "version": "0.6.0",
          "isSemVerMajor": true
        }
      },
      "stylelint-config-recommended": {
        "name": "stylelint-config-recommended",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "stylelint"
        ],
        "effects": [
          "stylelint-config-wikimedia"
        ],
        "range": "*",
        "nodes": [
          "node_modules/stylelint-config-recommended"
        ],
        "fixAvailable": {
          "name": "stylelint-config-wikimedia",
          "version": "0.3.0",
          "isSemVerMajor": true
        }
      },
      "stylelint-config-wikimedia": {
        "name": "stylelint-config-wikimedia",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "stylelint",
          "stylelint-config-recommended",
          "stylelint-no-unsupported-browser-features"
        ],
        "effects": [],
        "range": ">=0.4.0",
        "nodes": [
          "node_modules/stylelint-config-wikimedia"
        ],
        "fixAvailable": {
          "name": "stylelint-config-wikimedia",
          "version": "0.3.0",
          "isSemVerMajor": true
        }
      },
      "stylelint-no-unsupported-browser-features": {
        "name": "stylelint-no-unsupported-browser-features",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "stylelint"
        ],
        "effects": [
          "stylelint-config-wikimedia"
        ],
        "range": ">=4.0.0",
        "nodes": [
          "node_modules/stylelint-no-unsupported-browser-features"
        ],
        "fixAvailable": {
          "name": "stylelint-config-wikimedia",
          "version": "0.3.0",
          "isSemVerMajor": true
        }
      },
      "ws": {
        "name": "ws",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1098393,
            "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": ">=7.0.0 <7.5.10"
          }
        ],
        "effects": [],
        "range": "7.0.0 - 7.5.9",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 0,
        "moderate": 43,
        "high": 4,
        "critical": 5,
        "total": 52
      },
      "dependencies": {
        "prod": 1,
        "dev": 986,
        "optional": 1,
        "peer": 1,
        "peerOptional": 0,
        "total": 986
      }
    }
  }
}

--- end ---
{"added": 986, "removed": 0, "changed": 0, "audited": 987, "funding": 94, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@babel/traverse": {"name": "@babel/traverse", "severity": "critical", "isDirect": false, "via": [{"source": 1096886, "name": "@babel/traverse", "dependency": "@babel/traverse", "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code", "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92", "severity": "critical", "cwe": ["CWE-184", "CWE-697"], "cvss": {"score": 9.4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"}, "range": "<7.23.2"}], "effects": [], "range": "<7.23.2", "nodes": [""], "fixAvailable": true}, "@jest/console": {"name": "@jest/console", "severity": "moderate", "isDirect": false, "via": ["jest-message-util"], "effects": ["@jest/core", "@jest/reporters", "@jest/test-result", "jest-runner"], "range": ">=25.4.0", "nodes": ["node_modules/@jest/console"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/core": {"name": "@jest/core", "severity": "moderate", "isDirect": false, "via": ["@jest/console", "@jest/reporters", "@jest/test-result", "@jest/transform", "jest-config", "jest-haste-map", "jest-message-util", "jest-resolve", "jest-resolve-dependencies", "jest-runner", "jest-runtime", "jest-snapshot", "jest-watcher", "micromatch"], "effects": ["jest", "jest-cli"], "range": "*", "nodes": ["node_modules/@jest/core"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/environment": {"name": "@jest/environment", "severity": "moderate", "isDirect": false, "via": ["@jest/fake-timers"], "effects": ["@jest/globals", "jest-circus", "jest-environment-jsdom"], "range": "*", "nodes": ["node_modules/@jest/environment"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/fake-timers": {"name": "@jest/fake-timers", "severity": "moderate", "isDirect": false, "via": ["jest-message-util"], "effects": ["@jest/environment", "jest-environment-jsdom", "jest-environment-node", "jest-runtime"], "range": "*", "nodes": ["node_modules/@jest/fake-timers"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/globals": {"name": "@jest/globals", "severity": "moderate", "isDirect": false, "via": ["@jest/environment", "expect"], "effects": ["jest-runtime"], "range": "*", "nodes": ["node_modules/@jest/globals"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/reporters": {"name": "@jest/reporters", "severity": "moderate", "isDirect": false, "via": ["@jest/console", "@jest/test-result", "@jest/transform", "jest-haste-map", "jest-resolve"], "effects": [], "range": "*", "nodes": ["node_modules/@jest/reporters"], "fixAvailable": true}, "@jest/test-result": {"name": "@jest/test-result", "severity": "moderate", "isDirect": false, "via": ["@jest/console"], "effects": ["@jest/test-sequencer", "jest-circus", "jest-cli", "jest-jasmine2", "jest-runtime", "jest-watcher"], "range": ">=25.4.0", "nodes": ["node_modules/@jest/test-result"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/test-sequencer": {"name": "@jest/test-sequencer", "severity": "moderate", "isDirect": false, "via": ["@jest/test-result", "jest-haste-map", "jest-runtime"], "effects": ["jest-config"], "range": "*", "nodes": ["node_modules/@jest/test-sequencer"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/transform": {"name": "@jest/transform", "severity": "moderate", "isDirect": false, "via": ["jest-haste-map", "micromatch"], "effects": ["@jest/reporters", "babel-jest", "jest-runner", "jest-runtime", "jest-snapshot"], "range": "*", "nodes": ["node_modules/@jest/transform"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@typescript-eslint/typescript-estree": {"name": "@typescript-eslint/typescript-estree", "severity": "moderate", "isDirect": false, "via": ["globby"], "effects": ["@typescript-eslint/utils"], "range": ">=3.10.2-alpha.0", "nodes": [""], "fixAvailable": {"name": "eslint-plugin-jest", "version": "25.7.0", "isSemVerMajor": true}}, "@typescript-eslint/utils": {"name": "@typescript-eslint/utils", "severity": "moderate", "isDirect": false, "via": ["@typescript-eslint/typescript-estree"], "effects": ["eslint-plugin-jest"], "range": "*", "nodes": [""], "fixAvailable": {"name": "eslint-plugin-jest", "version": "25.7.0", "isSemVerMajor": true}}, "@vue/vue3-jest": {"name": "@vue/vue3-jest", "severity": "moderate", "isDirect": true, "via": ["babel-jest", "jest"], "effects": [], "range": "*", "nodes": ["node_modules/@vue/vue3-jest"], "fixAvailable": false}, "babel-core": {"name": "babel-core", "severity": "critical", "isDirect": true, "via": ["babel-helpers", "babel-register", "babel-template", "babel-traverse", "json5"], "effects": ["babel-register"], "range": "5.8.20 - 7.0.0-beta.3", "nodes": ["node_modules/babel-core"], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "babel-helpers": {"name": "babel-helpers", "severity": "critical", "isDirect": false, "via": ["babel-template"], "effects": [], "range": "*", "nodes": ["node_modules/babel-helpers"], "fixAvailable": true}, "babel-jest": {"name": "babel-jest", "severity": "moderate", "isDirect": false, "via": ["@jest/transform"], "effects": ["@vue/vue3-jest", "jest-config"], "range": ">=24.2.0-alpha.0", "nodes": ["node_modules/babel-jest"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "babel-register": {"name": "babel-register", "severity": "high", "isDirect": false, "via": ["babel-core"], "effects": ["babel-core"], "range": "*", "nodes": ["node_modules/babel-register"], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "babel-template": {"name": "babel-template", "severity": "critical", "isDirect": false, "via": ["babel-traverse"], "effects": ["babel-helpers"], "range": "*", "nodes": ["node_modules/babel-template"], "fixAvailable": true}, "babel-traverse": {"name": "babel-traverse", "severity": "critical", "isDirect": false, "via": [{"source": 1096879, "name": "babel-traverse", "dependency": "babel-traverse", "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code", "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92", "severity": "critical", "cwe": ["CWE-184", "CWE-697"], "cvss": {"score": 9.4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"}, "range": "<7.23.2"}], "effects": ["babel-core", "babel-template"], "range": "*", "nodes": ["node_modules/babel-traverse"], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "braces": {"name": "braces", "severity": "high", "isDirect": false, "via": [{"source": 1098094, "name": "braces", "dependency": "braces", "title": "Uncontrolled resource consumption in braces", "url": "https://github.com/advisories/GHSA-grv7-fg5c-xmjg", "severity": "high", "cwe": ["CWE-400", "CWE-1050"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<3.0.3"}], "effects": [], "range": "<3.0.3", "nodes": [""], "fixAvailable": true}, "eslint-plugin-jest": {"name": "eslint-plugin-jest", "severity": "moderate", "isDirect": true, "via": ["@typescript-eslint/utils"], "effects": [], "range": ">=26.0.0", "nodes": ["node_modules/eslint-plugin-jest"], "fixAvailable": {"name": "eslint-plugin-jest", "version": "25.7.0", "isSemVerMajor": true}}, "expect": {"name": "expect", "severity": "moderate", "isDirect": false, "via": ["jest-message-util"], "effects": ["@jest/globals", "jest-circus", "jest-jasmine2", "jest-snapshot"], "range": ">=21.0.0-beta.1", "nodes": ["node_modules/expect"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "fast-glob": {"name": "fast-glob", "severity": "moderate", "isDirect": false, "via": ["micromatch"], "effects": ["globby", "stylelint"], "range": "*", "nodes": ["", "node_modules/fast-glob"], "fixAvailable": {"name": "grunt-stylelint", "version": "0.6.0", "isSemVerMajor": true}}, "findup-sync": {"name": "findup-sync", "severity": "moderate", "isDirect": false, "via": ["micromatch"], "effects": ["grunt", "liftup"], "range": ">=0.4.0", "nodes": ["node_modules/findup-sync", "node_modules/liftup/node_modules/findup-sync"], "fixAvailable": {"name": "grunt", "version": "1.5.3", "isSemVerMajor": true}}, "globby": {"name": "globby", "severity": "moderate", "isDirect": false, "via": ["fast-glob"], "effects": ["@typescript-eslint/typescript-estree", "stylelint"], "range": ">=8.0.0", "nodes": ["node_modules/globby"], "fixAvailable": {"name": "grunt-stylelint", "version": "0.6.0", "isSemVerMajor": true}}, "grunt": {"name": "grunt", "severity": "moderate", "isDirect": true, "via": ["findup-sync", "grunt-cli"], "effects": [], "range": ">=1.4.0", "nodes": ["node_modules/grunt"], "fixAvailable": {"name": "grunt", "version": "1.5.3", "isSemVerMajor": true}}, "grunt-cli": {"name": "grunt-cli", "severity": "moderate", "isDirect": false, "via": ["liftup"], "effects": ["grunt"], "range": ">=1.4.0", "nodes": ["node_modules/grunt-cli"], "fixAvailable": {"name": "grunt", "version": "1.5.3", "isSemVerMajor": true}}, "grunt-stylelint": {"name": "grunt-stylelint", "severity": "moderate", "isDirect": true, "via": ["stylelint"], "effects": [], "range": ">=0.7.0", "nodes": ["node_modules/grunt-stylelint"], "fixAvailable": {"name": "grunt-stylelint", "version": "0.6.0", "isSemVerMajor": true}}, "jest": {"name": "jest", "severity": "moderate", "isDirect": true, "via": ["@jest/core", "jest-cli"], "effects": [], "range": ">=24.2.0-alpha.0", "nodes": ["node_modules/jest"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-circus": {"name": "jest-circus", "severity": "moderate", "isDirect": false, "via": ["@jest/environment", "@jest/test-result", "expect", "jest-message-util", "jest-runtime", "jest-snapshot"], "effects": ["jest-config"], "range": ">=20.1.0-alpha.1", "nodes": ["node_modules/jest-circus"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-cli": {"name": "jest-cli", "severity": "moderate", "isDirect": false, "via": ["@jest/core", "@jest/test-result", "jest-config"], "effects": ["jest"], "range": ">=23.5.0", "nodes": ["node_modules/jest-cli"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-config": {"name": "jest-config", "severity": "moderate", "isDirect": false, "via": ["@jest/test-sequencer", "babel-jest", "jest-circus", "jest-environment-jsdom", "jest-environment-node", "jest-jasmine2", "jest-resolve", "jest-runner", "micromatch"], "effects": ["jest-cli"], "range": ">=18.1.0", "nodes": ["node_modules/jest-config"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-environment-jsdom": {"name": "jest-environment-jsdom", "severity": "moderate", "isDirect": false, "via": ["@jest/environment", "@jest/fake-timers"], "effects": ["jest-config", "jest-runner"], "range": ">=24.2.0-alpha.0", "nodes": ["node_modules/jest-environment-jsdom"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-environment-node": {"name": "jest-environment-node", "severity": "moderate", "isDirect": false, "via": ["@jest/environment", "@jest/fake-timers"], "effects": ["jest-runner"], "range": ">=24.2.0-alpha.0", "nodes": ["node_modules/jest-environment-node"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-haste-map": {"name": "jest-haste-map", "severity": "moderate", "isDirect": false, "via": ["micromatch"], "effects": ["@jest/reporters", "@jest/test-sequencer", "jest-resolve", "jest-runner", "jest-runtime", "jest-snapshot"], "range": ">=18.1.0", "nodes": ["node_modules/jest-haste-map"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-jasmine2": {"name": "jest-jasmine2", "severity": "moderate", "isDirect": false, "via": ["@jest/environment", "@jest/test-result", "expect", "jest-message-util", "jest-runtime", "jest-snapshot"], "effects": ["jest-config"], "range": ">=18.5.0-alpha.7da3df39", "nodes": ["node_modules/jest-jasmine2"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-message-util": {"name": "jest-message-util", "severity": "moderate", "isDirect": false, "via": ["micromatch"], "effects": ["@jest/console", "@jest/fake-timers", "expect", "jest-circus", "jest-jasmine2", "jest-runtime", "jest-snapshot"], "range": ">=18.5.0-alpha.7da3df39", "nodes": ["node_modules/jest-message-util"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-resolve": {"name": "jest-resolve", "severity": "moderate", "isDirect": false, "via": ["jest-haste-map"], "effects": ["@jest/core", "@jest/reporters", "jest-config", "jest-runner", "jest-runtime"], "range": "18.1.0 - 19.0.2 || 24.2.0-alpha.0 - 24.5.0 || >=27.1.0", "nodes": ["node_modules/jest-resolve"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-resolve-dependencies": {"name": "jest-resolve-dependencies", "severity": "moderate", "isDirect": false, "via": ["jest-snapshot"], "effects": [], "range": ">=27.0.0-next.0", "nodes": ["node_modules/jest-resolve-dependencies"], "fixAvailable": true}, "jest-runner": {"name": "jest-runner", "severity": "moderate", "isDirect": false, "via": ["@jest/console", "@jest/environment", "@jest/test-result", "@jest/transform", "jest-environment-jsdom", "jest-environment-node", "jest-haste-map", "jest-message-util", "jest-resolve", "jest-runtime"], "effects": ["jest-config"], "range": ">=21.0.0-alpha.1", "nodes": ["node_modules/jest-runner"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-runtime": {"name": "jest-runtime", "severity": "moderate", "isDirect": false, "via": ["@jest/environment", "@jest/fake-timers", "@jest/globals", "@jest/test-result", "@jest/transform", "jest-haste-map", "jest-message-util", "jest-resolve", "jest-snapshot"], "effects": ["@jest/test-sequencer", "jest-circus", "jest-jasmine2", "jest-runner"], "range": ">=18.1.0", "nodes": ["node_modules/jest-runtime"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-snapshot": {"name": "jest-snapshot", "severity": "moderate", "isDirect": false, "via": ["@jest/transform", "expect", "jest-haste-map", "jest-message-util"], "effects": ["@jest/core", "jest-circus", "jest-jasmine2", "jest-resolve-dependencies", "jest-runtime"], "range": ">=23.3.0", "nodes": ["node_modules/jest-snapshot"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-watcher": {"name": "jest-watcher", "severity": "moderate", "isDirect": false, "via": ["@jest/test-result"], "effects": [], "range": ">=25.4.0", "nodes": ["node_modules/jest-watcher"], "fixAvailable": true}, "json5": {"name": "json5", "severity": "high", "isDirect": false, "via": [{"source": 1096543, "name": "json5", "dependency": "json5", "title": "Prototype Pollution in JSON5 via Parse Method", "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h", "severity": "high", "cwe": ["CWE-1321"], "cvss": {"score": 7.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"}, "range": "<1.0.2"}], "effects": ["babel-core"], "range": "<1.0.2", "nodes": ["node_modules/babel-core/node_modules/json5"], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "liftup": {"name": "liftup", "severity": "moderate", "isDirect": false, "via": ["findup-sync"], "effects": ["grunt-cli"], "range": "*", "nodes": ["node_modules/liftup"], "fixAvailable": {"name": "grunt", "version": "1.5.3", "isSemVerMajor": true}}, "micromatch": {"name": "micromatch", "severity": "moderate", "isDirect": false, "via": [{"source": 1098615, "name": "micromatch", "dependency": "micromatch", "title": "Regular Expression Denial of Service (ReDoS) in micromatch", "url": "https://github.com/advisories/GHSA-952p-6rrq-rcjv", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": "<=4.0.7"}], "effects": ["@jest/core", "@jest/transform", "fast-glob", "findup-sync", "jest-config", "jest-haste-map", "jest-message-util", "stylelint"], "range": "*", "nodes": ["", "node_modules/micromatch"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "postcss": {"name": "postcss", "severity": "moderate", "isDirect": false, "via": [{"source": 1094544, "name": "postcss", "dependency": "postcss", "title": "PostCSS line return parsing error", "url": "https://github.com/advisories/GHSA-7fh5-64p2-3v2j", "severity": "moderate", "cwe": ["CWE-74", "CWE-144"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": "<8.4.31"}], "effects": [], "range": "<8.4.31", "nodes": [""], "fixAvailable": true}, "stylelint": {"name": "stylelint", "severity": "moderate", "isDirect": false, "via": ["fast-glob", "globby", "micromatch"], "effects": ["grunt-stylelint", "stylelint-config-recommended", "stylelint-config-wikimedia", "stylelint-no-unsupported-browser-features"], "range": ">=7.7.1", "nodes": ["node_modules/stylelint"], "fixAvailable": {"name": "grunt-stylelint", "version": "0.6.0", "isSemVerMajor": true}}, "stylelint-config-recommended": {"name": "stylelint-config-recommended", "severity": "moderate", "isDirect": false, "via": ["stylelint"], "effects": ["stylelint-config-wikimedia"], "range": "*", "nodes": ["node_modules/stylelint-config-recommended"], "fixAvailable": {"name": "stylelint-config-wikimedia", "version": "0.3.0", "isSemVerMajor": true}}, "stylelint-config-wikimedia": {"name": "stylelint-config-wikimedia", "severity": "moderate", "isDirect": true, "via": ["stylelint", "stylelint-config-recommended", "stylelint-no-unsupported-browser-features"], "effects": [], "range": ">=0.4.0", "nodes": ["node_modules/stylelint-config-wikimedia"], "fixAvailable": {"name": "stylelint-config-wikimedia", "version": "0.3.0", "isSemVerMajor": true}}, "stylelint-no-unsupported-browser-features": {"name": "stylelint-no-unsupported-browser-features", "severity": "moderate", "isDirect": false, "via": ["stylelint"], "effects": ["stylelint-config-wikimedia"], "range": ">=4.0.0", "nodes": ["node_modules/stylelint-no-unsupported-browser-features"], "fixAvailable": {"name": "stylelint-config-wikimedia", "version": "0.3.0", "isSemVerMajor": true}}, "ws": {"name": "ws", "severity": "high", "isDirect": false, "via": [{"source": 1098393, "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": ">=7.0.0 <7.5.10"}], "effects": [], "range": "7.0.0 - 7.5.9", "nodes": [""], "fixAvailable": true}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 43, "high": 4, "critical": 5, "total": 52}, "dependencies": {"prod": 1, "dev": 986, "optional": 1, "peer": 1, "peerOptional": 0, "total": 986}}}}
$ /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: '@es-joy/jsdoccomment@0.23.6',
npm WARN EBADENGINE   required: { node: '^12 || ^14 || ^16 || ^17' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'eslint-plugin-jsdoc@39.2.2',
npm WARN EBADENGINE   required: { node: '^14 || ^16 || ^17' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
--- stdout ---

added 985 packages, and audited 986 packages in 15s

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

# npm audit report

babel-traverse  *
Severity: critical
Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code - https://github.com/advisories/GHSA-67hx-6x53-jw92
fix available via `npm audit fix --force`
Will install babel-core@4.7.16, which is a breaking change
node_modules/babel-traverse
  babel-core  5.8.20 - 7.0.0-beta.3
  Depends on vulnerable versions of babel-helpers
  Depends on vulnerable versions of babel-register
  Depends on vulnerable versions of babel-template
  Depends on vulnerable versions of babel-traverse
  Depends on vulnerable versions of json5
  node_modules/babel-core
    babel-register  *
    Depends on vulnerable versions of babel-core
    node_modules/babel-register
  babel-template  *
  Depends on vulnerable versions of babel-traverse
  node_modules/babel-template
    babel-helpers  *
    Depends on vulnerable versions of babel-template
    node_modules/babel-helpers

json5  <1.0.2
Severity: high
Prototype Pollution in JSON5 via Parse Method - https://github.com/advisories/GHSA-9c47-m6qq-7p4h
fix available via `npm audit fix --force`
Will install babel-core@4.7.16, which is a breaking change
node_modules/babel-core/node_modules/json5

micromatch  *
Severity: moderate
Regular Expression Denial of Service (ReDoS) in micromatch - https://github.com/advisories/GHSA-952p-6rrq-rcjv
No fix available
node_modules/micromatch
  @jest/core  *
  Depends on vulnerable versions of @jest/console
  Depends on vulnerable versions of @jest/reporters
  Depends on vulnerable versions of @jest/test-result
  Depends on vulnerable versions of @jest/transform
  Depends on vulnerable versions of jest-config
  Depends on vulnerable versions of jest-haste-map
  Depends on vulnerable versions of jest-message-util
  Depends on vulnerable versions of jest-resolve
  Depends on vulnerable versions of jest-resolve-dependencies
  Depends on vulnerable versions of jest-runner
  Depends on vulnerable versions of jest-runtime
  Depends on vulnerable versions of jest-snapshot
  Depends on vulnerable versions of jest-watcher
  Depends on vulnerable versions of micromatch
  node_modules/@jest/core
    jest  >=24.2.0-alpha.0
    Depends on vulnerable versions of @jest/core
    Depends on vulnerable versions of jest-cli
    node_modules/jest
      @vue/vue3-jest  *
      Depends on vulnerable versions of babel-jest
      Depends on vulnerable versions of jest
      node_modules/@vue/vue3-jest
    jest-cli  >=23.5.0
    Depends on vulnerable versions of @jest/core
    Depends on vulnerable versions of @jest/test-result
    Depends on vulnerable versions of jest-config
    node_modules/jest-cli
  @jest/transform  *
  Depends on vulnerable versions of jest-haste-map
  Depends on vulnerable versions of micromatch
  node_modules/@jest/transform
    @jest/reporters  *
    Depends on vulnerable versions of @jest/console
    Depends on vulnerable versions of @jest/test-result
    Depends on vulnerable versions of @jest/transform
    Depends on vulnerable versions of jest-haste-map
    Depends on vulnerable versions of jest-resolve
    node_modules/@jest/reporters
    babel-jest  >=24.2.0-alpha.0
    Depends on vulnerable versions of @jest/transform
    node_modules/babel-jest
      jest-config  >=18.1.0
      Depends on vulnerable versions of @jest/test-sequencer
      Depends on vulnerable versions of babel-jest
      Depends on vulnerable versions of jest-circus
      Depends on vulnerable versions of jest-environment-jsdom
      Depends on vulnerable versions of jest-environment-node
      Depends on vulnerable versions of jest-jasmine2
      Depends on vulnerable versions of jest-resolve
      Depends on vulnerable versions of jest-runner
      Depends on vulnerable versions of micromatch
      node_modules/jest-config
    jest-runner  >=21.0.0-alpha.1
    Depends on vulnerable versions of @jest/console
    Depends on vulnerable versions of @jest/environment
    Depends on vulnerable versions of @jest/test-result
    Depends on vulnerable versions of @jest/transform
    Depends on vulnerable versions of jest-environment-jsdom
    Depends on vulnerable versions of jest-environment-node
    Depends on vulnerable versions of jest-haste-map
    Depends on vulnerable versions of jest-message-util
    Depends on vulnerable versions of jest-resolve
    Depends on vulnerable versions of jest-runtime
    node_modules/jest-runner
    jest-runtime  >=18.1.0
    Depends on vulnerable versions of @jest/environment
    Depends on vulnerable versions of @jest/fake-timers
    Depends on vulnerable versions of @jest/globals
    Depends on vulnerable versions of @jest/test-result
    Depends on vulnerable versions of @jest/transform
    Depends on vulnerable versions of jest-haste-map
    Depends on vulnerable versions of jest-message-util
    Depends on vulnerable versions of jest-resolve
    Depends on vulnerable versions of jest-snapshot
    node_modules/jest-runtime
      @jest/test-sequencer  *
      Depends on vulnerable versions of @jest/test-result
      Depends on vulnerable versions of jest-haste-map
      Depends on vulnerable versions of jest-runtime
      node_modules/@jest/test-sequencer
      jest-circus  >=20.1.0-alpha.1
      Depends on vulnerable versions of @jest/environment
      Depends on vulnerable versions of @jest/test-result
      Depends on vulnerable versions of expect
      Depends on vulnerable versions of jest-message-util
      Depends on vulnerable versions of jest-runtime
      Depends on vulnerable versions of jest-snapshot
      node_modules/jest-circus
      jest-jasmine2  >=18.5.0-alpha.7da3df39
      Depends on vulnerable versions of @jest/environment
      Depends on vulnerable versions of @jest/test-result
      Depends on vulnerable versions of expect
      Depends on vulnerable versions of jest-message-util
      Depends on vulnerable versions of jest-runtime
      Depends on vulnerable versions of jest-snapshot
      node_modules/jest-jasmine2
    jest-snapshot  >=23.3.0
    Depends on vulnerable versions of @jest/transform
    Depends on vulnerable versions of expect
    Depends on vulnerable versions of jest-haste-map
    Depends on vulnerable versions of jest-message-util
    node_modules/jest-snapshot
      jest-resolve-dependencies  >=27.0.0-next.0
      Depends on vulnerable versions of jest-snapshot
      node_modules/jest-resolve-dependencies
  fast-glob  *
  Depends on vulnerable versions of micromatch
  node_modules/fast-glob
    globby  >=8.0.0
    Depends on vulnerable versions of fast-glob
    node_modules/globby
      @typescript-eslint/typescript-estree  >=3.10.2-alpha.0
      Depends on vulnerable versions of globby
      node_modules/@typescript-eslint/typescript-estree
        @typescript-eslint/utils  *
        Depends on vulnerable versions of @typescript-eslint/typescript-estree
        node_modules/@typescript-eslint/utils
          eslint-plugin-jest  >=26.0.0
          Depends on vulnerable versions of @typescript-eslint/utils
          node_modules/eslint-plugin-jest
      stylelint  >=7.7.1
      Depends on vulnerable versions of fast-glob
      Depends on vulnerable versions of globby
      Depends on vulnerable versions of micromatch
      node_modules/stylelint
        grunt-stylelint  >=0.7.0
        Depends on vulnerable versions of stylelint
        node_modules/grunt-stylelint
        stylelint-config-recommended  *
        Depends on vulnerable versions of stylelint
        node_modules/stylelint-config-recommended
          stylelint-config-wikimedia  >=0.4.0
          Depends on vulnerable versions of stylelint
          Depends on vulnerable versions of stylelint-config-recommended
          Depends on vulnerable versions of stylelint-no-unsupported-browser-features
          node_modules/stylelint-config-wikimedia
        stylelint-no-unsupported-browser-features  >=4.0.0
        Depends on vulnerable versions of stylelint
        node_modules/stylelint-no-unsupported-browser-features
  findup-sync  >=0.4.0
  Depends on vulnerable versions of micromatch
  node_modules/findup-sync
  node_modules/liftup/node_modules/findup-sync
    grunt  >=1.4.0
    Depends on vulnerable versions of findup-sync
    Depends on vulnerable versions of grunt-cli
    node_modules/grunt
    liftup  *
    Depends on vulnerable versions of findup-sync
    node_modules/liftup
      grunt-cli  >=1.4.0
      Depends on vulnerable versions of liftup
      node_modules/grunt-cli
  jest-haste-map  >=18.1.0
  Depends on vulnerable versions of micromatch
  node_modules/jest-haste-map
    jest-resolve  18.1.0 - 19.0.2 || 24.2.0-alpha.0 - 24.5.0 || >=27.1.0
    Depends on vulnerable versions of jest-haste-map
    node_modules/jest-resolve
  jest-message-util  >=18.5.0-alpha.7da3df39
  Depends on vulnerable versions of micromatch
  node_modules/jest-message-util
    @jest/console  >=25.4.0
    Depends on vulnerable versions of jest-message-util
    node_modules/@jest/console
      @jest/test-result  >=25.4.0
      Depends on vulnerable versions of @jest/console
      node_modules/@jest/test-result
        jest-watcher  >=25.4.0
        Depends on vulnerable versions of @jest/test-result
        node_modules/jest-watcher
    @jest/fake-timers  *
    Depends on vulnerable versions of jest-message-util
    node_modules/@jest/fake-timers
      @jest/environment  *
      Depends on vulnerable versions of @jest/fake-timers
      node_modules/@jest/environment
        @jest/globals  *
        Depends on vulnerable versions of @jest/environment
        Depends on vulnerable versions of expect
        node_modules/@jest/globals
        jest-environment-jsdom  >=24.2.0-alpha.0
        Depends on vulnerable versions of @jest/environment
        Depends on vulnerable versions of @jest/fake-timers
        node_modules/jest-environment-jsdom
      jest-environment-node  >=24.2.0-alpha.0
      Depends on vulnerable versions of @jest/environment
      Depends on vulnerable versions of @jest/fake-timers
      node_modules/jest-environment-node
    expect  >=21.0.0-beta.1
    Depends on vulnerable versions of jest-message-util
    node_modules/expect

48 vulnerabilities (42 moderate, 2 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.

--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@es-joy/jsdoccomment@0.23.6',
npm WARN EBADENGINE   required: { node: '^12 || ^14 || ^16 || ^17' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'eslint-plugin-jsdoc@39.2.2',
npm WARN EBADENGINE   required: { node: '^14 || ^16 || ^17' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
--- stdout ---

added 985 packages, and audited 986 packages in 11s

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

48 vulnerabilities (42 moderate, 2 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.

--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/store/mutations.test.js
PASS tests/jest/store/actions.test.js
  ● Console

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at /src/repo/resources/store/actions.js:334:7
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:516:19)

PASS tests/jest/components/QuickView.test.js
  ● Console

    console.warn
      [Vue warn]: Property "rootClasses" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      596 | 				return null;
      597 | 			}
    > 598 | 		},
          | 		  ^
      599 |
      600 | 		mimeType: function () {
      601 | 			return this.imageinfo[ 0 ].mime;

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.rootClasses [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:598:64)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

    console.warn
      [Vue warn]: Property "isImage" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      604 | 		playerOptions: function () {
      605 | 			if ( this.isVideo || this.isAudio ) {
    > 606 | 				return {
          | 				        ^
      607 | 					autoplay: false,
      608 | 					controls: true,
      609 | 					fluid: true,

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.isImage [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:606:64)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

    console.warn
      [Vue warn]: Property "isVideo" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      620 | 		/**
      621 | 		 * Emit a close event. If the user triggered this from the keyboard instead
    > 622 | 		 * of by clicking, add an additional parameter so that the parent knows to
          | 		                                                                          ^
      623 | 		 * restore focus to the originating search result.
      624 | 		 *
      625 | 		 * @param {Event} event

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.isVideo [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:622:88)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

    console.warn
      [Vue warn]: Property "isAudio" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      620 | 		/**
      621 | 		 * Emit a close event. If the user triggered this from the keyboard instead
    > 622 | 		 * of by clicking, add an additional parameter so that the parent knows to
          | 		                                                                          ^
      623 | 		 * restore focus to the originating search result.
      624 | 		 *
      625 | 		 * @param {Event} event

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.isAudio [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:622:104)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

    console.warn
      [Vue warn]: Property "displayName" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      658 | 		},
      659 |
    > 660 | 		/**
          | 		   ^
      661 | 		 * Set the height of the div wrapping the thumbnail image to the display
      662 | 		 * height of that image to avoid a layout jump when the image loads.
      663 | 		 */

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.displayName [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:660:503)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

    console.warn
      [Vue warn]: Property "description" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      662 | 		 * height of that image to avoid a layout jump when the image loads.
      663 | 		 */
    > 664 | 		getThumbnailWrapperStyle: function () {
          | 		                                       ^
      665 | 			var imgWidth, imgHeight, elWidth, height;
      666 |
      667 | 			if ( !this.imageinfo ) {

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.description [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:664:139)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

    console.warn
      [Vue warn]: Property "artist" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      664 | 		getThumbnailWrapperStyle: function () {
      665 | 			var imgWidth, imgHeight, elWidth, height;
    > 666 |
          | ^
      667 | 			if ( !this.imageinfo ) {
      668 | 				return;
      669 | 			}

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.artist [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:666:94)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

    console.warn
      [Vue warn]: Property "licenseText" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      668 | 				return;
      669 | 			}
    > 670 |
          | ^
      671 | 			imgWidth = this.imageinfo[ 0 ].width;
      672 | 			imgHeight = this.imageinfo[ 0 ].height;
      673 | 			elWidth = this.$refs.header.offsetWidth;

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.licenseText [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:670:234)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

    console.warn
      [Vue warn]: Property "displayName" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      682 | 				);
      683 | 			} else {
    > 684 | 				// A portrait-oriented image could be limited by several
          | 				                                                        ^
      685 | 				// constraints: the natural image height (e.g. an original file
      686 | 				// that's only 200px tall), the CSS-enforced max-height of the
      687 | 				// image (60vh), or the max-width of the container.

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.displayName [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:684:197)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

    console.warn
      [Vue warn]: Property "displayNameWithoutExtension" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      688 | 				height = Math.min(
      689 | 					imgHeight,
    > 690 | 					window.innerHeight * 0.6,
          | 					                         ^
      691 | 					( imgHeight * elWidth ) / imgWidth
      692 | 				);
      693 | 			}

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.displayNameWithoutExtension [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:690:106)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

    console.warn
      [Vue warn]: Property "creationDate" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      695 | 			// For very short images, we need to add some vertical padding so
      696 | 			// that the content below the image doesn't crowd the absolutely-
    > 697 | 			// positioned controls.
          | 			                       ^
      698 | 			if ( height < 100 ) {
      699 | 				height += 30;
      700 | 				// We'll use this to add a class to the image to add 15px of

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.creationDate [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:697:240)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

    console.warn
      [Vue warn]: Property "resolution" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      699 | 				height += 30;
      700 | 				// We'll use this to add a class to the image to add 15px of
    > 701 | 				// top and bottom padding.
          | 				                          ^
      702 | 				this.isExtraSmall = true;
      703 | 			}
      704 |

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.resolution [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:701:94)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

    console.warn
      [Vue warn]: Property "mimeType" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      701 | 				// top and bottom padding.
      702 | 				this.isExtraSmall = true;
    > 703 | 			}
          | 			 ^
      704 |
      705 | 			this.thumbnailWrapperStyle = {
      706 | 				height: height + 'px',

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at Object.mimeType [as get] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3134:17)
      at Proxy.render (resources/components/QuickView.vue:703:265)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:890:44)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5508:57)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)

PASS tests/jest/components/SearchResults.test.js
PASS tests/jest/mixins/autocompleteLookupHandler.test.js
PASS tests/jest/components/base/autocompleteSearchInput.test.js
  ● Console

    console.warn
      [Vue warn]: Invalid prop: type check failed for prop "modelValue". Expected String | Number, got Object  
        at <CdxTextInput id="tab__input" ref="input" modelValue= { value: 'active' }  ... > 
        at <SdAutocompleteSearchInput name="tab" label="actions" lookupResults= [ { value: 'active' } ]  ... > 
        at <VTUROOT>

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4035:13)
      at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4006:9)
      at updateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3819:9)
      at updateComponentPreRender (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5643:9)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5561:21)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at Object.instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)

PASS tests/jest/mixins/restoreHistoryHandler.test.js
PASS tests/jest/components/NamespaceFilterDialog.test.js
PASS tests/jest/components/app.test.js
PASS tests/jest/mixins/observer.test.js
PASS tests/jest/components/base/select.test.js
PASS tests/jest/store/store.test.js
PASS tests/jest/components/SearchFilters.test.js
PASS tests/jest/components/results/pageResult.test.js
PASS tests/jest/components/results/ImageResult.test.js
PASS tests/jest/components/results/videoResult.test.js
PASS tests/jest/components/results/otherResult.test.js
PASS tests/jest/components/base/selectMenu.test.js
PASS tests/jest/components/base/dialog.test.js
PASS tests/jest/components/results/audioResult.test.js
PASS tests/jest/store/getters.test.js
PASS tests/jest/components/base/copyTextLayout.test.js
PASS tests/jest/components/base/image.test.js
PASS tests/jest/components/UserNotice.test.js
PASS tests/jest/components/base/player.test.js
PASS tests/jest/components/DidYouMean.test.js
PASS tests/jest/components/EmptyState.test.js
  ● Console

    console.warn
      [Vue warn]: Invalid VNode type: Symbol(Comment) (symbol) 
        at <EmptyState ref="VTU_COMPONENT" > 
        at <VTUROOT>

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4987:21)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5515:21)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5622:56)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5636:9)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5418:9)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5376:17)

    console.warn
      [Vue warn]: Invalid VNode type: Symbol(Comment) (symbol) 
        at <EmptyState ref="VTU_COMPONENT" > 
        at <VTUROOT>

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4987:21)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5163:13)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5073:17)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5055:13)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4975:21)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5515:21)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)

    console.warn
      [Vue warn]: Invalid VNode type: Symbol(Comment) (symbol) 
        at <EmptyState ref="VTU_COMPONENT" > 
        at <VTUROOT>

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4987:21)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5163:13)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5073:17)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5055:13)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4975:21)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5515:21)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)

    console.warn
      [Vue warn]: Invalid VNode type: Symbol(Comment) (symbol) 
        at <EmptyState ref="VTU_COMPONENT" > 
        at <VTUROOT>

      at warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4987:21)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5163:13)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5073:17)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5055:13)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4975:21)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5515:21)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25)

PASS tests/jest/components/NoResults.test.js
PASS tests/jest/components/EndOfResults.test.js
PASS tests/jest/components/Spinner.test.js

Test Suites: 30 passed, 30 total
Tests:       6 todo, 467 passed, 473 total
Snapshots:   0 total
Time:        10.835 s
Ran all test suites.
--- stdout ---

> media-search@0.1.0 test
> grunt test && npm run test:unit

Running "eslint:all" (eslint) task

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

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

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

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

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

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

Done.

> media-search@0.1.0 test:unit
> jest

----------------------------------|---------|----------|---------|---------|----------------------------------------------------
File                              | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                  
----------------------------------|---------|----------|---------|---------|----------------------------------------------------
All files                         |   88.94 |    76.82 |   91.88 |   88.94 |                                                    
 resources                        |   55.55 |    33.33 |      60 |   55.55 |                                                    
  constants.js                    |     100 |      100 |     100 |     100 |                                                    
  ensureArray.js                  |       0 |        0 |       0 |       0 | 14-24                                              
  getLocationAgnosticMwApi.js     |   81.81 |       50 |     100 |   81.81 | 13,34                                              
 resources/components             |   88.93 |     78.7 |      93 |   88.93 |                                                    
  App.vue                         |   75.29 |       50 |      80 |   75.29 | 219-222,296,302,369-378,401-415,433-437            
  DidYouMean.vue                  |     100 |      100 |     100 |     100 |                                                    
  EmptyState.vue                  |     100 |      100 |     100 |     100 |                                                    
  EndOfResults.vue                |     100 |      100 |     100 |     100 |                                                    
  NamespaceFilterDialog.vue       |     100 |      100 |     100 |     100 |                                                    
  NoResults.vue                   |     100 |      100 |     100 |     100 |                                                    
  QuickView.vue                   |   92.68 |    87.35 |   94.87 |   92.68 | 554-582,655-656,668,723                            
  SearchError.vue                 |     100 |      100 |     100 |     100 |                                                    
  SearchFilters.vue               |   97.36 |    77.77 |   96.66 |   97.36 | 217,238                                            
  SearchResults.vue               |   84.25 |    74.07 |   93.33 |   84.25 | 439-460,516-532                                    
  Spinner.vue                     |     100 |      100 |     100 |     100 |                                                    
  UserNotice.vue                  |     100 |      100 |     100 |     100 |                                                    
 resources/components/base        |   88.26 |    78.31 |    90.8 |   88.26 |                                                    
  AutocompleteSearchInput.vue     |   80.39 |       64 |   84.61 |   80.39 | 224-232,302,388-404,419-420                        
  CopyTextLayout.vue              |     100 |      100 |     100 |     100 |                                                    
  Dialog.vue                      |     100 |      100 |     100 |     100 |                                                    
  Image.vue                       |     100 |      100 |     100 |     100 |                                                    
  Observer.vue                    |   66.66 |      100 |       0 |   66.66 | 38                                                 
  Player.vue                      |     100 |      100 |    87.5 |     100 |                                                    
  Select.vue                      |      80 |       64 |    90.9 |      80 | 167,320-341,362                                    
  SelectMenu.vue                  |   95.83 |      100 |     100 |   95.83 | 205                                                
 resources/components/base/mixins |   95.23 |    78.94 |    87.5 |   95.23 |                                                    
  observer.js                     |   95.23 |    78.94 |    87.5 |   95.23 | 59                                                 
 resources/components/results     |   90.16 |    56.25 |     100 |   90.16 |                                                    
  AudioResult.vue                 |     100 |      100 |     100 |     100 |                                                    
  ImageResult.vue                 |   92.85 |        0 |     100 |   92.85 | 112                                                
  OtherResult.vue                 |   88.88 |       70 |     100 |   88.88 | 82,96                                              
  PageResult.vue                  |   82.35 |       40 |     100 |   82.35 | 122,173,177                                        
  VideoResult.vue                 |     100 |      100 |     100 |     100 |                                                    
 resources/mixins                 |   94.02 |    76.71 |   94.73 |   94.02 |                                                    
  autocompleteLookupHandler.js    |     100 |    78.94 |      95 |     100 | 70,119-139,205                                     
  restoreHistoryHandler.js        |   94.44 |     87.5 |     100 |   94.44 | 61-62                                              
  searchResult.js                 |   87.87 |    72.22 |    87.5 |   87.87 | 60,82,107,125                                      
  searchResultTimeBased.js        |   81.81 |    58.33 |     100 |   81.81 | 17,34                                              
 resources/models                 |     100 |      100 |     100 |     100 |                                                    
  SearchFilter.js                 |     100 |      100 |     100 |     100 |                                                    
 resources/plugins                |       0 |      100 |       0 |       0 |                                                    
  eventLogger.js                  |       0 |      100 |       0 |       0 | 6-22                                               
 resources/store                  |   91.95 |    76.72 |    93.5 |   91.95 |                                                    
  actions.js                      |   91.22 |    83.16 |   84.84 |   91.22 | 71,101,129,151,169-170,229,237,308,388-396,441-442 
  getters.js                      |     100 |      100 |     100 |     100 |                                                    
  index.js                        |       0 |      100 |     100 |       0 | 3-12                                               
  mutations.js                    |     100 |      100 |     100 |     100 |                                                    
  state.js                        |     100 |    52.38 |     100 |     100 | 29-75                                              
----------------------------------|---------|----------|---------|---------|----------------------------------------------------

--- end ---
{"1096886": {"source": 1096886, "name": "@babel/traverse", "dependency": "@babel/traverse", "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code", "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92", "severity": "critical", "cwe": ["CWE-184", "CWE-697"], "cvss": {"score": 9.4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"}, "range": "<7.23.2"}}
Upgrading n:@babel/traverse from 7.18.9 -> 7.25.4
{}
{}
{}
{"1098094": {"source": 1098094, "name": "braces", "dependency": "braces", "title": "Uncontrolled resource consumption in braces", "url": "https://github.com/advisories/GHSA-grv7-fg5c-xmjg", "severity": "high", "cwe": ["CWE-400", "CWE-1050"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<3.0.3"}}
Upgrading n:braces from 3.0.2 -> 3.0.3
{}
{}
{"1094544": {"source": 1094544, "name": "postcss", "dependency": "postcss", "title": "PostCSS line return parsing error", "url": "https://github.com/advisories/GHSA-7fh5-64p2-3v2j", "severity": "moderate", "cwe": ["CWE-74", "CWE-144"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": "<8.4.31"}}
Upgrading n:postcss from 8.4.21 -> 8.4.41
{"1098393": {"source": 1098393, "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": ">=7.0.0 <7.5.10"}}
Upgrading n:ws from 7.5.9 -> 7.5.10
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

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

* @babel/traverse: 7.18.9 → 7.25.4
  * https://github.com/advisories/GHSA-67hx-6x53-jw92
* braces: 3.0.2 → 3.0.3
  * https://github.com/advisories/GHSA-grv7-fg5c-xmjg
* postcss: 8.4.21 → 8.4.41
  * https://github.com/advisories/GHSA-7fh5-64p2-3v2j
* ws: 7.5.9 → 7.5.10
  * https://github.com/advisories/GHSA-3h5v-q93c-6h6q

Additional changes:
* Dropped default excluded folder(s) from .phpcs.xml (T274684).
* composer.json: Updated phpcs command in composer test (T280592).
* composer.json: Added phpcs command to scripts (T280592).

$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmpz8d9hkk_
--- stdout ---
[REL1_41 8554531] build: Updating npm dependencies
 3 files changed, 266 insertions(+), 239 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From 85545316d3c662b6314135bbba9192840438050f Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Thu, 22 Aug 2024 15:13:36 +0000
Subject: [PATCH] build: Updating npm dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* @babel/traverse: 7.18.9 → 7.25.4
  * https://github.com/advisories/GHSA-67hx-6x53-jw92
* braces: 3.0.2 → 3.0.3
  * https://github.com/advisories/GHSA-grv7-fg5c-xmjg
* postcss: 8.4.21 → 8.4.41
  * https://github.com/advisories/GHSA-7fh5-64p2-3v2j
* ws: 7.5.9 → 7.5.10
  * https://github.com/advisories/GHSA-3h5v-q93c-6h6q

Additional changes:
* Dropped default excluded folder(s) from .phpcs.xml (T274684).
* composer.json: Updated phpcs command in composer test (T280592).
* composer.json: Added phpcs command to scripts (T280592).

Change-Id: I2d223661a323c781c6819abad7afd8c6bc913e4a
---
 .phpcs.xml        |   1 -
 composer.json     |   5 +-
 package-lock.json | 499 ++++++++++++++++++++++++----------------------
 3 files changed, 266 insertions(+), 239 deletions(-)

diff --git a/.phpcs.xml b/.phpcs.xml
index 02af787..eddb6dc 100644
--- a/.phpcs.xml
+++ b/.phpcs.xml
@@ -4,5 +4,4 @@
 	<file>.</file>
 	<arg name="extensions" value="php" />
 	<arg name="encoding" value="UTF-8" />
-	<exclude-pattern>vendor</exclude-pattern>
 </ruleset>
diff --git a/composer.json b/composer.json
index 92660b7..2807546 100644
--- a/composer.json
+++ b/composer.json
@@ -13,9 +13,10 @@
 		],
 		"test": [
 			"parallel-lint . --exclude vendor --exclude node_modules",
-			"phpcs -p -s",
+			"@phpcs",
 			"minus-x check ."
 		],
-		"phan": "phan -d . --long-progress-bar"
+		"phan": "phan -d . --long-progress-bar",
+		"phpcs": "phpcs -sp --cache"
 	}
 }
diff --git a/package-lock.json b/package-lock.json
index c37667c..2f3707c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -43,12 +43,13 @@
 			}
 		},
 		"node_modules/@babel/code-frame": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
-			"integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+			"version": "7.24.7",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
+			"integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
 			"dev": true,
 			"dependencies": {
-				"@babel/highlight": "^7.18.6"
+				"@babel/highlight": "^7.24.7",
+				"picocolors": "^1.0.0"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -94,13 +95,14 @@
 			}
 		},
 		"node_modules/@babel/generator": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz",
-			"integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.4.tgz",
+			"integrity": "sha512-NFtZmZsyzDPJnk9Zg3BbTfKKc9UlHYzD0E//p2Z3B9nCwwtJW9T0gVbCz8+fBngnn4zf1Dr3IK8PHQQHq0lDQw==",
 			"dev": true,
 			"dependencies": {
-				"@babel/types": "^7.18.9",
-				"@jridgewell/gen-mapping": "^0.3.2",
+				"@babel/types": "^7.25.4",
+				"@jridgewell/gen-mapping": "^0.3.5",
+				"@jridgewell/trace-mapping": "^0.3.25",
 				"jsesc": "^2.5.1"
 			},
 			"engines": {
@@ -108,14 +110,14 @@
 			}
 		},
 		"node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
-			"version": "0.3.2",
-			"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
-			"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+			"version": "0.3.5",
+			"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+			"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
 			"dev": true,
 			"dependencies": {
-				"@jridgewell/set-array": "^1.0.1",
+				"@jridgewell/set-array": "^1.2.1",
 				"@jridgewell/sourcemap-codec": "^1.4.10",
-				"@jridgewell/trace-mapping": "^0.3.9"
+				"@jridgewell/trace-mapping": "^0.3.24"
 			},
 			"engines": {
 				"node": ">=6.0.0"
@@ -398,10 +400,19 @@
 				"node": ">=6.9.0"
 			}
 		},
+		"node_modules/@babel/helper-string-parser": {
+			"version": "7.24.8",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
+			"integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=6.9.0"
+			}
+		},
 		"node_modules/@babel/helper-validator-identifier": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
-			"integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
+			"version": "7.24.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+			"integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
@@ -446,24 +457,28 @@
 			}
 		},
 		"node_modules/@babel/highlight": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
-			"integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+			"version": "7.24.7",
+			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
+			"integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-validator-identifier": "^7.18.6",
-				"chalk": "^2.0.0",
-				"js-tokens": "^4.0.0"
+				"@babel/helper-validator-identifier": "^7.24.7",
+				"chalk": "^2.4.2",
+				"js-tokens": "^4.0.0",
+				"picocolors": "^1.0.0"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/parser": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
-			"integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.4.tgz",
+			"integrity": "sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==",
 			"dev": true,
+			"dependencies": {
+				"@babel/types": "^7.25.4"
+			},
 			"bin": {
 				"parser": "bin/babel-parser.js"
 			},
@@ -1615,34 +1630,31 @@
 			"dev": true
 		},
 		"node_modules/@babel/template": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz",
-			"integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==",
+			"version": "7.25.0",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
+			"integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.18.6",
-				"@babel/parser": "^7.18.6",
-				"@babel/types": "^7.18.6"
+				"@babel/code-frame": "^7.24.7",
+				"@babel/parser": "^7.25.0",
+				"@babel/types": "^7.25.0"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/traverse": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz",
-			"integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.4.tgz",
+			"integrity": "sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.18.6",
-				"@babel/generator": "^7.18.9",
-				"@babel/helper-environment-visitor": "^7.18.9",
-				"@babel/helper-function-name": "^7.18.9",
-				"@babel/helper-hoist-variables": "^7.18.6",
-				"@babel/helper-split-export-declaration": "^7.18.6",
-				"@babel/parser": "^7.18.9",
-				"@babel/types": "^7.18.9",
-				"debug": "^4.1.0",
+				"@babel/code-frame": "^7.24.7",
+				"@babel/generator": "^7.25.4",
+				"@babel/parser": "^7.25.4",
+				"@babel/template": "^7.25.0",
+				"@babel/types": "^7.25.4",
+				"debug": "^4.3.1",
 				"globals": "^11.1.0"
 			},
 			"engines": {
@@ -1650,12 +1662,13 @@
 			}
 		},
 		"node_modules/@babel/types": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz",
-			"integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.4.tgz",
+			"integrity": "sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-validator-identifier": "^7.18.6",
+				"@babel/helper-string-parser": "^7.24.8",
+				"@babel/helper-validator-identifier": "^7.24.7",
 				"to-fast-properties": "^2.0.0"
 			},
 			"engines": {
@@ -2507,9 +2520,9 @@
 			}
 		},
 		"node_modules/@jridgewell/set-array": {
-			"version": "1.1.2",
-			"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
-			"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+			"version": "1.2.1",
+			"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+			"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.0.0"
@@ -2522,13 +2535,13 @@
 			"dev": true
 		},
 		"node_modules/@jridgewell/trace-mapping": {
-			"version": "0.3.14",
-			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
-			"integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
+			"version": "0.3.25",
+			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+			"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
 			"dev": true,
 			"dependencies": {
-				"@jridgewell/resolve-uri": "^3.0.3",
-				"@jridgewell/sourcemap-codec": "^1.4.10"
+				"@jridgewell/resolve-uri": "^3.1.0",
+				"@jridgewell/sourcemap-codec": "^1.4.14"
 			}
 		},
 		"node_modules/@mdn/browser-compat-data": {
@@ -2755,13 +2768,13 @@
 			"dev": true
 		},
 		"node_modules/@typescript-eslint/scope-manager": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.11.tgz",
-			"integrity": "sha512-dHFOsxoLFtrIcSj5h0QoBT/89hxQONwmn3FOQ0GOQcLOOXm+MIrS8zEAhs4tWl5MraxCY3ZJpaXQQdFMc2Tu+Q==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+			"integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
 			"dev": true,
 			"dependencies": {
-				"@typescript-eslint/types": "5.59.11",
-				"@typescript-eslint/visitor-keys": "5.59.11"
+				"@typescript-eslint/types": "5.62.0",
+				"@typescript-eslint/visitor-keys": "5.62.0"
 			},
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -2772,9 +2785,9 @@
 			}
 		},
 		"node_modules/@typescript-eslint/types": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.11.tgz",
-			"integrity": "sha512-epoN6R6tkvBYSc+cllrz+c2sOFWkbisJZWkOE+y3xHtvYaOE6Wk6B8e114McRJwFRjGvYdJwLXQH5c9osME/AA==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+			"integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
 			"dev": true,
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -2785,13 +2798,13 @@
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.11.tgz",
-			"integrity": "sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+			"integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
 			"dev": true,
 			"dependencies": {
-				"@typescript-eslint/types": "5.59.11",
-				"@typescript-eslint/visitor-keys": "5.59.11",
+				"@typescript-eslint/types": "5.62.0",
+				"@typescript-eslint/visitor-keys": "5.62.0",
 				"debug": "^4.3.4",
 				"globby": "^11.1.0",
 				"is-glob": "^4.0.3",
@@ -2812,13 +2825,10 @@
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
-			"version": "7.5.2",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
-			"integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
+			"version": "7.6.3",
+			"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+			"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
 			"dev": true,
-			"dependencies": {
-				"lru-cache": "^6.0.0"
-			},
 			"bin": {
 				"semver": "bin/semver.js"
 			},
@@ -2827,17 +2837,17 @@
 			}
 		},
 		"node_modules/@typescript-eslint/utils": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.11.tgz",
-			"integrity": "sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+			"integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
 			"dev": true,
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.2.0",
 				"@types/json-schema": "^7.0.9",
 				"@types/semver": "^7.3.12",
-				"@typescript-eslint/scope-manager": "5.59.11",
-				"@typescript-eslint/types": "5.59.11",
-				"@typescript-eslint/typescript-estree": "5.59.11",
+				"@typescript-eslint/scope-manager": "5.62.0",
+				"@typescript-eslint/types": "5.62.0",
+				"@typescript-eslint/typescript-estree": "5.62.0",
 				"eslint-scope": "^5.1.1",
 				"semver": "^7.3.7"
 			},
@@ -2890,12 +2900,12 @@
 			}
 		},
 		"node_modules/@typescript-eslint/visitor-keys": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.11.tgz",
-			"integrity": "sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+			"integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
 			"dev": true,
 			"dependencies": {
-				"@typescript-eslint/types": "5.59.11",
+				"@typescript-eslint/types": "5.62.0",
 				"eslint-visitor-keys": "^3.3.0"
 			},
 			"engines": {
@@ -3868,12 +3878,12 @@
 			}
 		},
 		"node_modules/braces": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-			"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+			"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
 			"dev": true,
 			"dependencies": {
-				"fill-range": "^7.0.1"
+				"fill-range": "^7.1.1"
 			},
 			"engines": {
 				"node": ">=8"
@@ -5702,9 +5712,9 @@
 			"dev": true
 		},
 		"node_modules/fast-glob": {
-			"version": "3.2.12",
-			"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
-			"integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+			"version": "3.3.2",
+			"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+			"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
 			"dev": true,
 			"dependencies": {
 				"@nodelib/fs.stat": "^2.0.2",
@@ -5781,9 +5791,9 @@
 			}
 		},
 		"node_modules/fill-range": {
-			"version": "7.0.1",
-			"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-			"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+			"version": "7.1.1",
+			"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+			"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
 			"dev": true,
 			"dependencies": {
 				"to-regex-range": "^5.0.1"
@@ -9376,12 +9386,12 @@
 			}
 		},
 		"node_modules/micromatch": {
-			"version": "4.0.5",
-			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
-			"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+			"version": "4.0.7",
+			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
+			"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
 			"dev": true,
 			"dependencies": {
-				"braces": "^3.0.2",
+				"braces": "^3.0.3",
 				"picomatch": "^2.3.1"
 			},
 			"engines": {
@@ -9506,10 +9516,16 @@
 			}
 		},
 		"node_modules/nanoid": {
-			"version": "3.3.4",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
-			"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+			"version": "3.3.7",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+			"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/ai"
+				}
+			],
 			"bin": {
 				"nanoid": "bin/nanoid.cjs"
 			},
@@ -9902,9 +9918,9 @@
 			}
 		},
 		"node_modules/picocolors": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-			"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
+			"integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
 			"dev": true
 		},
 		"node_modules/picomatch": {
@@ -9950,9 +9966,9 @@
 			}
 		},
 		"node_modules/postcss": {
-			"version": "8.4.21",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
-			"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+			"version": "8.4.41",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz",
+			"integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
 			"dev": true,
 			"funding": [
 				{
@@ -9962,12 +9978,16 @@
 				{
 					"type": "tidelift",
 					"url": "https://tidelift.com/funding/github/npm/postcss"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/ai"
 				}
 			],
 			"dependencies": {
-				"nanoid": "^3.3.4",
-				"picocolors": "^1.0.0",
-				"source-map-js": "^1.0.2"
+				"nanoid": "^3.3.7",
+				"picocolors": "^1.0.1",
+				"source-map-js": "^1.2.0"
 			},
 			"engines": {
 				"node": "^10 || ^12 || >=14"
@@ -10703,9 +10723,9 @@
 			}
 		},
 		"node_modules/source-map-js": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
-			"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+			"version": "1.2.0",
+			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+			"integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
 			"dev": true,
 			"engines": {
 				"node": ">=0.10.0"
@@ -11873,9 +11893,9 @@
 			}
 		},
 		"node_modules/ws": {
-			"version": "7.5.9",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
-			"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+			"version": "7.5.10",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+			"integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
 			"dev": true,
 			"engines": {
 				"node": ">=8.3.0"
@@ -12004,12 +12024,13 @@
 			}
 		},
 		"@babel/code-frame": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
-			"integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+			"version": "7.24.7",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
+			"integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
 			"dev": true,
 			"requires": {
-				"@babel/highlight": "^7.18.6"
+				"@babel/highlight": "^7.24.7",
+				"picocolors": "^1.0.0"
 			}
 		},
 		"@babel/compat-data": {
@@ -12042,25 +12063,26 @@
 			}
 		},
 		"@babel/generator": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz",
-			"integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.4.tgz",
+			"integrity": "sha512-NFtZmZsyzDPJnk9Zg3BbTfKKc9UlHYzD0E//p2Z3B9nCwwtJW9T0gVbCz8+fBngnn4zf1Dr3IK8PHQQHq0lDQw==",
 			"dev": true,
 			"requires": {
-				"@babel/types": "^7.18.9",
-				"@jridgewell/gen-mapping": "^0.3.2",
+				"@babel/types": "^7.25.4",
+				"@jridgewell/gen-mapping": "^0.3.5",
+				"@jridgewell/trace-mapping": "^0.3.25",
 				"jsesc": "^2.5.1"
 			},
 			"dependencies": {
 				"@jridgewell/gen-mapping": {
-					"version": "0.3.2",
-					"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
-					"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+					"version": "0.3.5",
+					"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+					"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
 					"dev": true,
 					"requires": {
-						"@jridgewell/set-array": "^1.0.1",
+						"@jridgewell/set-array": "^1.2.1",
 						"@jridgewell/sourcemap-codec": "^1.4.10",
-						"@jridgewell/trace-mapping": "^0.3.9"
+						"@jridgewell/trace-mapping": "^0.3.24"
 					}
 				}
 			}
@@ -12270,10 +12292,16 @@
 				"@babel/types": "^7.18.6"
 			}
 		},
+		"@babel/helper-string-parser": {
+			"version": "7.24.8",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
+			"integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
+			"dev": true
+		},
 		"@babel/helper-validator-identifier": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
-			"integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
+			"version": "7.24.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+			"integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
 			"dev": true
 		},
 		"@babel/helper-validator-option": {
@@ -12306,21 +12334,25 @@
 			}
 		},
 		"@babel/highlight": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
-			"integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+			"version": "7.24.7",
+			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
+			"integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
 			"dev": true,
 			"requires": {
-				"@babel/helper-validator-identifier": "^7.18.6",
-				"chalk": "^2.0.0",
-				"js-tokens": "^4.0.0"
+				"@babel/helper-validator-identifier": "^7.24.7",
+				"chalk": "^2.4.2",
+				"js-tokens": "^4.0.0",
+				"picocolors": "^1.0.0"
 			}
 		},
 		"@babel/parser": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
-			"integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==",
-			"dev": true
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.4.tgz",
+			"integrity": "sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==",
+			"dev": true,
+			"requires": {
+				"@babel/types": "^7.25.4"
+			}
 		},
 		"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
 			"version": "7.18.6",
@@ -13093,41 +13125,39 @@
 			}
 		},
 		"@babel/template": {
-			"version": "7.18.6",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz",
-			"integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==",
+			"version": "7.25.0",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
+			"integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
 			"dev": true,
 			"requires": {
-				"@babel/code-frame": "^7.18.6",
-				"@babel/parser": "^7.18.6",
-				"@babel/types": "^7.18.6"
+				"@babel/code-frame": "^7.24.7",
+				"@babel/parser": "^7.25.0",
+				"@babel/types": "^7.25.0"
 			}
 		},
 		"@babel/traverse": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz",
-			"integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.4.tgz",
+			"integrity": "sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==",
 			"dev": true,
 			"requires": {
-				"@babel/code-frame": "^7.18.6",
-				"@babel/generator": "^7.18.9",
-				"@babel/helper-environment-visitor": "^7.18.9",
-				"@babel/helper-function-name": "^7.18.9",
-				"@babel/helper-hoist-variables": "^7.18.6",
-				"@babel/helper-split-export-declaration": "^7.18.6",
-				"@babel/parser": "^7.18.9",
-				"@babel/types": "^7.18.9",
-				"debug": "^4.1.0",
+				"@babel/code-frame": "^7.24.7",
+				"@babel/generator": "^7.25.4",
+				"@babel/parser": "^7.25.4",
+				"@babel/template": "^7.25.0",
+				"@babel/types": "^7.25.4",
+				"debug": "^4.3.1",
 				"globals": "^11.1.0"
 			}
 		},
 		"@babel/types": {
-			"version": "7.18.9",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz",
-			"integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==",
+			"version": "7.25.4",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.4.tgz",
+			"integrity": "sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==",
 			"dev": true,
 			"requires": {
-				"@babel/helper-validator-identifier": "^7.18.6",
+				"@babel/helper-string-parser": "^7.24.8",
+				"@babel/helper-validator-identifier": "^7.24.7",
 				"to-fast-properties": "^2.0.0"
 			}
 		},
@@ -13754,9 +13784,9 @@
 			"dev": true
 		},
 		"@jridgewell/set-array": {
-			"version": "1.1.2",
-			"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
-			"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+			"version": "1.2.1",
+			"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+			"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
 			"dev": true
 		},
 		"@jridgewell/sourcemap-codec": {
@@ -13766,13 +13796,13 @@
 			"dev": true
 		},
 		"@jridgewell/trace-mapping": {
-			"version": "0.3.14",
-			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
-			"integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
+			"version": "0.3.25",
+			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+			"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
 			"dev": true,
 			"requires": {
-				"@jridgewell/resolve-uri": "^3.0.3",
-				"@jridgewell/sourcemap-codec": "^1.4.10"
+				"@jridgewell/resolve-uri": "^3.1.0",
+				"@jridgewell/sourcemap-codec": "^1.4.14"
 			}
 		},
 		"@mdn/browser-compat-data": {
@@ -13987,29 +14017,29 @@
 			"dev": true
 		},
 		"@typescript-eslint/scope-manager": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.11.tgz",
-			"integrity": "sha512-dHFOsxoLFtrIcSj5h0QoBT/89hxQONwmn3FOQ0GOQcLOOXm+MIrS8zEAhs4tWl5MraxCY3ZJpaXQQdFMc2Tu+Q==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+			"integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
 			"dev": true,
 			"requires": {
-				"@typescript-eslint/types": "5.59.11",
-				"@typescript-eslint/visitor-keys": "5.59.11"
+				"@typescript-eslint/types": "5.62.0",
+				"@typescript-eslint/visitor-keys": "5.62.0"
 			}
 		},
 		"@typescript-eslint/types": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.11.tgz",
-			"integrity": "sha512-epoN6R6tkvBYSc+cllrz+c2sOFWkbisJZWkOE+y3xHtvYaOE6Wk6B8e114McRJwFRjGvYdJwLXQH5c9osME/AA==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+			"integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
 			"dev": true
 		},
 		"@typescript-eslint/typescript-estree": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.11.tgz",
-			"integrity": "sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+			"integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
 			"dev": true,
 			"requires": {
-				"@typescript-eslint/types": "5.59.11",
-				"@typescript-eslint/visitor-keys": "5.59.11",
+				"@typescript-eslint/types": "5.62.0",
+				"@typescript-eslint/visitor-keys": "5.62.0",
 				"debug": "^4.3.4",
 				"globby": "^11.1.0",
 				"is-glob": "^4.0.3",
@@ -14018,28 +14048,25 @@
 			},
 			"dependencies": {
 				"semver": {
-					"version": "7.5.2",
-					"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
-					"integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
-					"dev": true,
-					"requires": {
-						"lru-cache": "^6.0.0"
-					}
+					"version": "7.6.3",
+					"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+					"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+					"dev": true
 				}
 			}
 		},
 		"@typescript-eslint/utils": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.11.tgz",
-			"integrity": "sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+			"integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
 			"dev": true,
 			"requires": {
 				"@eslint-community/eslint-utils": "^4.2.0",
 				"@types/json-schema": "^7.0.9",
 				"@types/semver": "^7.3.12",
-				"@typescript-eslint/scope-manager": "5.59.11",
-				"@typescript-eslint/types": "5.59.11",
-				"@typescript-eslint/typescript-estree": "5.59.11",
+				"@typescript-eslint/scope-manager": "5.62.0",
+				"@typescript-eslint/types": "5.62.0",
+				"@typescript-eslint/typescript-estree": "5.62.0",
 				"eslint-scope": "^5.1.1",
 				"semver": "^7.3.7"
 			},
@@ -14072,12 +14099,12 @@
 			}
 		},
 		"@typescript-eslint/visitor-keys": {
-			"version": "5.59.11",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.11.tgz",
-			"integrity": "sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA==",
+			"version": "5.62.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+			"integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
 			"dev": true,
 			"requires": {
-				"@typescript-eslint/types": "5.59.11",
+				"@typescript-eslint/types": "5.62.0",
 				"eslint-visitor-keys": "^3.3.0"
 			}
 		},
@@ -14872,12 +14899,12 @@
 			}
 		},
 		"braces": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-			"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+			"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
 			"dev": true,
 			"requires": {
-				"fill-range": "^7.0.1"
+				"fill-range": "^7.1.1"
 			}
 		},
 		"browser-process-hrtime": {
@@ -16204,9 +16231,9 @@
 			"dev": true
 		},
 		"fast-glob": {
-			"version": "3.2.12",
-			"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
-			"integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+			"version": "3.3.2",
+			"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+			"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
 			"dev": true,
 			"requires": {
 				"@nodelib/fs.stat": "^2.0.2",
@@ -16273,9 +16300,9 @@
 			}
 		},
 		"fill-range": {
-			"version": "7.0.1",
-			"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-			"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+			"version": "7.1.1",
+			"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+			"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
 			"dev": true,
 			"requires": {
 				"to-regex-range": "^5.0.1"
@@ -18964,12 +18991,12 @@
 			"dev": true
 		},
 		"micromatch": {
-			"version": "4.0.5",
-			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
-			"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+			"version": "4.0.7",
+			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
+			"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
 			"dev": true,
 			"requires": {
-				"braces": "^3.0.2",
+				"braces": "^3.0.3",
 				"picomatch": "^2.3.1"
 			}
 		},
@@ -19063,9 +19090,9 @@
 			}
 		},
 		"nanoid": {
-			"version": "3.3.4",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
-			"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+			"version": "3.3.7",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+			"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
 			"dev": true
 		},
 		"natural-compare": {
@@ -19362,9 +19389,9 @@
 			"dev": true
 		},
 		"picocolors": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-			"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
+			"integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
 			"dev": true
 		},
 		"picomatch": {
@@ -19395,14 +19422,14 @@
 			"dev": true
 		},
 		"postcss": {
-			"version": "8.4.21",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
-			"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+			"version": "8.4.41",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz",
+			"integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
 			"dev": true,
 			"requires": {
-				"nanoid": "^3.3.4",
-				"picocolors": "^1.0.0",
-				"source-map-js": "^1.0.2"
+				"nanoid": "^3.3.7",
+				"picocolors": "^1.0.1",
+				"source-map-js": "^1.2.0"
 			}
 		},
 		"postcss-html": {
@@ -19952,9 +19979,9 @@
 			"dev": true
 		},
 		"source-map-js": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
-			"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+			"version": "1.2.0",
+			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+			"integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
 			"dev": true
 		},
 		"source-map-resolve": {
@@ -20874,9 +20901,9 @@
 			}
 		},
 		"ws": {
-			"version": "7.5.9",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
-			"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+			"version": "7.5.10",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+			"integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
 			"dev": true,
 			"requires": {}
 		},
-- 
2.39.2


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