mediawiki/extensions/QuickSurveys: REL1_43 (log #2519139)

sourcepatches

This run took 64 seconds.

From 59bf7b1d361174634e8aa41ca4e68bf9ea4be6af Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Mon, 6 Jul 2026 03:15:31 +0000
Subject: [PATCH] build: Updating npm dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* @babel/core: 7.24.6 → 7.29.7
  * https://github.com/advisories/GHSA-4x5r-pxfx-6jf8
* form-data: 3.0.4, 4.0.4 → 3.0.5, 4.0.6
  * https://github.com/advisories/GHSA-hmw2-7cc7-3qxx
* js-yaml: 3.14.2, 4.1.1 → 3.15.0, 4.3.0
  * https://github.com/advisories/GHSA-h67p-54hq-rp68
* ws: 7.5.10, 8.20.1 → 7.5.11, 8.21.0
  * https://github.com/advisories/GHSA-96hv-2xvq-fx4p

Change-Id: I7e6d4b60a393e8f473dca2d4df86979e0a364e1c
---
 package-lock.json | 365 ++++++++++++++++++++++++++--------------------
 1 file changed, 209 insertions(+), 156 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index a0b9ada..c932a94 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -19,26 +19,13 @@
 				"vue": "3.4.27"
 			}
 		},
-		"node_modules/@ampproject/remapping": {
-			"version": "2.3.0",
-			"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
-			"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
-			"dev": true,
-			"dependencies": {
-				"@jridgewell/gen-mapping": "^0.3.5",
-				"@jridgewell/trace-mapping": "^0.3.24"
-			},
-			"engines": {
-				"node": ">=6.0.0"
-			}
-		},
 		"node_modules/@babel/code-frame": {
-			"version": "7.29.0",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
-			"integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
+			"integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-validator-identifier": "^7.28.5",
+				"@babel/helper-validator-identifier": "^7.29.7",
 				"js-tokens": "^4.0.0",
 				"picocolors": "^1.1.1"
 			},
@@ -47,30 +34,30 @@
 			}
 		},
 		"node_modules/@babel/compat-data": {
-			"version": "7.24.6",
-			"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz",
-			"integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz",
+			"integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/core": {
-			"version": "7.24.6",
-			"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz",
-			"integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==",
-			"dev": true,
-			"dependencies": {
-				"@ampproject/remapping": "^2.2.0",
-				"@babel/code-frame": "^7.24.6",
-				"@babel/generator": "^7.24.6",
-				"@babel/helper-compilation-targets": "^7.24.6",
-				"@babel/helper-module-transforms": "^7.24.6",
-				"@babel/helpers": "^7.24.6",
-				"@babel/parser": "^7.24.6",
-				"@babel/template": "^7.24.6",
-				"@babel/traverse": "^7.24.6",
-				"@babel/types": "^7.24.6",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz",
+			"integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==",
+			"dev": true,
+			"dependencies": {
+				"@babel/code-frame": "^7.29.7",
+				"@babel/generator": "^7.29.7",
+				"@babel/helper-compilation-targets": "^7.29.7",
+				"@babel/helper-module-transforms": "^7.29.7",
+				"@babel/helpers": "^7.29.7",
+				"@babel/parser": "^7.29.7",
+				"@babel/template": "^7.29.7",
+				"@babel/traverse": "^7.29.7",
+				"@babel/types": "^7.29.7",
+				"@jridgewell/remapping": "^2.3.5",
 				"convert-source-map": "^2.0.0",
 				"debug": "^4.1.0",
 				"gensync": "^1.0.0-beta.2",
@@ -86,13 +73,13 @@
 			}
 		},
 		"node_modules/@babel/generator": {
-			"version": "7.29.1",
-			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
-			"integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz",
+			"integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==",
 			"dev": true,
 			"dependencies": {
-				"@babel/parser": "^7.29.0",
-				"@babel/types": "^7.29.0",
+				"@babel/parser": "^7.29.7",
+				"@babel/types": "^7.29.7",
 				"@jridgewell/gen-mapping": "^0.3.12",
 				"@jridgewell/trace-mapping": "^0.3.28",
 				"jsesc": "^3.0.2"
@@ -126,14 +113,14 @@
 			}
 		},
 		"node_modules/@babel/helper-compilation-targets": {
-			"version": "7.24.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz",
-			"integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz",
+			"integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==",
 			"dev": true,
 			"dependencies": {
-				"@babel/compat-data": "^7.24.6",
-				"@babel/helper-validator-option": "^7.24.6",
-				"browserslist": "^4.22.2",
+				"@babel/compat-data": "^7.29.7",
+				"@babel/helper-validator-option": "^7.29.7",
+				"browserslist": "^4.24.0",
 				"lru-cache": "^5.1.1",
 				"semver": "^6.3.1"
 			},
@@ -221,9 +208,9 @@
 			}
 		},
 		"node_modules/@babel/helper-globals": {
-			"version": "7.28.0",
-			"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
-			"integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz",
+			"integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
@@ -242,27 +229,27 @@
 			}
 		},
 		"node_modules/@babel/helper-module-imports": {
-			"version": "7.28.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
-			"integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz",
+			"integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==",
 			"dev": true,
 			"dependencies": {
-				"@babel/traverse": "^7.28.6",
-				"@babel/types": "^7.28.6"
+				"@babel/traverse": "^7.29.7",
+				"@babel/types": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-module-transforms": {
-			"version": "7.28.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
-			"integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz",
+			"integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-module-imports": "^7.28.6",
-				"@babel/helper-validator-identifier": "^7.28.5",
-				"@babel/traverse": "^7.28.6"
+				"@babel/helper-module-imports": "^7.29.7",
+				"@babel/helper-validator-identifier": "^7.29.7",
+				"@babel/traverse": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -363,27 +350,27 @@
 			}
 		},
 		"node_modules/@babel/helper-string-parser": {
-			"version": "7.27.1",
-			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
-			"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz",
+			"integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-validator-identifier": {
-			"version": "7.28.5",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
-			"integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
+			"integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-validator-option": {
-			"version": "7.24.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz",
-			"integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz",
+			"integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
@@ -404,25 +391,25 @@
 			}
 		},
 		"node_modules/@babel/helpers": {
-			"version": "7.26.10",
-			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz",
-			"integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz",
+			"integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/template": "^7.26.9",
-				"@babel/types": "^7.26.10"
+				"@babel/template": "^7.29.7",
+				"@babel/types": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/parser": {
-			"version": "7.29.3",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz",
-			"integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz",
+			"integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/types": "^7.29.0"
+				"@babel/types": "^7.29.7"
 			},
 			"bin": {
 				"parser": "bin/babel-parser.js"
@@ -1596,31 +1583,31 @@
 			"dev": true
 		},
 		"node_modules/@babel/template": {
-			"version": "7.28.6",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
-			"integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz",
+			"integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.28.6",
-				"@babel/parser": "^7.28.6",
-				"@babel/types": "^7.28.6"
+				"@babel/code-frame": "^7.29.7",
+				"@babel/parser": "^7.29.7",
+				"@babel/types": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/traverse": {
-			"version": "7.29.0",
-			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
-			"integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz",
+			"integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.29.0",
-				"@babel/generator": "^7.29.0",
-				"@babel/helper-globals": "^7.28.0",
-				"@babel/parser": "^7.29.0",
-				"@babel/template": "^7.28.6",
-				"@babel/types": "^7.29.0",
+				"@babel/code-frame": "^7.29.7",
+				"@babel/generator": "^7.29.7",
+				"@babel/helper-globals": "^7.29.7",
+				"@babel/parser": "^7.29.7",
+				"@babel/template": "^7.29.7",
+				"@babel/types": "^7.29.7",
 				"debug": "^4.3.1"
 			},
 			"engines": {
@@ -1628,13 +1615,13 @@
 			}
 		},
 		"node_modules/@babel/types": {
-			"version": "7.29.0",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
-			"integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz",
+			"integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-string-parser": "^7.27.1",
-				"@babel/helper-validator-identifier": "^7.28.5"
+				"@babel/helper-string-parser": "^7.29.7",
+				"@babel/helper-validator-identifier": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -1818,10 +1805,20 @@
 			}
 		},
 		"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz",
+			"integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -2639,6 +2636,16 @@
 				"@jridgewell/trace-mapping": "^0.3.24"
 			}
 		},
+		"node_modules/@jridgewell/remapping": {
+			"version": "2.3.5",
+			"resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+			"integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+			"dev": true,
+			"dependencies": {
+				"@jridgewell/gen-mapping": "^0.3.5",
+				"@jridgewell/trace-mapping": "^0.3.24"
+			}
+		},
 		"node_modules/@jridgewell/resolve-uri": {
 			"version": "3.1.2",
 			"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
@@ -4038,6 +4045,18 @@
 			"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
 			"dev": true
 		},
+		"node_modules/baseline-browser-mapping": {
+			"version": "2.10.42",
+			"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.42.tgz",
+			"integrity": "sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q==",
+			"dev": true,
+			"bin": {
+				"baseline-browser-mapping": "dist/cli.cjs"
+			},
+			"engines": {
+				"node": ">=6.0.0"
+			}
+		},
 		"node_modules/boolbase": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
@@ -4073,9 +4092,9 @@
 			"dev": true
 		},
 		"node_modules/browserslist": {
-			"version": "4.23.0",
-			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
-			"integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+			"version": "4.28.4",
+			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.4.tgz",
+			"integrity": "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==",
 			"dev": true,
 			"funding": [
 				{
@@ -4092,10 +4111,11 @@
 				}
 			],
 			"dependencies": {
-				"caniuse-lite": "^1.0.30001587",
-				"electron-to-chromium": "^1.4.668",
-				"node-releases": "^2.0.14",
-				"update-browserslist-db": "^1.0.13"
+				"baseline-browser-mapping": "^2.10.38",
+				"caniuse-lite": "^1.0.30001799",
+				"electron-to-chromium": "^1.5.376",
+				"node-releases": "^2.0.48",
+				"update-browserslist-db": "^1.2.3"
 			},
 			"bin": {
 				"browserslist": "cli.js"
@@ -4169,9 +4189,9 @@
 			}
 		},
 		"node_modules/caniuse-lite": {
-			"version": "1.0.30001625",
-			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz",
-			"integrity": "sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==",
+			"version": "1.0.30001800",
+			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001800.tgz",
+			"integrity": "sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA==",
 			"dev": true,
 			"funding": [
 				{
@@ -4394,10 +4414,20 @@
 			"dev": true
 		},
 		"node_modules/cosmiconfig/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz",
+			"integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -4838,9 +4868,9 @@
 			}
 		},
 		"node_modules/electron-to-chromium": {
-			"version": "1.4.787",
-			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.787.tgz",
-			"integrity": "sha512-d0EFmtLPjctczO3LogReyM2pbBiiZbnsKnGF+cdZhsYzHm/A0GV7W94kqzLD8SN4O3f3iHlgLUChqghgyznvCQ==",
+			"version": "1.5.387",
+			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.387.tgz",
+			"integrity": "sha512-TaxwufTFDufvPEoXdhwVrA3UdFWBeWGkYoJ1K8ldF1xe6gKfth6iRNS5lTQ5JPNOHdGQm8PT1QYKUqFLCiUefQ==",
 			"dev": true
 		},
 		"node_modules/emittery": {
@@ -4959,9 +4989,9 @@
 			}
 		},
 		"node_modules/escalade": {
-			"version": "3.1.2",
-			"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
-			"integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+			"version": "3.2.0",
+			"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+			"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
 			"dev": true,
 			"engines": {
 				"node": ">=6"
@@ -5579,10 +5609,20 @@
 			}
 		},
 		"node_modules/eslint-plugin-unicorn/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz",
+			"integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -5857,10 +5897,20 @@
 			}
 		},
 		"node_modules/eslint/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz",
+			"integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -6222,16 +6272,16 @@
 			"dev": true
 		},
 		"node_modules/form-data": {
-			"version": "4.0.4",
-			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
-			"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+			"version": "4.0.6",
+			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz",
+			"integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==",
 			"dev": true,
 			"dependencies": {
 				"asynckit": "^0.4.0",
 				"combined-stream": "^1.0.8",
 				"es-set-tostringtag": "^2.1.0",
-				"hasown": "^2.0.2",
-				"mime-types": "^2.1.12"
+				"hasown": "^2.0.4",
+				"mime-types": "^2.1.35"
 			},
 			"engines": {
 				"node": ">= 6"
@@ -6648,9 +6698,9 @@
 			}
 		},
 		"node_modules/hasown": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
-			"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+			"version": "2.0.4",
+			"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
+			"integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
 			"dev": true,
 			"dependencies": {
 				"function-bind": "^1.1.2"
@@ -7775,15 +7825,15 @@
 			}
 		},
 		"node_modules/jest-environment-jsdom/node_modules/form-data": {
-			"version": "3.0.4",
-			"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz",
-			"integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==",
+			"version": "3.0.5",
+			"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.5.tgz",
+			"integrity": "sha512-j23EibVLnp4zNXGW7LjryXYa2X6U/M96yoOX+ybZxwkYajdxRNEqYY3zhh7y0i6kfISKS2jr+EJq1YTUDEv5+w==",
 			"dev": true,
 			"dependencies": {
 				"asynckit": "^0.4.0",
 				"combined-stream": "^1.0.8",
 				"es-set-tostringtag": "^2.1.0",
-				"hasown": "^2.0.2",
+				"hasown": "^2.0.4",
 				"mime-types": "^2.1.35"
 			},
 			"engines": {
@@ -7955,9 +8005,9 @@
 			}
 		},
 		"node_modules/jest-environment-jsdom/node_modules/ws": {
-			"version": "7.5.10",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
-			"integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
+			"version": "7.5.11",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.11.tgz",
+			"integrity": "sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==",
 			"dev": true,
 			"engines": {
 				"node": ">=8.3.0"
@@ -9182,9 +9232,9 @@
 			"dev": true
 		},
 		"node_modules/js-yaml": {
-			"version": "3.14.2",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
-			"integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
+			"version": "3.15.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.0.tgz",
+			"integrity": "sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==",
 			"dev": true,
 			"dependencies": {
 				"argparse": "^1.0.7",
@@ -9717,10 +9767,13 @@
 			"dev": true
 		},
 		"node_modules/node-releases": {
-			"version": "2.0.14",
-			"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
-			"integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
-			"dev": true
+			"version": "2.0.50",
+			"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz",
+			"integrity": "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==",
+			"dev": true,
+			"engines": {
+				"node": ">=18"
+			}
 		},
 		"node_modules/node-watch": {
 			"version": "0.7.2",
@@ -11665,9 +11718,9 @@
 			}
 		},
 		"node_modules/update-browserslist-db": {
-			"version": "1.0.16",
-			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
-			"integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==",
+			"version": "1.2.3",
+			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+			"integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
 			"dev": true,
 			"funding": [
 				{
@@ -11684,8 +11737,8 @@
 				}
 			],
 			"dependencies": {
-				"escalade": "^3.1.2",
-				"picocolors": "^1.0.1"
+				"escalade": "^3.2.0",
+				"picocolors": "^1.1.1"
 			},
 			"bin": {
 				"update-browserslist-db": "cli.js"
@@ -11999,9 +12052,9 @@
 			}
 		},
 		"node_modules/ws": {
-			"version": "8.20.1",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz",
-			"integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==",
+			"version": "8.21.0",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
+			"integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
 			"dev": true,
 			"engines": {
 				"node": ">=10.0.0"
-- 
2.47.3

$ date
--- stdout ---
Mon Jul  6 03:14:30 UTC 2026

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

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

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

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

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

--- end ---
$ git show-ref refs/heads/REL1_43
--- stdout ---
1f5b31e9acc9c6ce2fc93c2373fbeda4b1c0eb67 refs/heads/REL1_43

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@babel/core": {
      "name": "@babel/core",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1120793,
          "name": "@babel/core",
          "dependency": "@babel/core",
          "title": "@babel/core: Arbitrary File Read via sourceMappingURL Comment",
          "url": "https://github.com/advisories/GHSA-4x5r-pxfx-6jf8",
          "severity": "low",
          "cwe": [
            "CWE-22",
            "CWE-200"
          ],
          "cvss": {
            "score": 3.2,
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N"
          },
          "range": "<=7.29.0"
        }
      ],
      "effects": [],
      "range": "<=7.29.0",
      "nodes": [
        "node_modules/@babel/core"
      ],
      "fixAvailable": true
    },
    "@jest/core": {
      "name": "@jest/core",
      "severity": "low",
      "isDirect": false,
      "via": [
        "jest-config",
        "jest-runner"
      ],
      "effects": [
        "jest"
      ],
      "range": "27.0.1 - 27.5.1",
      "nodes": [
        "node_modules/@jest/core"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "@tootallnate/once": {
      "name": "@tootallnate/once",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1119438,
          "name": "@tootallnate/once",
          "dependency": "@tootallnate/once",
          "title": "@tootallnate/once vulnerable to Incorrect Control Flow Scoping",
          "url": "https://github.com/advisories/GHSA-vpq2-c234-7xj6",
          "severity": "low",
          "cwe": [
            "CWE-705"
          ],
          "cvss": {
            "score": 3.3,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<2.0.1"
        }
      ],
      "effects": [
        "http-proxy-agent"
      ],
      "range": "<2.0.1",
      "nodes": [
        "node_modules/jest-environment-jsdom/node_modules/@tootallnate/once"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "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-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": 1117412,
          "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.3,
            "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
      }
    },
    "form-data": {
      "name": "form-data",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1120743,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
          "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
          "severity": "high",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=4.0.0 <4.0.6"
        },
        {
          "source": 1120744,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
          "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
          "severity": "high",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=3.0.0 <3.0.5"
        }
      ],
      "effects": [],
      "range": "3.0.0 - 3.0.4 || 4.0.0 - 4.0.5",
      "nodes": [
        "node_modules/form-data",
        "node_modules/jest-environment-jsdom/node_modules/form-data"
      ],
      "fixAvailable": true
    },
    "http-proxy-agent": {
      "name": "http-proxy-agent",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@tootallnate/once"
      ],
      "effects": [
        "jsdom"
      ],
      "range": "4.0.1",
      "nodes": [
        "node_modules/jest-environment-jsdom/node_modules/http-proxy-agent"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "jest": {
      "name": "jest",
      "severity": "low",
      "isDirect": true,
      "via": [
        "@jest/core",
        "jest-cli"
      ],
      "effects": [],
      "range": "27.0.1 - 27.5.1",
      "nodes": [
        "node_modules/jest"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "jest-cli": {
      "name": "jest-cli",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@jest/core",
        "jest-config"
      ],
      "effects": [],
      "range": "27.0.1 - 27.5.1",
      "nodes": [
        "node_modules/jest-cli"
      ],
      "fixAvailable": true
    },
    "jest-config": {
      "name": "jest-config",
      "severity": "low",
      "isDirect": false,
      "via": [
        "jest-environment-jsdom",
        "jest-runner"
      ],
      "effects": [
        "@jest/core",
        "jest-cli"
      ],
      "range": "27.0.1 - 27.5.1",
      "nodes": [
        "node_modules/jest-config"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "jest-environment-jsdom": {
      "name": "jest-environment-jsdom",
      "severity": "low",
      "isDirect": false,
      "via": [
        "jsdom"
      ],
      "effects": [
        "jest-config",
        "jest-runner"
      ],
      "range": "27.0.1 - 27.5.1",
      "nodes": [
        "node_modules/jest-environment-jsdom"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "jest-runner": {
      "name": "jest-runner",
      "severity": "low",
      "isDirect": false,
      "via": [
        "jest-environment-jsdom"
      ],
      "effects": [
        "@jest/core",
        "jest-config"
      ],
      "range": "27.0.4 - 27.5.1",
      "nodes": [
        "node_modules/jest-runner"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "js-yaml": {
      "name": "js-yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1121859,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
          "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
          "severity": "moderate",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<3.15.0"
        },
        {
          "source": 1121860,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
          "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
          "severity": "moderate",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=4.0.0 <=4.1.1"
        }
      ],
      "effects": [],
      "range": "<=3.14.2 || 4.0.0 - 4.1.1",
      "nodes": [
        "node_modules/@eslint/eslintrc/node_modules/js-yaml",
        "node_modules/cosmiconfig/node_modules/js-yaml",
        "node_modules/eslint-plugin-unicorn/node_modules/js-yaml",
        "node_modules/eslint/node_modules/js-yaml",
        "node_modules/js-yaml"
      ],
      "fixAvailable": true
    },
    "jsdom": {
      "name": "jsdom",
      "severity": "low",
      "isDirect": false,
      "via": [
        "http-proxy-agent"
      ],
      "effects": [
        "jest-environment-jsdom"
      ],
      "range": "16.6.0 - 17.0.0",
      "nodes": [
        "node_modules/jest-environment-jsdom/node_modules/jsdom"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": 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
      }
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1120730,
          "name": "ws",
          "dependency": "ws",
          "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks",
          "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-770"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.21.0"
        },
        {
          "source": 1120731,
          "name": "ws",
          "dependency": "ws",
          "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks",
          "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-770"
          ],
          "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.11"
        }
      ],
      "effects": [],
      "range": "7.0.0 - 7.5.10 || 8.0.0 - 8.20.1",
      "nodes": [
        "node_modules/jest-environment-jsdom/node_modules/ws",
        "node_modules/ws"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 10,
      "moderate": 1,
      "high": 4,
      "critical": 4,
      "total": 19
    },
    "dependencies": {
      "prod": 1,
      "dev": 987,
      "optional": 2,
      "peer": 1,
      "peerOptional": 0,
      "total": 987
    }
  }
}

--- end ---
$ /usr/bin/composer install
--- stderr ---
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 38 installs, 0 updates, 0 removals
  - Locking composer/pcre (3.4.0)
  - Locking composer/semver (3.4.3)
  - Locking composer/spdx-licenses (1.5.10)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.1)
  - Locking doctrine/deprecations (1.1.6)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking mediawiki/mediawiki-codesniffer (v45.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.14.0)
  - Locking mediawiki/minus-x (1.1.3)
  - Locking mediawiki/phan-taint-check-plugin (6.0.0)
  - Locking microsoft/tolerant-php-parser (v0.1.2)
  - Locking netresearch/jsonmapper (v4.5.0)
  - Locking phan/phan (5.4.3)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking php-parallel-lint/php-parallel-lint (v1.4.0)
  - Locking phpcsstandards/phpcsextra (1.2.1)
  - Locking phpcsstandards/phpcsutils (1.0.12)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.6.7)
  - Locking phpdocumentor/type-resolver (1.12.0)
  - Locking phpstan/phpdoc-parser (2.3.2)
  - Locking psr/container (2.0.2)
  - Locking psr/log (3.0.2)
  - Locking sabre/event (5.1.8)
  - Locking squizlabs/php_codesniffer (3.10.3)
  - Locking symfony/console (v7.4.14)
  - Locking symfony/deprecation-contracts (v3.7.1)
  - Locking symfony/polyfill-ctype (v1.37.0)
  - Locking symfony/polyfill-intl-grapheme (v1.38.1)
  - Locking symfony/polyfill-intl-normalizer (v1.38.0)
  - Locking symfony/polyfill-mbstring (v1.38.2)
  - Locking symfony/polyfill-php80 (v1.37.0)
  - Locking symfony/service-contracts (v3.7.1)
  - Locking symfony/string (v8.1.0)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (2.4.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 38 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Installing squizlabs/php_codesniffer (3.10.3): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.2.1): Extracting archive
  - Installing composer/pcre (3.4.0): Extracting archive
  - Installing symfony/polyfill-php80 (v1.37.0): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.38.2): Extracting archive
  - Installing composer/spdx-licenses (1.5.10): Extracting archive
  - Installing composer/semver (3.4.3): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v45.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.38.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.38.1): Extracting archive
  - Installing symfony/polyfill-ctype (v1.37.0): Extracting archive
  - Installing symfony/string (v8.1.0): Extracting archive
  - Installing symfony/deprecation-contracts (v3.7.1): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.7.1): Extracting archive
  - Installing symfony/console (v7.4.14): Extracting archive
  - Installing sabre/event (5.1.8): Extracting archive
  - Installing netresearch/jsonmapper (v4.5.0): Extracting archive
  - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive
  - Installing webmozart/assert (2.4.1): Extracting archive
  - Installing phpstan/phpdoc-parser (2.3.2): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing doctrine/deprecations (1.1.6): Extracting archive
  - Installing phpdocumentor/type-resolver (1.12.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.6.7): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing psr/log (3.0.2): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (5.4.3): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (6.0.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.14.0): Extracting archive
  - Installing mediawiki/minus-x (1.1.3): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
  0/36 [>---------------------------]   0%
 10/36 [=======>--------------------]  27%
 29/36 [======================>-----]  80%
 36/36 [============================] 100%
Generating autoload files
17 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@babel/core": {
      "name": "@babel/core",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1120793,
          "name": "@babel/core",
          "dependency": "@babel/core",
          "title": "@babel/core: Arbitrary File Read via sourceMappingURL Comment",
          "url": "https://github.com/advisories/GHSA-4x5r-pxfx-6jf8",
          "severity": "low",
          "cwe": [
            "CWE-22",
            "CWE-200"
          ],
          "cvss": {
            "score": 3.2,
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N"
          },
          "range": "<=7.29.0"
        }
      ],
      "effects": [],
      "range": "<=7.29.0",
      "nodes": [
        "node_modules/@babel/core"
      ],
      "fixAvailable": true
    },
    "@jest/core": {
      "name": "@jest/core",
      "severity": "low",
      "isDirect": false,
      "via": [
        "jest-config",
        "jest-runner"
      ],
      "effects": [],
      "range": "27.0.1 - 27.5.1",
      "nodes": [
        "node_modules/@jest/core"
      ],
      "fixAvailable": true
    },
    "@tootallnate/once": {
      "name": "@tootallnate/once",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1119438,
          "name": "@tootallnate/once",
          "dependency": "@tootallnate/once",
          "title": "@tootallnate/once vulnerable to Incorrect Control Flow Scoping",
          "url": "https://github.com/advisories/GHSA-vpq2-c234-7xj6",
          "severity": "low",
          "cwe": [
            "CWE-705"
          ],
          "cvss": {
            "score": 3.3,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<2.0.1"
        }
      ],
      "effects": [
        "http-proxy-agent"
      ],
      "range": "<2.0.1",
      "nodes": [
        "node_modules/jest-environment-jsdom/node_modules/@tootallnate/once"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "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-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": 1117412,
          "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.3,
            "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
      }
    },
    "form-data": {
      "name": "form-data",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1120743,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
          "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
          "severity": "high",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=4.0.0 <4.0.6"
        },
        {
          "source": 1120744,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
          "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
          "severity": "high",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=3.0.0 <3.0.5"
        }
      ],
      "effects": [],
      "range": "3.0.0 - 3.0.4 || 4.0.0 - 4.0.5",
      "nodes": [
        "node_modules/form-data",
        "node_modules/jest-environment-jsdom/node_modules/form-data"
      ],
      "fixAvailable": true
    },
    "http-proxy-agent": {
      "name": "http-proxy-agent",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@tootallnate/once"
      ],
      "effects": [
        "jsdom"
      ],
      "range": "4.0.1",
      "nodes": [
        "node_modules/jest-environment-jsdom/node_modules/http-proxy-agent"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "jest": {
      "name": "jest",
      "severity": "low",
      "isDirect": true,
      "via": [
        "@jest/core",
        "jest-cli"
      ],
      "effects": [],
      "range": "27.0.1 - 27.5.1",
      "nodes": [
        "node_modules/jest"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "jest-cli": {
      "name": "jest-cli",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@jest/core",
        "jest-config"
      ],
      "effects": [
        "jest"
      ],
      "range": "27.0.1 - 27.5.1",
      "nodes": [
        "node_modules/jest-cli"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "jest-config": {
      "name": "jest-config",
      "severity": "low",
      "isDirect": false,
      "via": [
        "jest-environment-jsdom",
        "jest-runner"
      ],
      "effects": [
        "@jest/core",
        "jest-cli"
      ],
      "range": "27.0.1 - 27.5.1",
      "nodes": [
        "node_modules/jest-config"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "jest-environment-jsdom": {
      "name": "jest-environment-jsdom",
      "severity": "low",
      "isDirect": false,
      "via": [
        "jsdom"
      ],
      "effects": [
        "jest-config",
        "jest-runner"
      ],
      "range": "27.0.1 - 27.5.1",
      "nodes": [
        "node_modules/jest-environment-jsdom"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "jest-runner": {
      "name": "jest-runner",
      "severity": "low",
      "isDirect": false,
      "via": [
        "jest-environment-jsdom"
      ],
      "effects": [
        "@jest/core",
        "jest-config"
      ],
      "range": "27.0.4 - 27.5.1",
      "nodes": [
        "node_modules/jest-runner"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": true
      }
    },
    "js-yaml": {
      "name": "js-yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1121859,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
          "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
          "severity": "moderate",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<3.15.0"
        },
        {
          "source": 1121860,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
          "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
          "severity": "moderate",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=4.0.0 <=4.1.1"
        }
      ],
      "effects": [],
      "range": "<=3.14.2 || 4.0.0 - 4.1.1",
      "nodes": [
        "node_modules/@eslint/eslintrc/node_modules/js-yaml",
        "node_modules/cosmiconfig/node_modules/js-yaml",
        "node_modules/eslint-plugin-unicorn/node_modules/js-yaml",
        "node_modules/eslint/node_modules/js-yaml",
        "node_modules/js-yaml"
      ],
      "fixAvailable": true
    },
    "jsdom": {
      "name": "jsdom",
      "severity": "low",
      "isDirect": false,
      "via": [
        "http-proxy-agent"
      ],
      "effects": [
        "jest-environment-jsdom"
      ],
      "range": "16.6.0 - 17.0.0",
      "nodes": [
        "node_modules/jest-environment-jsdom/node_modules/jsdom"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "30.4.2",
        "isSemVerMajor": 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
      }
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1120730,
          "name": "ws",
          "dependency": "ws",
          "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks",
          "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-770"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.21.0"
        },
        {
          "source": 1120731,
          "name": "ws",
          "dependency": "ws",
          "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks",
          "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-770"
          ],
          "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.11"
        }
      ],
      "effects": [],
      "range": "7.0.0 - 7.5.10 || 8.0.0 - 8.20.1",
      "nodes": [
        "node_modules/jest-environment-jsdom/node_modules/ws",
        "node_modules/ws"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 10,
      "moderate": 1,
      "high": 4,
      "critical": 4,
      "total": 19
    },
    "dependencies": {
      "prod": 1,
      "dev": 987,
      "optional": 2,
      "peer": 1,
      "peerOptional": 0,
      "total": 987
    }
  }
}

--- end ---
Attempting to npm audit fix
$ /usr/bin/npm audit fix --dry-run --only=dev --json
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
--- stdout ---
{
  "added": 988,
  "removed": 0,
  "changed": 0,
  "audited": 989,
  "funding": 114,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@babel/core": {
        "name": "@babel/core",
        "severity": "low",
        "isDirect": false,
        "via": [
          {
            "source": 1120793,
            "name": "@babel/core",
            "dependency": "@babel/core",
            "title": "@babel/core: Arbitrary File Read via sourceMappingURL Comment",
            "url": "https://github.com/advisories/GHSA-4x5r-pxfx-6jf8",
            "severity": "low",
            "cwe": [
              "CWE-22",
              "CWE-200"
            ],
            "cvss": {
              "score": 3.2,
              "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N"
            },
            "range": "<=7.29.0"
          }
        ],
        "effects": [],
        "range": "<=7.29.0",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "@jest/core": {
        "name": "@jest/core",
        "severity": "low",
        "isDirect": false,
        "via": [
          "jest-config",
          "jest-runner"
        ],
        "effects": [],
        "range": "27.0.1 - 27.5.1",
        "nodes": [
          "node_modules/@jest/core"
        ],
        "fixAvailable": true
      },
      "@tootallnate/once": {
        "name": "@tootallnate/once",
        "severity": "low",
        "isDirect": false,
        "via": [
          {
            "source": 1119438,
            "name": "@tootallnate/once",
            "dependency": "@tootallnate/once",
            "title": "@tootallnate/once vulnerable to Incorrect Control Flow Scoping",
            "url": "https://github.com/advisories/GHSA-vpq2-c234-7xj6",
            "severity": "low",
            "cwe": [
              "CWE-705"
            ],
            "cvss": {
              "score": 3.3,
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": "<2.0.1"
          }
        ],
        "effects": [
          "http-proxy-agent"
        ],
        "range": "<2.0.1",
        "nodes": [
          "node_modules/jest-environment-jsdom/node_modules/@tootallnate/once"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "30.4.2",
          "isSemVerMajor": true
        }
      },
      "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-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": 1117412,
            "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.3,
              "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
        }
      },
      "form-data": {
        "name": "form-data",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1120743,
            "name": "form-data",
            "dependency": "form-data",
            "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
            "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
            "severity": "high",
            "cwe": [
              "CWE-93"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
            },
            "range": ">=4.0.0 <4.0.6"
          },
          {
            "source": 1120744,
            "name": "form-data",
            "dependency": "form-data",
            "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
            "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
            "severity": "high",
            "cwe": [
              "CWE-93"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
            },
            "range": ">=3.0.0 <3.0.5"
          }
        ],
        "effects": [],
        "range": "3.0.0 - 3.0.4 || 4.0.0 - 4.0.5",
        "nodes": [
          "",
          ""
        ],
        "fixAvailable": true
      },
      "http-proxy-agent": {
        "name": "http-proxy-agent",
        "severity": "low",
        "isDirect": false,
        "via": [
          "@tootallnate/once"
        ],
        "effects": [
          "jsdom"
        ],
        "range": "4.0.1",
        "nodes": [
          "node_modules/jest-environment-jsdom/node_modules/http-proxy-agent"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "30.4.2",
          "isSemVerMajor": true
        }
      },
      "jest": {
        "name": "jest",
        "severity": "low",
        "isDirect": true,
        "via": [
          "@jest/core",
          "jest-cli"
        ],
        "effects": [],
        "range": "27.0.1 - 27.5.1",
        "nodes": [
          "node_modules/jest"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "30.4.2",
          "isSemVerMajor": true
        }
      },
      "jest-cli": {
        "name": "jest-cli",
        "severity": "low",
        "isDirect": false,
        "via": [
          "@jest/core",
          "jest-config"
        ],
        "effects": [
          "jest"
        ],
        "range": "27.0.1 - 27.5.1",
        "nodes": [
          "node_modules/jest-cli"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "30.4.2",
          "isSemVerMajor": true
        }
      },
      "jest-config": {
        "name": "jest-config",
        "severity": "low",
        "isDirect": false,
        "via": [
          "jest-environment-jsdom",
          "jest-runner"
        ],
        "effects": [
          "@jest/core",
          "jest-cli"
        ],
        "range": "27.0.1 - 27.5.1",
        "nodes": [
          "node_modules/jest-config"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "30.4.2",
          "isSemVerMajor": true
        }
      },
      "jest-environment-jsdom": {
        "name": "jest-environment-jsdom",
        "severity": "low",
        "isDirect": false,
        "via": [
          "jsdom"
        ],
        "effects": [
          "jest-config",
          "jest-runner"
        ],
        "range": "27.0.1 - 27.5.1",
        "nodes": [
          "node_modules/jest-environment-jsdom"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "30.4.2",
          "isSemVerMajor": true
        }
      },
      "jest-runner": {
        "name": "jest-runner",
        "severity": "low",
        "isDirect": false,
        "via": [
          "jest-environment-jsdom"
        ],
        "effects": [
          "@jest/core",
          "jest-config"
        ],
        "range": "27.0.4 - 27.5.1",
        "nodes": [
          "node_modules/jest-runner"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "30.4.2",
          "isSemVerMajor": true
        }
      },
      "js-yaml": {
        "name": "js-yaml",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1121859,
            "name": "js-yaml",
            "dependency": "js-yaml",
            "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
            "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
            "severity": "moderate",
            "cwe": [
              "CWE-407"
            ],
            "cvss": {
              "score": 5.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": "<3.15.0"
          },
          {
            "source": 1121860,
            "name": "js-yaml",
            "dependency": "js-yaml",
            "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
            "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
            "severity": "moderate",
            "cwe": [
              "CWE-407"
            ],
            "cvss": {
              "score": 5.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": ">=4.0.0 <=4.1.1"
          }
        ],
        "effects": [],
        "range": "<=3.14.2 || 4.0.0 - 4.1.1",
        "nodes": [
          "",
          "",
          "",
          "",
          ""
        ],
        "fixAvailable": true
      },
      "jsdom": {
        "name": "jsdom",
        "severity": "low",
        "isDirect": false,
        "via": [
          "http-proxy-agent"
        ],
        "effects": [
          "jest-environment-jsdom"
        ],
        "range": "16.6.0 - 17.0.0",
        "nodes": [
          "node_modules/jest-environment-jsdom/node_modules/jsdom"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "30.4.2",
          "isSemVerMajor": 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
        }
      },
      "ws": {
        "name": "ws",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1120730,
            "name": "ws",
            "dependency": "ws",
            "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks",
            "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p",
            "severity": "high",
            "cwe": [
              "CWE-400",
              "CWE-770"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": ">=8.0.0 <8.21.0"
          },
          {
            "source": 1120731,
            "name": "ws",
            "dependency": "ws",
            "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks",
            "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p",
            "severity": "high",
            "cwe": [
              "CWE-400",
              "CWE-770"
            ],
            "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.11"
          }
        ],
        "effects": [],
        "range": "7.0.0 - 7.5.10 || 8.0.0 - 8.20.1",
        "nodes": [
          "",
          ""
        ],
        "fixAvailable": true
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 10,
        "moderate": 1,
        "high": 4,
        "critical": 4,
        "total": 19
      },
      "dependencies": {
        "prod": 1,
        "dev": 988,
        "optional": 2,
        "peer": 1,
        "peerOptional": 0,
        "total": 988
      }
    }
  }
}

--- end ---
{"added": 988, "removed": 0, "changed": 0, "audited": 989, "funding": 114, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@babel/core": {"name": "@babel/core", "severity": "low", "isDirect": false, "via": [{"source": 1120793, "name": "@babel/core", "dependency": "@babel/core", "title": "@babel/core: Arbitrary File Read via sourceMappingURL Comment", "url": "https://github.com/advisories/GHSA-4x5r-pxfx-6jf8", "severity": "low", "cwe": ["CWE-22", "CWE-200"], "cvss": {"score": 3.2, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N"}, "range": "<=7.29.0"}], "effects": [], "range": "<=7.29.0", "nodes": [""], "fixAvailable": true}, "@jest/core": {"name": "@jest/core", "severity": "low", "isDirect": false, "via": ["jest-config", "jest-runner"], "effects": [], "range": "27.0.1 - 27.5.1", "nodes": ["node_modules/@jest/core"], "fixAvailable": true}, "@tootallnate/once": {"name": "@tootallnate/once", "severity": "low", "isDirect": false, "via": [{"source": 1119438, "name": "@tootallnate/once", "dependency": "@tootallnate/once", "title": "@tootallnate/once vulnerable to Incorrect Control Flow Scoping", "url": "https://github.com/advisories/GHSA-vpq2-c234-7xj6", "severity": "low", "cwe": ["CWE-705"], "cvss": {"score": 3.3, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"}, "range": "<2.0.1"}], "effects": ["http-proxy-agent"], "range": "<2.0.1", "nodes": ["node_modules/jest-environment-jsdom/node_modules/@tootallnate/once"], "fixAvailable": {"name": "jest", "version": "30.4.2", "isSemVerMajor": true}}, "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-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": 1117412, "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.3, "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}}, "form-data": {"name": "form-data", "severity": "high", "isDirect": false, "via": [{"source": 1120743, "name": "form-data", "dependency": "form-data", "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames", "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx", "severity": "high", "cwe": ["CWE-93"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=4.0.0 <4.0.6"}, {"source": 1120744, "name": "form-data", "dependency": "form-data", "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames", "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx", "severity": "high", "cwe": ["CWE-93"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=3.0.0 <3.0.5"}], "effects": [], "range": "3.0.0 - 3.0.4 || 4.0.0 - 4.0.5", "nodes": ["", ""], "fixAvailable": true}, "http-proxy-agent": {"name": "http-proxy-agent", "severity": "low", "isDirect": false, "via": ["@tootallnate/once"], "effects": ["jsdom"], "range": "4.0.1", "nodes": ["node_modules/jest-environment-jsdom/node_modules/http-proxy-agent"], "fixAvailable": {"name": "jest", "version": "30.4.2", "isSemVerMajor": true}}, "jest": {"name": "jest", "severity": "low", "isDirect": true, "via": ["@jest/core", "jest-cli"], "effects": [], "range": "27.0.1 - 27.5.1", "nodes": ["node_modules/jest"], "fixAvailable": {"name": "jest", "version": "30.4.2", "isSemVerMajor": true}}, "jest-cli": {"name": "jest-cli", "severity": "low", "isDirect": false, "via": ["@jest/core", "jest-config"], "effects": ["jest"], "range": "27.0.1 - 27.5.1", "nodes": ["node_modules/jest-cli"], "fixAvailable": {"name": "jest", "version": "30.4.2", "isSemVerMajor": true}}, "jest-config": {"name": "jest-config", "severity": "low", "isDirect": false, "via": ["jest-environment-jsdom", "jest-runner"], "effects": ["@jest/core", "jest-cli"], "range": "27.0.1 - 27.5.1", "nodes": ["node_modules/jest-config"], "fixAvailable": {"name": "jest", "version": "30.4.2", "isSemVerMajor": true}}, "jest-environment-jsdom": {"name": "jest-environment-jsdom", "severity": "low", "isDirect": false, "via": ["jsdom"], "effects": ["jest-config", "jest-runner"], "range": "27.0.1 - 27.5.1", "nodes": ["node_modules/jest-environment-jsdom"], "fixAvailable": {"name": "jest", "version": "30.4.2", "isSemVerMajor": true}}, "jest-runner": {"name": "jest-runner", "severity": "low", "isDirect": false, "via": ["jest-environment-jsdom"], "effects": ["@jest/core", "jest-config"], "range": "27.0.4 - 27.5.1", "nodes": ["node_modules/jest-runner"], "fixAvailable": {"name": "jest", "version": "30.4.2", "isSemVerMajor": true}}, "js-yaml": {"name": "js-yaml", "severity": "moderate", "isDirect": false, "via": [{"source": 1121859, "name": "js-yaml", "dependency": "js-yaml", "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases", "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68", "severity": "moderate", "cwe": ["CWE-407"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<3.15.0"}, {"source": 1121860, "name": "js-yaml", "dependency": "js-yaml", "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases", "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68", "severity": "moderate", "cwe": ["CWE-407"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=4.0.0 <=4.1.1"}], "effects": [], "range": "<=3.14.2 || 4.0.0 - 4.1.1", "nodes": ["", "", "", "", ""], "fixAvailable": true}, "jsdom": {"name": "jsdom", "severity": "low", "isDirect": false, "via": ["http-proxy-agent"], "effects": ["jest-environment-jsdom"], "range": "16.6.0 - 17.0.0", "nodes": ["node_modules/jest-environment-jsdom/node_modules/jsdom"], "fixAvailable": {"name": "jest", "version": "30.4.2", "isSemVerMajor": 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}}, "ws": {"name": "ws", "severity": "high", "isDirect": false, "via": [{"source": 1120730, "name": "ws", "dependency": "ws", "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks", "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p", "severity": "high", "cwe": ["CWE-400", "CWE-770"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=8.0.0 <8.21.0"}, {"source": 1120731, "name": "ws", "dependency": "ws", "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks", "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p", "severity": "high", "cwe": ["CWE-400", "CWE-770"], "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.11"}], "effects": [], "range": "7.0.0 - 7.5.10 || 8.0.0 - 8.20.1", "nodes": ["", ""], "fixAvailable": true}}, "metadata": {"vulnerabilities": {"info": 0, "low": 10, "moderate": 1, "high": 4, "critical": 4, "total": 19}, "dependencies": {"prod": 1, "dev": 988, "optional": 2, "peer": 1, "peerOptional": 0, "total": 988}}}}
$ /usr/bin/npm audit fix --only=dev
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated @babel/plugin-proposal-unicode-property-regex@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.
npm WARN deprecated @babel/plugin-proposal-private-methods@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.
npm WARN deprecated @babel/plugin-proposal-optional-catch-binding@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
npm WARN deprecated @babel/plugin-proposal-numeric-separator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
npm WARN deprecated @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
npm WARN deprecated @babel/plugin-proposal-json-strings@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.
npm WARN deprecated @babel/plugin-proposal-export-namespace-from@7.18.9: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.
npm WARN deprecated @babel/plugin-proposal-dynamic-import@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.
npm WARN deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm WARN deprecated @babel/plugin-proposal-logical-assignment-operators@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.
npm WARN deprecated @babel/plugin-proposal-class-static-block@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead.
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated @babel/plugin-proposal-optional-chaining@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
npm WARN deprecated @babel/plugin-proposal-async-generator-functions@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
npm WARN deprecated @babel/plugin-proposal-private-property-in-object@7.21.11: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated glob@7.2.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated @babel/plugin-proposal-object-rest-spread@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
npm WARN deprecated domexception@2.0.1: Use your platform's native DOMException instead
npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated sinon@12.0.1: 16.1.1
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 987 packages, and audited 988 packages in 11s

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

# npm audit report

@tootallnate/once  <2.0.1
@tootallnate/once vulnerable to Incorrect Control Flow Scoping - https://github.com/advisories/GHSA-vpq2-c234-7xj6
fix available via `npm audit fix --force`
Will install jest@30.4.2, which is a breaking change
node_modules/jest-environment-jsdom/node_modules/@tootallnate/once
  http-proxy-agent  4.0.1
  Depends on vulnerable versions of @tootallnate/once
  node_modules/jest-environment-jsdom/node_modules/http-proxy-agent
    jsdom  16.6.0 - 17.0.0
    Depends on vulnerable versions of http-proxy-agent
    node_modules/jest-environment-jsdom/node_modules/jsdom
      jest-environment-jsdom  27.0.1 - 27.5.1
      Depends on vulnerable versions of jsdom
      node_modules/jest-environment-jsdom
        jest-config  27.0.1 - 27.5.1
        Depends on vulnerable versions of jest-environment-jsdom
        Depends on vulnerable versions of jest-runner
        node_modules/jest-config
          @jest/core  27.0.1 - 27.5.1
          Depends on vulnerable versions of jest-config
          Depends on vulnerable versions of jest-runner
          node_modules/@jest/core
            jest  27.0.1 - 27.5.1
            Depends on vulnerable versions of @jest/core
            Depends on vulnerable versions of jest-cli
            node_modules/jest
          jest-cli  27.0.1 - 27.5.1
          Depends on vulnerable versions of @jest/core
          Depends on vulnerable versions of jest-config
          node_modules/jest-cli
        jest-runner  27.0.4 - 27.5.1
        Depends on vulnerable versions of jest-environment-jsdom
        node_modules/jest-runner

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

15 vulnerabilities (9 low, 2 high, 4 critical)

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

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

--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated @babel/plugin-proposal-unicode-property-regex@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.
npm WARN deprecated @babel/plugin-proposal-private-methods@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.
npm WARN deprecated @babel/plugin-proposal-numeric-separator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
npm WARN deprecated @babel/plugin-proposal-optional-catch-binding@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
npm WARN deprecated @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
npm WARN deprecated @babel/plugin-proposal-json-strings@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.
npm WARN deprecated @babel/plugin-proposal-export-namespace-from@7.18.9: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.
npm WARN deprecated @babel/plugin-proposal-dynamic-import@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.
npm WARN deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm WARN deprecated @babel/plugin-proposal-logical-assignment-operators@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.
npm WARN deprecated @babel/plugin-proposal-class-static-block@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead.
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated @babel/plugin-proposal-private-property-in-object@7.21.11: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.
npm WARN deprecated @babel/plugin-proposal-optional-chaining@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
npm WARN deprecated @babel/plugin-proposal-async-generator-functions@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated glob@7.2.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated @babel/plugin-proposal-object-rest-spread@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
npm WARN deprecated domexception@2.0.1: Use your platform's native DOMException instead
npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated sinon@12.0.1: 16.1.1
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 987 packages, and audited 988 packages in 16s

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

15 vulnerabilities (9 low, 2 high, 4 critical)

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

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

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/utils.test.js
PASS tests/jest/render.test.js
  ● Console

    console.warn
      [Vue warn]: Invalid prop: type check failed for prop "thankYouMessage". Expected String with value "undefined", got Undefined  
        at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy>  ... > 
        at <App>

      74 | 	panel.removeAttribute( 'title' );
      75 | 	panel.innerHTML = '';
    > 76 | 	vm.mount( panel );
         | 	   ^
      77 | 	return deferred;
      78 | }
      79 |

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4354:7)
      at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4326:5)
      at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4031:5)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7531:3)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.render (resources/ext.quicksurveys.lib/vue/render.js:76:5)
      at Object.<anonymous> (tests/jest/render.test.js:19:69)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy>  ... > 
        at <App>

      74 | 	panel.removeAttribute( 'title' );
      75 | 	panel.innerHTML = '';
    > 76 | 	vm.mount( panel );
         | 	   ^
      77 | 	return deferred;
      78 | }
      79 |

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.render (resources/ext.quicksurveys.lib/vue/render.js:76:5)
      at Object.<anonymous> (tests/jest/render.test.js:19:69)

    console.warn
      [Vue warn]: Invalid prop: type check failed for prop "thankYouMessage". Expected String with value "undefined", got Undefined  
        at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy>  ... > 
        at <App>

      74 | 	panel.removeAttribute( 'title' );
      75 | 	panel.innerHTML = '';
    > 76 | 	vm.mount( panel );
         | 	   ^
      77 | 	return deferred;
      78 | }
      79 |

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4354:7)
      at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4326:5)
      at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4031:5)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7531:3)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.render (resources/ext.quicksurveys.lib/vue/render.js:76:5)
      at Object.<anonymous> (tests/jest/render.test.js:45:44)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy>  ... > 
        at <App>

      74 | 	panel.removeAttribute( 'title' );
      75 | 	panel.innerHTML = '';
    > 76 | 	vm.mount( panel );
         | 	   ^
      77 | 	return deferred;
      78 | }
      79 |

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.render (resources/ext.quicksurveys.lib/vue/render.js:76:5)
      at Object.<anonymous> (tests/jest/render.test.js:45:44)

    console.warn
      [Vue warn]: Invalid prop: type check failed for prop "thankYouMessage". Expected String with value "undefined", got Undefined  
        at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy>  ... > 
        at <App>

      74 | 	panel.removeAttribute( 'title' );
      75 | 	panel.innerHTML = '';
    > 76 | 	vm.mount( panel );
         | 	   ^
      77 | 	return deferred;
      78 | }
      79 |

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4354:7)
      at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4326:5)
      at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4031:5)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7531:3)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.render (resources/ext.quicksurveys.lib/vue/render.js:76:5)
      at Object.<anonymous> (tests/jest/render.test.js:69:47)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy>  ... > 
        at <App>

      74 | 	panel.removeAttribute( 'title' );
      75 | 	panel.innerHTML = '';
    > 76 | 	vm.mount( panel );
         | 	   ^
      77 | 	return deferred;
      78 | }
      79 |

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.render (resources/ext.quicksurveys.lib/vue/render.js:76:5)
      at Object.<anonymous> (tests/jest/render.test.js:69:47)

    console.warn
      [Vue warn]: Invalid prop: type check failed for prop "thankYouMessage". Expected String with value "undefined", got Undefined  
        at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy>  ... > 
        at <App>

      74 | 	panel.removeAttribute( 'title' );
      75 | 	panel.innerHTML = '';
    > 76 | 	vm.mount( panel );
         | 	   ^
      77 | 	return deferred;
      78 | }
      79 |

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4354:7)
      at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4326:5)
      at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4031:5)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7531:3)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.render (resources/ext.quicksurveys.lib/vue/render.js:76:5)
      at Object.<anonymous> (tests/jest/render.test.js:92:52)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy>  ... > 
        at <App>

      74 | 	panel.removeAttribute( 'title' );
      75 | 	panel.innerHTML = '';
    > 76 | 	vm.mount( panel );
         | 	   ^
      77 | 	return deferred;
      78 | }
      79 |

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.render (resources/ext.quicksurveys.lib/vue/render.js:76:5)
      at Object.<anonymous> (tests/jest/render.test.js:92:52)

    console.warn
      [Vue warn]: Invalid prop: type check failed for prop "thankYouMessage". Expected String with value "undefined", got Undefined  
        at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy>  ... > 
        at <App>

      74 | 	panel.removeAttribute( 'title' );
      75 | 	panel.innerHTML = '';
    > 76 | 	vm.mount( panel );
         | 	   ^
      77 | 	return deferred;
      78 | }
      79 |

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4354:7)
      at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4326:5)
      at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4031:5)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7531:3)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.render (resources/ext.quicksurveys.lib/vue/render.js:76:5)
      at Object.<anonymous> (tests/jest/render.test.js:117:14)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy>  ... > 
        at <App>

      74 | 	panel.removeAttribute( 'title' );
      75 | 	panel.innerHTML = '';
    > 76 | 	vm.mount( panel );
         | 	   ^
      77 | 	return deferred;
      78 | }
      79 |

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.render (resources/ext.quicksurveys.lib/vue/render.js:76:5)
      at Object.<anonymous> (tests/jest/render.test.js:117:14)

PASS tests/jest/QuickSurvey.test.js
  ● Console

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey" thankYouMessage="thanks!" surveySessionToken="ss"  ... > 
        at <VTUROOT>

      25 |
      26 | 	it( 'renders with required parameters', () => {
    > 27 | 		const survey = VueTestUtils.mount( QuickSurvey, {
         | 		                            ^
      28 | 			propsData: {
      29 | 				name: 'survey',
      30 | 				thankYouMessage: 'thanks!',

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:27:31)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey" thankYouMessage="thanks!" surveySessionToken="ss"  ... > 
        at <VTUROOT>

      52 |
      53 | 	it( 'clicking the close button dismisses and removes survey', async () => {
    > 54 | 		const survey = VueTestUtils.mount( QuickSurvey, {
         | 		                            ^
      55 | 			propsData: {
      56 | 				name: 'survey',
      57 | 				thankYouMessage: 'thanks!',

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:54:31)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey" thankYouMessage="thanks!" surveySessionToken="ss"  ... > 
        at <VTUROOT>

      76 | 	describe( 'ExternalSurvey', () => {
      77 | 		it( 'renders two external survey buttons with externalLink', () => {
    > 78 | 			const survey = VueTestUtils.mount( QuickSurvey, {
         | 			                            ^
      79 | 				propsData: {
      80 | 					name: 'survey',
      81 | 					thankYouMessage: 'thanks!',

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:78:32)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey" thankYouMessage="thanks!" surveySessionToken="ss"  ... > 
        at <VTUROOT>

      100 |
      101 | 		it( 'clicking dismiss button removes survey', async () => {
    > 102 | 			const survey = VueTestUtils.mount( QuickSurvey, {
          | 			                            ^
      103 | 				propsData: {
      104 | 					name: 'survey',
      105 | 					thankYouMessage: 'thanks!',

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:102:32)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey" thankYouMessage="thanks!" surveySessionToken="ss"  ... > 
        at <VTUROOT>

      125 |
      126 | 		it( 'Opens window when yes clicked for external surveys', async () => {
    > 127 | 			const survey = VueTestUtils.mount( QuickSurvey, {
          | 			                            ^
      128 | 					propsData: {
      129 | 						name: 'survey',
      130 | 						thankYouMessage: 'thanks!',

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:127:32)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey footer="privacy policy instead of additional info" name="survey" thankYouMessage="thanks!"  ... > 
        at <VTUROOT>

      151 | 			async () => {
      152 | 				const privacyPolicy = 'privacy policy instead of additional info';
    > 153 | 				const survey = VueTestUtils.mount( QuickSurvey, {
          | 				                            ^
      154 | 						propsData: {
      155 | 							footer: privacyPolicy,
      156 | 							name: 'survey',

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:153:33)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey additionalInfo="additional info instead of privacy policy" footer="privacy policy instead of additional info" name="survey"  ... > 
        at <VTUROOT>

      180 | 				const additionalInfo = 'additional info instead of privacy policy';
      181 | 				const privacyPolicy = 'privacy policy instead of additional info';
    > 182 | 				const survey = VueTestUtils.mount( QuickSurvey, {
          | 				                            ^
      183 | 						propsData: {
      184 | 							additionalInfo: additionalInfo,
      185 | 							footer: privacyPolicy,

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:182:33)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey" footer="privacy policy instead of additional info" thankYouMessage="thank you come again"  ... > 
        at <VTUROOT>

      236 |
      237 | 		it( 'requires an answer', async () => {
    > 238 | 			const survey = VueTestUtils.mount( QuickSurvey, SINGLE_ANSWER_SURVEY );
          | 			                            ^
      239 | 			await survey.findAllComponents( codex.CdxButton )[ 1 ].trigger( 'click' );
      240 | 			expect( window.alert.mock.calls.length ).toBe( 1 );
      241 | 		} );

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:238:32)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey" footer="privacy policy instead of additional info" thankYouMessage="thank you come again"  ... > 
        at <VTUROOT>

      242 |
      243 | 		it( 'does not shuffle answers when clicked', async () => {
    > 244 | 			const survey = VueTestUtils.mount( QuickSurvey, SINGLE_ANSWER_SURVEY );
          | 			                            ^
      245 |
      246 | 			const buttons = survey.findAllComponents( codex.CdxRadio );
      247 |

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:244:32)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey" footer="privacy policy instead of additional info" thankYouMessage="thank you come again"  ... > 
        at <VTUROOT>

      261 | 			const props = Object.assign( {}, SINGLE_ANSWER_SURVEY );
      262 | 			props.propsData.questions[ 0 ].shuffleAnswersDisplay = false;
    > 263 | 			const survey = VueTestUtils.mount( QuickSurvey, props );
          | 			                            ^
      264 |
      265 | 			const buttons = survey.findAllComponents( codex.CdxButton );
      266 | 			const radioButtons = survey.findAllComponents( codex.CdxRadio );

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:263:32)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey" footer="privacy policy instead of additional info" thankYouMessage="thank you come again"  ... > 
        at <VTUROOT>

      310 | 		it( 'displays privacy policy when completed if additional information is not defined',
      311 | 			async () => {
    > 312 | 				const survey = VueTestUtils.mount( QuickSurvey, SINGLE_ANSWER_SURVEY );
          | 				                            ^
      313 | 				const buttons = survey.findAllComponents( codex.CdxButton );
      314 | 				await buttons[ 1 ].trigger( 'click' );
      315 | 				expect( survey.find( 'div.survey-footer' ).text() ).toContain( privacyPolicy );

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:312:33)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey" footer="additional info instead of privacy policy" thankYouMessage="thank you come again"  ... > 
        at <VTUROOT>

      320 | 			async () => {
      321 | 				SINGLE_ANSWER_SURVEY.propsData.footer = additionalInfo;
    > 322 | 				const survey = VueTestUtils.mount( QuickSurvey, SINGLE_ANSWER_SURVEY );
          | 				                            ^
      323 | 				const buttons = survey.findAllComponents( codex.CdxButton );
      324 | 				await buttons[ 1 ].trigger( 'click' );
      325 | 				expect( survey.find( 'div.survey-footer' ).text() ).toContain( additionalInfo );

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:322:33)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey-multi" thankYouMessage="thank you come again" surveySessionToken="ss"  ... > 
        at <VTUROOT>

      353 |
      354 | 		it( 'Supports submitting one answer', async () => {
    > 355 | 			const survey = VueTestUtils.mount( QuickSurvey, MULTI_ANSWER_SURVEY );
          | 			                            ^
      356 |
      357 | 			const checkboxes = survey.findAll( 'input[type="checkbox"]' );
      358 | 			const submitButton = survey.findAllComponents( codex.CdxButton )[ 1 ];

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:355:32)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey-multi" thankYouMessage="thank you come again" surveySessionToken="ss"  ... > 
        at <VTUROOT>

      372 |
      373 | 		it( 'Supports free text input for checkbox', async () => {
    > 374 | 			const survey = VueTestUtils.mount( QuickSurvey, MULTI_ANSWER_SURVEY );
          | 			                            ^
      375 | 			expect(
      376 | 				survey.findAllComponents( codex.CdxTextInput ).length
      377 | 			).toBe( 0 );

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:374:32)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey-multi-questions" footer="privacy policy instead of additional info" thankYouMessage="thank you come again"  ... > 
        at <VTUROOT>

      423 |
      424 | 		it( 'Supports multiple questions in the same survey', async () => {
    > 425 | 			const survey = VueTestUtils.mount( QuickSurvey, MULTIPLE_QUESTIONS_SURVEY );
          | 			                            ^
      426 |
      427 | 			const buttons = survey.findAllComponents( codex.CdxButton );
      428 | 			const radioButtons = survey.findAllComponents( codex.CdxRadio );

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:425:32)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey-multi-questions" footer="privacy policy instead of additional info" thankYouMessage="thank you come again"  ... > 
        at <VTUROOT>

      478 | 		it( 'should display previous question when clicking on back button',
      479 | 			async () => {
    > 480 | 				const survey = VueTestUtils.mount( QuickSurvey, MULTIPLE_QUESTIONS_SURVEY );
          | 				                            ^
      481 | 				const radioButtons = survey.findAllComponents( codex.CdxRadio );
      482 |
      483 | 				// choose "maybe"

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:480:33)

    console.warn
      [Vue warn]: CdxButton: Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button 
        at <CdxButton weight="quiet" onClick=fn<bound dismissAndDestroy> > 
        at <QuickSurvey name="survey-single" thankYouMessage="thank you come again" thankYouDescription="description thank you message"  ... > 
        at <VTUROOT>

      527 |
      528 | 		it( 'Should contain thank you description text', async () => {
    > 529 | 			const survey = VueTestUtils.mount( QuickSurvey, SINGLE_ANSWER_SURVEY );
          | 			                            ^
      530 |
      531 | 			// initially, the survey should NOT contain the thank you description
      532 | 			expect( survey.text() ).not.toContain( 'description thank you message' );

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:49:13)
      at qe (node_modules/@wikimedia/codex/dist/codex.cjs:1:6779)
      at Kt (node_modules/@wikimedia/codex/dist/codex.cjs:1:7002)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:7566)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:195:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7572:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7533:36)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5861:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5554:7)
      at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5461:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5426:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5294:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5971:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19)
      at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6095:16)
      at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6105:5)
      at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5873:7)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5827:9)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5306:11)
      at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6616:7)
      at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3930:13)
      at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1477:19)
      at Object.mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:7919:18)
      at Object.<anonymous> (tests/jest/QuickSurvey.test.js:529:32)


Test Suites: 3 passed, 3 total
Tests:       33 passed, 33 total
Snapshots:   0 total
Time:        6.026 s
Ran all test suites.
--- stdout ---

> test
> npm run lint && npm run test:unit


> lint
> npm -s run lint:js && npm run -s lint:styles && npm -s run lint:i18n


/src/repo/resources/ext.quicksurveys.lib/vue/QuickSurvey.vue
  355:1  warning  This line has a length of 132. Maximum allowed is 100  max-len

/src/repo/tests/qunit/ext.quicksurveys.lib/lib.test.js
  334:1  warning  This line has a length of 145. Maximum allowed is 100  max-len
  336:1  warning  This line has a length of 129. Maximum allowed is 100  max-len

✖ 3 problems (0 errors, 3 warnings)

Checked 1 message directory.

> test:unit
> jest --testRegex tests/jest/*.test.js

----------------------|---------|----------|---------|---------|-------------------
File                  | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------------------|---------|----------|---------|---------|-------------------
All files             |   97.71 |    92.72 |   96.15 |   97.67 |                   
 QuickSurvey.vue      |   97.95 |    97.87 |   94.28 |   97.91 | 77,431            
 QuickSurveyLogger.js |   88.88 |     62.5 |     100 |   88.88 | 28,65             
 render.js            |     100 |       75 |     100 |     100 | 46,51             
 utils.js             |     100 |    95.74 |     100 |     100 | 169-173           
----------------------|---------|----------|---------|---------|-------------------

--- end ---
{"1120793": {"source": 1120793, "name": "@babel/core", "dependency": "@babel/core", "title": "@babel/core: Arbitrary File Read via sourceMappingURL Comment", "url": "https://github.com/advisories/GHSA-4x5r-pxfx-6jf8", "severity": "low", "cwe": ["CWE-22", "CWE-200"], "cvss": {"score": 3.2, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N"}, "range": "<=7.29.0"}}
Upgrading n:@babel/core from 7.24.6 -> 7.29.7
{}
{}
{}
{"1120743": {"source": 1120743, "name": "form-data", "dependency": "form-data", "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames", "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx", "severity": "high", "cwe": ["CWE-93"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=4.0.0 <4.0.6"}, "1120744": {"source": 1120744, "name": "form-data", "dependency": "form-data", "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames", "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx", "severity": "high", "cwe": ["CWE-93"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=3.0.0 <3.0.5"}}
Upgrading n:form-data from 3.0.4, 4.0.4 -> 3.0.5, 4.0.6
{"1121859": {"source": 1121859, "name": "js-yaml", "dependency": "js-yaml", "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases", "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68", "severity": "moderate", "cwe": ["CWE-407"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<3.15.0"}, "1121860": {"source": 1121860, "name": "js-yaml", "dependency": "js-yaml", "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases", "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68", "severity": "moderate", "cwe": ["CWE-407"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=4.0.0 <=4.1.1"}}
Upgrading n:js-yaml from 3.14.2, 4.1.1 -> 3.15.0, 4.3.0
{"1120730": {"source": 1120730, "name": "ws", "dependency": "ws", "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks", "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p", "severity": "high", "cwe": ["CWE-400", "CWE-770"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=8.0.0 <8.21.0"}, "1120731": {"source": 1120731, "name": "ws", "dependency": "ws", "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks", "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p", "severity": "high", "cwe": ["CWE-400", "CWE-770"], "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.11"}}
Upgrading n:ws from 7.5.10, 8.20.1 -> 7.5.11, 8.21.0
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json

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

* @babel/core: 7.24.6 → 7.29.7
  * https://github.com/advisories/GHSA-4x5r-pxfx-6jf8
* form-data: 3.0.4, 4.0.4 → 3.0.5, 4.0.6
  * https://github.com/advisories/GHSA-hmw2-7cc7-3qxx
* js-yaml: 3.14.2, 4.1.1 → 3.15.0, 4.3.0
  * https://github.com/advisories/GHSA-h67p-54hq-rp68
* ws: 7.5.10, 8.20.1 → 7.5.11, 8.21.0
  * https://github.com/advisories/GHSA-96hv-2xvq-fx4p

$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmpw9hr2_wl
--- stdout ---
[REL1_43 59bf7b1] build: Updating npm dependencies
 1 file changed, 209 insertions(+), 156 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From 59bf7b1d361174634e8aa41ca4e68bf9ea4be6af Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Mon, 6 Jul 2026 03:15:31 +0000
Subject: [PATCH] build: Updating npm dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* @babel/core: 7.24.6 → 7.29.7
  * https://github.com/advisories/GHSA-4x5r-pxfx-6jf8
* form-data: 3.0.4, 4.0.4 → 3.0.5, 4.0.6
  * https://github.com/advisories/GHSA-hmw2-7cc7-3qxx
* js-yaml: 3.14.2, 4.1.1 → 3.15.0, 4.3.0
  * https://github.com/advisories/GHSA-h67p-54hq-rp68
* ws: 7.5.10, 8.20.1 → 7.5.11, 8.21.0
  * https://github.com/advisories/GHSA-96hv-2xvq-fx4p

Change-Id: I7e6d4b60a393e8f473dca2d4df86979e0a364e1c
---
 package-lock.json | 365 ++++++++++++++++++++++++++--------------------
 1 file changed, 209 insertions(+), 156 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index a0b9ada..c932a94 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -19,26 +19,13 @@
 				"vue": "3.4.27"
 			}
 		},
-		"node_modules/@ampproject/remapping": {
-			"version": "2.3.0",
-			"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
-			"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
-			"dev": true,
-			"dependencies": {
-				"@jridgewell/gen-mapping": "^0.3.5",
-				"@jridgewell/trace-mapping": "^0.3.24"
-			},
-			"engines": {
-				"node": ">=6.0.0"
-			}
-		},
 		"node_modules/@babel/code-frame": {
-			"version": "7.29.0",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
-			"integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
+			"integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-validator-identifier": "^7.28.5",
+				"@babel/helper-validator-identifier": "^7.29.7",
 				"js-tokens": "^4.0.0",
 				"picocolors": "^1.1.1"
 			},
@@ -47,30 +34,30 @@
 			}
 		},
 		"node_modules/@babel/compat-data": {
-			"version": "7.24.6",
-			"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz",
-			"integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz",
+			"integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/core": {
-			"version": "7.24.6",
-			"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz",
-			"integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==",
-			"dev": true,
-			"dependencies": {
-				"@ampproject/remapping": "^2.2.0",
-				"@babel/code-frame": "^7.24.6",
-				"@babel/generator": "^7.24.6",
-				"@babel/helper-compilation-targets": "^7.24.6",
-				"@babel/helper-module-transforms": "^7.24.6",
-				"@babel/helpers": "^7.24.6",
-				"@babel/parser": "^7.24.6",
-				"@babel/template": "^7.24.6",
-				"@babel/traverse": "^7.24.6",
-				"@babel/types": "^7.24.6",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz",
+			"integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==",
+			"dev": true,
+			"dependencies": {
+				"@babel/code-frame": "^7.29.7",
+				"@babel/generator": "^7.29.7",
+				"@babel/helper-compilation-targets": "^7.29.7",
+				"@babel/helper-module-transforms": "^7.29.7",
+				"@babel/helpers": "^7.29.7",
+				"@babel/parser": "^7.29.7",
+				"@babel/template": "^7.29.7",
+				"@babel/traverse": "^7.29.7",
+				"@babel/types": "^7.29.7",
+				"@jridgewell/remapping": "^2.3.5",
 				"convert-source-map": "^2.0.0",
 				"debug": "^4.1.0",
 				"gensync": "^1.0.0-beta.2",
@@ -86,13 +73,13 @@
 			}
 		},
 		"node_modules/@babel/generator": {
-			"version": "7.29.1",
-			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
-			"integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz",
+			"integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==",
 			"dev": true,
 			"dependencies": {
-				"@babel/parser": "^7.29.0",
-				"@babel/types": "^7.29.0",
+				"@babel/parser": "^7.29.7",
+				"@babel/types": "^7.29.7",
 				"@jridgewell/gen-mapping": "^0.3.12",
 				"@jridgewell/trace-mapping": "^0.3.28",
 				"jsesc": "^3.0.2"
@@ -126,14 +113,14 @@
 			}
 		},
 		"node_modules/@babel/helper-compilation-targets": {
-			"version": "7.24.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz",
-			"integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz",
+			"integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==",
 			"dev": true,
 			"dependencies": {
-				"@babel/compat-data": "^7.24.6",
-				"@babel/helper-validator-option": "^7.24.6",
-				"browserslist": "^4.22.2",
+				"@babel/compat-data": "^7.29.7",
+				"@babel/helper-validator-option": "^7.29.7",
+				"browserslist": "^4.24.0",
 				"lru-cache": "^5.1.1",
 				"semver": "^6.3.1"
 			},
@@ -221,9 +208,9 @@
 			}
 		},
 		"node_modules/@babel/helper-globals": {
-			"version": "7.28.0",
-			"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
-			"integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz",
+			"integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
@@ -242,27 +229,27 @@
 			}
 		},
 		"node_modules/@babel/helper-module-imports": {
-			"version": "7.28.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
-			"integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz",
+			"integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==",
 			"dev": true,
 			"dependencies": {
-				"@babel/traverse": "^7.28.6",
-				"@babel/types": "^7.28.6"
+				"@babel/traverse": "^7.29.7",
+				"@babel/types": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-module-transforms": {
-			"version": "7.28.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
-			"integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz",
+			"integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-module-imports": "^7.28.6",
-				"@babel/helper-validator-identifier": "^7.28.5",
-				"@babel/traverse": "^7.28.6"
+				"@babel/helper-module-imports": "^7.29.7",
+				"@babel/helper-validator-identifier": "^7.29.7",
+				"@babel/traverse": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -363,27 +350,27 @@
 			}
 		},
 		"node_modules/@babel/helper-string-parser": {
-			"version": "7.27.1",
-			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
-			"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz",
+			"integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-validator-identifier": {
-			"version": "7.28.5",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
-			"integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
+			"integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-validator-option": {
-			"version": "7.24.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz",
-			"integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz",
+			"integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
@@ -404,25 +391,25 @@
 			}
 		},
 		"node_modules/@babel/helpers": {
-			"version": "7.26.10",
-			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz",
-			"integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz",
+			"integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/template": "^7.26.9",
-				"@babel/types": "^7.26.10"
+				"@babel/template": "^7.29.7",
+				"@babel/types": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/parser": {
-			"version": "7.29.3",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz",
-			"integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz",
+			"integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/types": "^7.29.0"
+				"@babel/types": "^7.29.7"
 			},
 			"bin": {
 				"parser": "bin/babel-parser.js"
@@ -1596,31 +1583,31 @@
 			"dev": true
 		},
 		"node_modules/@babel/template": {
-			"version": "7.28.6",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
-			"integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz",
+			"integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.28.6",
-				"@babel/parser": "^7.28.6",
-				"@babel/types": "^7.28.6"
+				"@babel/code-frame": "^7.29.7",
+				"@babel/parser": "^7.29.7",
+				"@babel/types": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/traverse": {
-			"version": "7.29.0",
-			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
-			"integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz",
+			"integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.29.0",
-				"@babel/generator": "^7.29.0",
-				"@babel/helper-globals": "^7.28.0",
-				"@babel/parser": "^7.29.0",
-				"@babel/template": "^7.28.6",
-				"@babel/types": "^7.29.0",
+				"@babel/code-frame": "^7.29.7",
+				"@babel/generator": "^7.29.7",
+				"@babel/helper-globals": "^7.29.7",
+				"@babel/parser": "^7.29.7",
+				"@babel/template": "^7.29.7",
+				"@babel/types": "^7.29.7",
 				"debug": "^4.3.1"
 			},
 			"engines": {
@@ -1628,13 +1615,13 @@
 			}
 		},
 		"node_modules/@babel/types": {
-			"version": "7.29.0",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
-			"integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz",
+			"integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-string-parser": "^7.27.1",
-				"@babel/helper-validator-identifier": "^7.28.5"
+				"@babel/helper-string-parser": "^7.29.7",
+				"@babel/helper-validator-identifier": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -1818,10 +1805,20 @@
 			}
 		},
 		"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz",
+			"integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -2639,6 +2636,16 @@
 				"@jridgewell/trace-mapping": "^0.3.24"
 			}
 		},
+		"node_modules/@jridgewell/remapping": {
+			"version": "2.3.5",
+			"resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+			"integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+			"dev": true,
+			"dependencies": {
+				"@jridgewell/gen-mapping": "^0.3.5",
+				"@jridgewell/trace-mapping": "^0.3.24"
+			}
+		},
 		"node_modules/@jridgewell/resolve-uri": {
 			"version": "3.1.2",
 			"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
@@ -4038,6 +4045,18 @@
 			"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
 			"dev": true
 		},
+		"node_modules/baseline-browser-mapping": {
+			"version": "2.10.42",
+			"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.42.tgz",
+			"integrity": "sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q==",
+			"dev": true,
+			"bin": {
+				"baseline-browser-mapping": "dist/cli.cjs"
+			},
+			"engines": {
+				"node": ">=6.0.0"
+			}
+		},
 		"node_modules/boolbase": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
@@ -4073,9 +4092,9 @@
 			"dev": true
 		},
 		"node_modules/browserslist": {
-			"version": "4.23.0",
-			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
-			"integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+			"version": "4.28.4",
+			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.4.tgz",
+			"integrity": "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==",
 			"dev": true,
 			"funding": [
 				{
@@ -4092,10 +4111,11 @@
 				}
 			],
 			"dependencies": {
-				"caniuse-lite": "^1.0.30001587",
-				"electron-to-chromium": "^1.4.668",
-				"node-releases": "^2.0.14",
-				"update-browserslist-db": "^1.0.13"
+				"baseline-browser-mapping": "^2.10.38",
+				"caniuse-lite": "^1.0.30001799",
+				"electron-to-chromium": "^1.5.376",
+				"node-releases": "^2.0.48",
+				"update-browserslist-db": "^1.2.3"
 			},
 			"bin": {
 				"browserslist": "cli.js"
@@ -4169,9 +4189,9 @@
 			}
 		},
 		"node_modules/caniuse-lite": {
-			"version": "1.0.30001625",
-			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz",
-			"integrity": "sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==",
+			"version": "1.0.30001800",
+			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001800.tgz",
+			"integrity": "sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA==",
 			"dev": true,
 			"funding": [
 				{
@@ -4394,10 +4414,20 @@
 			"dev": true
 		},
 		"node_modules/cosmiconfig/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz",
+			"integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -4838,9 +4868,9 @@
 			}
 		},
 		"node_modules/electron-to-chromium": {
-			"version": "1.4.787",
-			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.787.tgz",
-			"integrity": "sha512-d0EFmtLPjctczO3LogReyM2pbBiiZbnsKnGF+cdZhsYzHm/A0GV7W94kqzLD8SN4O3f3iHlgLUChqghgyznvCQ==",
+			"version": "1.5.387",
+			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.387.tgz",
+			"integrity": "sha512-TaxwufTFDufvPEoXdhwVrA3UdFWBeWGkYoJ1K8ldF1xe6gKfth6iRNS5lTQ5JPNOHdGQm8PT1QYKUqFLCiUefQ==",
 			"dev": true
 		},
 		"node_modules/emittery": {
@@ -4959,9 +4989,9 @@
 			}
 		},
 		"node_modules/escalade": {
-			"version": "3.1.2",
-			"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
-			"integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+			"version": "3.2.0",
+			"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+			"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
 			"dev": true,
 			"engines": {
 				"node": ">=6"
@@ -5579,10 +5609,20 @@
 			}
 		},
 		"node_modules/eslint-plugin-unicorn/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz",
+			"integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -5857,10 +5897,20 @@
 			}
 		},
 		"node_modules/eslint/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz",
+			"integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -6222,16 +6272,16 @@
 			"dev": true
 		},
 		"node_modules/form-data": {
-			"version": "4.0.4",
-			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
-			"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+			"version": "4.0.6",
+			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz",
+			"integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==",
 			"dev": true,
 			"dependencies": {
 				"asynckit": "^0.4.0",
 				"combined-stream": "^1.0.8",
 				"es-set-tostringtag": "^2.1.0",
-				"hasown": "^2.0.2",
-				"mime-types": "^2.1.12"
+				"hasown": "^2.0.4",
+				"mime-types": "^2.1.35"
 			},
 			"engines": {
 				"node": ">= 6"
@@ -6648,9 +6698,9 @@
 			}
 		},
 		"node_modules/hasown": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
-			"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+			"version": "2.0.4",
+			"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
+			"integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
 			"dev": true,
 			"dependencies": {
 				"function-bind": "^1.1.2"
@@ -7775,15 +7825,15 @@
 			}
 		},
 		"node_modules/jest-environment-jsdom/node_modules/form-data": {
-			"version": "3.0.4",
-			"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz",
-			"integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==",
+			"version": "3.0.5",
+			"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.5.tgz",
+			"integrity": "sha512-j23EibVLnp4zNXGW7LjryXYa2X6U/M96yoOX+ybZxwkYajdxRNEqYY3zhh7y0i6kfISKS2jr+EJq1YTUDEv5+w==",
 			"dev": true,
 			"dependencies": {
 				"asynckit": "^0.4.0",
 				"combined-stream": "^1.0.8",
 				"es-set-tostringtag": "^2.1.0",
-				"hasown": "^2.0.2",
+				"hasown": "^2.0.4",
 				"mime-types": "^2.1.35"
 			},
 			"engines": {
@@ -7955,9 +8005,9 @@
 			}
 		},
 		"node_modules/jest-environment-jsdom/node_modules/ws": {
-			"version": "7.5.10",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
-			"integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
+			"version": "7.5.11",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.11.tgz",
+			"integrity": "sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==",
 			"dev": true,
 			"engines": {
 				"node": ">=8.3.0"
@@ -9182,9 +9232,9 @@
 			"dev": true
 		},
 		"node_modules/js-yaml": {
-			"version": "3.14.2",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
-			"integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
+			"version": "3.15.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.0.tgz",
+			"integrity": "sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==",
 			"dev": true,
 			"dependencies": {
 				"argparse": "^1.0.7",
@@ -9717,10 +9767,13 @@
 			"dev": true
 		},
 		"node_modules/node-releases": {
-			"version": "2.0.14",
-			"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
-			"integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
-			"dev": true
+			"version": "2.0.50",
+			"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz",
+			"integrity": "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==",
+			"dev": true,
+			"engines": {
+				"node": ">=18"
+			}
 		},
 		"node_modules/node-watch": {
 			"version": "0.7.2",
@@ -11665,9 +11718,9 @@
 			}
 		},
 		"node_modules/update-browserslist-db": {
-			"version": "1.0.16",
-			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
-			"integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==",
+			"version": "1.2.3",
+			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+			"integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
 			"dev": true,
 			"funding": [
 				{
@@ -11684,8 +11737,8 @@
 				}
 			],
 			"dependencies": {
-				"escalade": "^3.1.2",
-				"picocolors": "^1.0.1"
+				"escalade": "^3.2.0",
+				"picocolors": "^1.1.1"
 			},
 			"bin": {
 				"update-browserslist-db": "cli.js"
@@ -11999,9 +12052,9 @@
 			}
 		},
 		"node_modules/ws": {
-			"version": "8.20.1",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz",
-			"integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==",
+			"version": "8.21.0",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
+			"integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
 			"dev": true,
 			"engines": {
 				"node": ">=10.0.0"
-- 
2.47.3


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