oojs/ui: main (log #1939370)

sourcepatches

This run took 143 seconds.

From 30d9e8584c5c54dc745d06d895f9da42840d2183 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Wed, 11 Jun 2025 11:10:59 +0000
Subject: [PATCH] [DNM] there are no updates

Change-Id: I93b914dd4fd491e2380972f3af419bb72f42da2b
---
 package-lock.json | 541 +++++++++++++++++++++++++++++++++++++---------
 1 file changed, 433 insertions(+), 108 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 7c2a9c8..165bddb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -508,24 +508,27 @@
 			}
 		},
 		"node_modules/@eslint-community/eslint-utils": {
-			"version": "4.4.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-			"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+			"version": "4.7.0",
+			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+			"integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
 			"dev": true,
 			"dependencies": {
-				"eslint-visitor-keys": "^3.3.0"
+				"eslint-visitor-keys": "^3.4.3"
 			},
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
 			},
+			"funding": {
+				"url": "https://opencollective.com/eslint"
+			},
 			"peerDependencies": {
 				"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
 			}
 		},
 		"node_modules/@eslint-community/regexpp": {
-			"version": "4.10.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
-			"integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+			"version": "4.12.1",
+			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+			"integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
 			"dev": true,
 			"engines": {
 				"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -896,6 +899,40 @@
 			"integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
 			"dev": true
 		},
+		"node_modules/@typescript-eslint/project-service": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
+			"integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/tsconfig-utils": "^8.34.0",
+				"@typescript-eslint/types": "^8.34.0",
+				"debug": "^4.3.4"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+			"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
 		"node_modules/@typescript-eslint/scope-manager": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz",
@@ -913,6 +950,22 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			}
 		},
+		"node_modules/@typescript-eslint/tsconfig-utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
+			"integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
 		"node_modules/@typescript-eslint/types": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz",
@@ -955,18 +1008,18 @@
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-			"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+			"version": "2.0.2",
+			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+			"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
 			"dev": true,
 			"dependencies": {
 				"balanced-match": "^1.0.0"
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
-			"version": "9.0.4",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
-			"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+			"version": "9.0.5",
+			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+			"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
 			"dev": true,
 			"dependencies": {
 				"brace-expansion": "^2.0.1"
@@ -2444,9 +2497,9 @@
 			}
 		},
 		"node_modules/enhanced-resolve": {
-			"version": "5.17.0",
-			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
-			"integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
+			"version": "5.18.1",
+			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+			"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
 			"dev": true,
 			"dependencies": {
 				"graceful-fs": "^4.2.4",
@@ -2791,9 +2844,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-es-x": {
-			"version": "7.7.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.7.0.tgz",
-			"integrity": "sha512-aP3qj8BwiEDPttxQkZdI221DLKq9sI/qHolE2YSQL1/9+xk7dTV+tB1Fz8/IaCA+lnLA1bDEnvaS2LKs0k2Uig==",
+			"version": "7.8.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
+			"integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
 			"dev": true,
 			"funding": [
 				"https://github.com/sponsors/ota-meshi",
@@ -2801,7 +2854,7 @@
 			],
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.1.2",
-				"@eslint-community/regexpp": "^4.6.0",
+				"@eslint-community/regexpp": "^4.11.0",
 				"eslint-compat-utils": "^0.5.1"
 			},
 			"engines": {
@@ -2922,19 +2975,21 @@
 			}
 		},
 		"node_modules/eslint-plugin-n": {
-			"version": "17.8.1",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.8.1.tgz",
-			"integrity": "sha512-KdG0h0voZms8UhndNu8DeWx1eM4sY+A4iXtsNo6kOfJLYHNeTGPacGalJ9GcvrbmOL3r/7QOMwVZDSw+1SqsrA==",
+			"version": "17.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.19.0.tgz",
+			"integrity": "sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==",
 			"dev": true,
 			"dependencies": {
-				"@eslint-community/eslint-utils": "^4.4.0",
-				"enhanced-resolve": "^5.17.0",
-				"eslint-plugin-es-x": "^7.5.0",
-				"get-tsconfig": "^4.7.0",
-				"globals": "^15.0.0",
-				"ignore": "^5.2.4",
-				"minimatch": "^9.0.0",
-				"semver": "^7.5.3"
+				"@eslint-community/eslint-utils": "^4.5.0",
+				"@typescript-eslint/utils": "^8.26.1",
+				"enhanced-resolve": "^5.17.1",
+				"eslint-plugin-es-x": "^7.8.0",
+				"get-tsconfig": "^4.8.1",
+				"globals": "^15.11.0",
+				"ignore": "^5.3.2",
+				"minimatch": "^9.0.5",
+				"semver": "^7.6.3",
+				"ts-declaration-location": "^1.0.6"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2946,19 +3001,129 @@
 				"eslint": ">=8.23.0"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/scope-manager": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
+			"integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/visitor-keys": "8.34.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/types": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+			"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/typescript-estree": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
+			"integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/project-service": "8.34.0",
+				"@typescript-eslint/tsconfig-utils": "8.34.0",
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/visitor-keys": "8.34.0",
+				"debug": "^4.3.4",
+				"fast-glob": "^3.3.2",
+				"is-glob": "^4.0.3",
+				"minimatch": "^9.0.4",
+				"semver": "^7.6.0",
+				"ts-api-utils": "^2.1.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
+			"integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
+			"dev": true,
+			"dependencies": {
+				"@eslint-community/eslint-utils": "^4.7.0",
+				"@typescript-eslint/scope-manager": "8.34.0",
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/typescript-estree": "8.34.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"eslint": "^8.57.0 || ^9.0.0",
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/visitor-keys": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
+			"integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/types": "8.34.0",
+				"eslint-visitor-keys": "^4.2.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
 		"node_modules/eslint-plugin-n/node_modules/brace-expansion": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-			"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+			"version": "2.0.2",
+			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+			"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
 			"dev": true,
 			"dependencies": {
 				"balanced-match": "^1.0.0"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/eslint-visitor-keys": {
+			"version": "4.2.1",
+			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+			"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"url": "https://opencollective.com/eslint"
+			}
+		},
 		"node_modules/eslint-plugin-n/node_modules/globals": {
-			"version": "15.4.0",
-			"resolved": "https://registry.npmjs.org/globals/-/globals-15.4.0.tgz",
-			"integrity": "sha512-unnwvMZpv0eDUyjNyh9DH/yxUaRYrEjW/qK4QcdrHg3oO11igUQrCSgODHEqxlKg8v2CD2Sd7UkqqEBoz5U7TQ==",
+			"version": "15.15.0",
+			"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+			"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
 			"dev": true,
 			"engines": {
 				"node": ">=18"
@@ -2968,9 +3133,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-n/node_modules/minimatch": {
-			"version": "9.0.4",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
-			"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+			"version": "9.0.5",
+			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+			"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
 			"dev": true,
 			"dependencies": {
 				"brace-expansion": "^2.0.1"
@@ -2982,6 +3147,18 @@
 				"url": "https://github.com/sponsors/isaacs"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/ts-api-utils": {
+			"version": "2.1.0",
+			"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+			"integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=18.12"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4"
+			}
+		},
 		"node_modules/eslint-plugin-no-jquery": {
 			"version": "3.1.1",
 			"resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.1.1.tgz",
@@ -3797,9 +3974,9 @@
 			}
 		},
 		"node_modules/get-tsconfig": {
-			"version": "4.7.5",
-			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz",
-			"integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
+			"version": "4.10.1",
+			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
+			"integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
 			"dev": true,
 			"dependencies": {
 				"resolve-pkg-maps": "^1.0.0"
@@ -5089,9 +5266,9 @@
 			}
 		},
 		"node_modules/ignore": {
-			"version": "5.3.1",
-			"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
-			"integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+			"version": "5.3.2",
+			"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+			"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
 			"dev": true,
 			"engines": {
 				"node": ">= 4"
@@ -7898,9 +8075,9 @@
 			"optional": true
 		},
 		"node_modules/semver": {
-			"version": "7.6.2",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
-			"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+			"version": "7.7.2",
+			"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+			"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
 			"dev": true,
 			"bin": {
 				"semver": "bin/semver.js"
@@ -8653,9 +8830,9 @@
 			"license": "MIT"
 		},
 		"node_modules/tapable": {
-			"version": "2.2.1",
-			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
-			"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+			"version": "2.2.2",
+			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
+			"integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==",
 			"dev": true,
 			"engines": {
 				"node": ">=6"
@@ -8802,6 +8979,40 @@
 				"typescript": ">=4.2.0"
 			}
 		},
+		"node_modules/ts-declaration-location": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz",
+			"integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "ko-fi",
+					"url": "https://ko-fi.com/rebeccastevens"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/ts-declaration-location"
+				}
+			],
+			"dependencies": {
+				"picomatch": "^4.0.2"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.0.0"
+			}
+		},
+		"node_modules/ts-declaration-location/node_modules/picomatch": {
+			"version": "4.0.2",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+			"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/jonschlinkert"
+			}
+		},
 		"node_modules/tslib": {
 			"version": "2.3.1",
 			"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
@@ -9641,18 +9852,18 @@
 			}
 		},
 		"@eslint-community/eslint-utils": {
-			"version": "4.4.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-			"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+			"version": "4.7.0",
+			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+			"integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
 			"dev": true,
 			"requires": {
-				"eslint-visitor-keys": "^3.3.0"
+				"eslint-visitor-keys": "^3.4.3"
 			}
 		},
 		"@eslint-community/regexpp": {
-			"version": "4.10.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
-			"integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+			"version": "4.12.1",
+			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+			"integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
 			"dev": true
 		},
 		"@eslint/eslintrc": {
@@ -9949,6 +10160,25 @@
 			"integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
 			"dev": true
 		},
+		"@typescript-eslint/project-service": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
+			"integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
+			"dev": true,
+			"requires": {
+				"@typescript-eslint/tsconfig-utils": "^8.34.0",
+				"@typescript-eslint/types": "^8.34.0",
+				"debug": "^4.3.4"
+			},
+			"dependencies": {
+				"@typescript-eslint/types": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+					"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+					"dev": true
+				}
+			}
+		},
 		"@typescript-eslint/scope-manager": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz",
@@ -9959,6 +10189,13 @@
 				"@typescript-eslint/visitor-keys": "7.13.0"
 			}
 		},
+		"@typescript-eslint/tsconfig-utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
+			"integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
+			"dev": true,
+			"requires": {}
+		},
 		"@typescript-eslint/types": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz",
@@ -9982,18 +10219,18 @@
 			},
 			"dependencies": {
 				"brace-expansion": {
-					"version": "2.0.1",
-					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-					"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+					"version": "2.0.2",
+					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+					"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
 					"dev": true,
 					"requires": {
 						"balanced-match": "^1.0.0"
 					}
 				},
 				"minimatch": {
-					"version": "9.0.4",
-					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
-					"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+					"version": "9.0.5",
+					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+					"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
 					"dev": true,
 					"requires": {
 						"brace-expansion": "^2.0.1"
@@ -11084,9 +11321,9 @@
 			"dev": true
 		},
 		"enhanced-resolve": {
-			"version": "5.17.0",
-			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
-			"integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
+			"version": "5.18.1",
+			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+			"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
 			"dev": true,
 			"requires": {
 				"graceful-fs": "^4.2.4",
@@ -11379,13 +11616,13 @@
 			}
 		},
 		"eslint-plugin-es-x": {
-			"version": "7.7.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.7.0.tgz",
-			"integrity": "sha512-aP3qj8BwiEDPttxQkZdI221DLKq9sI/qHolE2YSQL1/9+xk7dTV+tB1Fz8/IaCA+lnLA1bDEnvaS2LKs0k2Uig==",
+			"version": "7.8.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
+			"integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
 			"dev": true,
 			"requires": {
 				"@eslint-community/eslint-utils": "^4.1.2",
-				"@eslint-community/regexpp": "^4.6.0",
+				"@eslint-community/regexpp": "^4.11.0",
 				"eslint-compat-utils": "^0.5.1"
 			}
 		},
@@ -11468,44 +11705,115 @@
 			}
 		},
 		"eslint-plugin-n": {
-			"version": "17.8.1",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.8.1.tgz",
-			"integrity": "sha512-KdG0h0voZms8UhndNu8DeWx1eM4sY+A4iXtsNo6kOfJLYHNeTGPacGalJ9GcvrbmOL3r/7QOMwVZDSw+1SqsrA==",
-			"dev": true,
-			"requires": {
-				"@eslint-community/eslint-utils": "^4.4.0",
-				"enhanced-resolve": "^5.17.0",
-				"eslint-plugin-es-x": "^7.5.0",
-				"get-tsconfig": "^4.7.0",
-				"globals": "^15.0.0",
-				"ignore": "^5.2.4",
-				"minimatch": "^9.0.0",
-				"semver": "^7.5.3"
-			},
-			"dependencies": {
+			"version": "17.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.19.0.tgz",
+			"integrity": "sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==",
+			"dev": true,
+			"requires": {
+				"@eslint-community/eslint-utils": "^4.5.0",
+				"@typescript-eslint/utils": "^8.26.1",
+				"enhanced-resolve": "^5.17.1",
+				"eslint-plugin-es-x": "^7.8.0",
+				"get-tsconfig": "^4.8.1",
+				"globals": "^15.11.0",
+				"ignore": "^5.3.2",
+				"minimatch": "^9.0.5",
+				"semver": "^7.6.3",
+				"ts-declaration-location": "^1.0.6"
+			},
+			"dependencies": {
+				"@typescript-eslint/scope-manager": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
+					"integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
+					"dev": true,
+					"requires": {
+						"@typescript-eslint/types": "8.34.0",
+						"@typescript-eslint/visitor-keys": "8.34.0"
+					}
+				},
+				"@typescript-eslint/types": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+					"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+					"dev": true
+				},
+				"@typescript-eslint/typescript-estree": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
+					"integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
+					"dev": true,
+					"requires": {
+						"@typescript-eslint/project-service": "8.34.0",
+						"@typescript-eslint/tsconfig-utils": "8.34.0",
+						"@typescript-eslint/types": "8.34.0",
+						"@typescript-eslint/visitor-keys": "8.34.0",
+						"debug": "^4.3.4",
+						"fast-glob": "^3.3.2",
+						"is-glob": "^4.0.3",
+						"minimatch": "^9.0.4",
+						"semver": "^7.6.0",
+						"ts-api-utils": "^2.1.0"
+					}
+				},
+				"@typescript-eslint/utils": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
+					"integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
+					"dev": true,
+					"requires": {
+						"@eslint-community/eslint-utils": "^4.7.0",
+						"@typescript-eslint/scope-manager": "8.34.0",
+						"@typescript-eslint/types": "8.34.0",
+						"@typescript-eslint/typescript-estree": "8.34.0"
+					}
+				},
+				"@typescript-eslint/visitor-keys": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
+					"integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
+					"dev": true,
+					"requires": {
+						"@typescript-eslint/types": "8.34.0",
+						"eslint-visitor-keys": "^4.2.0"
+					}
+				},
 				"brace-expansion": {
-					"version": "2.0.1",
-					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-					"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+					"version": "2.0.2",
+					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+					"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
 					"dev": true,
 					"requires": {
 						"balanced-match": "^1.0.0"
 					}
 				},
+				"eslint-visitor-keys": {
+					"version": "4.2.1",
+					"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+					"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+					"dev": true
+				},
 				"globals": {
-					"version": "15.4.0",
-					"resolved": "https://registry.npmjs.org/globals/-/globals-15.4.0.tgz",
-					"integrity": "sha512-unnwvMZpv0eDUyjNyh9DH/yxUaRYrEjW/qK4QcdrHg3oO11igUQrCSgODHEqxlKg8v2CD2Sd7UkqqEBoz5U7TQ==",
+					"version": "15.15.0",
+					"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+					"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
 					"dev": true
 				},
 				"minimatch": {
-					"version": "9.0.4",
-					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
-					"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+					"version": "9.0.5",
+					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+					"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
 					"dev": true,
 					"requires": {
 						"brace-expansion": "^2.0.1"
 					}
+				},
+				"ts-api-utils": {
+					"version": "2.1.0",
+					"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+					"integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
+					"dev": true,
+					"requires": {}
 				}
 			}
 		},
@@ -12069,9 +12377,9 @@
 			}
 		},
 		"get-tsconfig": {
-			"version": "4.7.5",
-			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz",
-			"integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
+			"version": "4.10.1",
+			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
+			"integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
 			"dev": true,
 			"requires": {
 				"resolve-pkg-maps": "^1.0.0"
@@ -13036,9 +13344,9 @@
 			}
 		},
 		"ignore": {
-			"version": "5.3.1",
-			"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
-			"integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+			"version": "5.3.2",
+			"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+			"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
 			"dev": true
 		},
 		"image-size": {
@@ -15180,9 +15488,9 @@
 			"optional": true
 		},
 		"semver": {
-			"version": "7.6.2",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
-			"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+			"version": "7.7.2",
+			"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+			"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
 			"dev": true
 		},
 		"set-function-length": {
@@ -15696,9 +16004,9 @@
 			}
 		},
 		"tapable": {
-			"version": "2.2.1",
-			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
-			"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+			"version": "2.2.2",
+			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
+			"integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==",
 			"dev": true
 		},
 		"text-table": {
@@ -15823,6 +16131,23 @@
 			"dev": true,
 			"requires": {}
 		},
+		"ts-declaration-location": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz",
+			"integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==",
+			"dev": true,
+			"requires": {
+				"picomatch": "^4.0.2"
+			},
+			"dependencies": {
+				"picomatch": {
+					"version": "4.0.2",
+					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+					"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+					"dev": true
+				}
+			}
+		},
 		"tslib": {
 			"version": "2.3.1",
 			"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
-- 
2.39.5

$ date
--- stdout ---
Wed Jun 11 11:08:42 UTC 2025

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

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

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

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

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

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

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/utils"
      ],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/utils": {
      "name": "@typescript-eslint/utils",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree"
      ],
      "effects": [],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": true
    },
    "brace-expansion": {
      "name": "brace-expansion",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1105422,
          "name": "brace-expansion",
          "dependency": "brace-expansion",
          "title": "brace-expansion Regular Expression Denial of Service vulnerability",
          "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
          "severity": "low",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 3.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=2.0.1 <=4.0.0"
        }
      ],
      "effects": [
        "minimatch"
      ],
      "range": "2.0.1 - 4.0.0",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion",
        "node_modules/eslint-plugin-n/node_modules/brace-expansion"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "eslint-config-wikimedia": {
      "name": "eslint-config-wikimedia",
      "severity": "low",
      "isDirect": true,
      "via": [
        "eslint-plugin-n"
      ],
      "effects": [],
      "range": ">=0.28.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-n": {
      "name": "eslint-plugin-n",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": ">=17.0.0-0",
      "nodes": [
        "node_modules/eslint-plugin-n"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "gulp-util": {
      "name": "gulp-util",
      "severity": "high",
      "isDirect": false,
      "via": [
        "lodash.template"
      ],
      "effects": [
        "remap-istanbul"
      ],
      "range": ">=1.1.0",
      "nodes": [
        "node_modules/gulp-util"
      ],
      "fixAvailable": {
        "name": "karma-remap-istanbul",
        "version": "0.0.2",
        "isSemVerMajor": true
      }
    },
    "karma-remap-istanbul": {
      "name": "karma-remap-istanbul",
      "severity": "high",
      "isDirect": true,
      "via": [
        "remap-istanbul"
      ],
      "effects": [],
      "range": ">=0.0.3",
      "nodes": [
        "node_modules/karma-remap-istanbul"
      ],
      "fixAvailable": {
        "name": "karma-remap-istanbul",
        "version": "0.0.2",
        "isSemVerMajor": true
      }
    },
    "lodash.template": {
      "name": "lodash.template",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1096993,
          "name": "lodash.template",
          "dependency": "lodash.template",
          "title": "Command Injection in lodash",
          "url": "https://github.com/advisories/GHSA-35jh-r3h4-6jhm",
          "severity": "high",
          "cwe": [
            "CWE-77",
            "CWE-94"
          ],
          "cvss": {
            "score": 7.2,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": "<=4.5.0"
        }
      ],
      "effects": [
        "gulp-util"
      ],
      "range": "*",
      "nodes": [
        "node_modules/lodash.template"
      ],
      "fixAvailable": {
        "name": "karma-remap-istanbul",
        "version": "0.0.2",
        "isSemVerMajor": true
      }
    },
    "meow": {
      "name": "meow",
      "severity": "high",
      "isDirect": false,
      "via": [
        "trim-newlines"
      ],
      "effects": [],
      "range": "3.4.0 - 5.0.0",
      "nodes": [
        "node_modules/gulp-util/node_modules/meow"
      ],
      "fixAvailable": true
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "low",
      "isDirect": false,
      "via": [
        "brace-expansion"
      ],
      "effects": [
        "@typescript-eslint/typescript-estree",
        "eslint-plugin-n"
      ],
      "range": "5.0.0 - 9.0.5 || >=10.0.1",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch",
        "node_modules/eslint-plugin-n/node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "remap-istanbul": {
      "name": "remap-istanbul",
      "severity": "high",
      "isDirect": false,
      "via": [
        "gulp-util"
      ],
      "effects": [
        "karma-remap-istanbul"
      ],
      "range": "<=0.9.6",
      "nodes": [
        "node_modules/remap-istanbul"
      ],
      "fixAvailable": {
        "name": "karma-remap-istanbul",
        "version": "0.0.2",
        "isSemVerMajor": true
      }
    },
    "trim-newlines": {
      "name": "trim-newlines",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1095100,
          "name": "trim-newlines",
          "dependency": "trim-newlines",
          "title": "Uncontrolled Resource Consumption in trim-newlines",
          "url": "https://github.com/advisories/GHSA-7p7h-4mm5-852v",
          "severity": "high",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.0.1"
        }
      ],
      "effects": [
        "meow"
      ],
      "range": "<3.0.1",
      "nodes": [
        "node_modules/trim-newlines"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 6,
      "moderate": 0,
      "high": 6,
      "critical": 0,
      "total": 12
    },
    "dependencies": {
      "prod": 4,
      "dev": 793,
      "optional": 12,
      "peer": 8,
      "peerOptional": 0,
      "total": 796
    }
  }
}

--- 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: 66 installs, 0 updates, 0 removals
  - Locking composer/pcre (3.3.2)
  - Locking composer/semver (3.4.3)
  - Locking composer/spdx-licenses (1.5.9)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0)
  - Locking doctrine/deprecations (1.1.5)
  - Locking doctrine/instantiator (2.0.0)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking mediawiki/mediawiki-codesniffer (v47.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.15.1)
  - Locking mediawiki/minus-x (1.1.3)
  - Locking mediawiki/phan-taint-check-plugin (6.1.0)
  - Locking microsoft/tolerant-php-parser (v0.1.2)
  - Locking myclabs/deep-copy (1.13.1)
  - Locking netresearch/jsonmapper (v4.5.0)
  - Locking nikic/php-parser (v5.5.0)
  - Locking phan/phan (5.4.5)
  - Locking phar-io/manifest (2.0.4)
  - Locking phar-io/version (3.2.1)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking php-parallel-lint/php-parallel-lint (v1.4.0)
  - Locking phpcsstandards/phpcsextra (1.2.1)
  - Locking phpcsstandards/phpcsutils (1.0.12)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.6.2)
  - Locking phpdocumentor/type-resolver (1.10.0)
  - Locking phpstan/phpdoc-parser (2.1.0)
  - Locking phpunit/php-code-coverage (9.2.32)
  - Locking phpunit/php-file-iterator (3.0.6)
  - Locking phpunit/php-invoker (3.1.1)
  - Locking phpunit/php-text-template (2.0.4)
  - Locking phpunit/php-timer (5.0.3)
  - Locking phpunit/phpunit (9.6.21)
  - Locking psr/container (2.0.2)
  - Locking psr/log (3.0.2)
  - Locking sabre/event (5.1.7)
  - Locking sebastian/cli-parser (1.0.2)
  - Locking sebastian/code-unit (1.0.8)
  - Locking sebastian/code-unit-reverse-lookup (2.0.3)
  - Locking sebastian/comparator (4.0.8)
  - Locking sebastian/complexity (2.0.3)
  - Locking sebastian/diff (4.0.6)
  - Locking sebastian/environment (5.1.5)
  - Locking sebastian/exporter (4.0.6)
  - Locking sebastian/global-state (5.0.7)
  - Locking sebastian/lines-of-code (1.0.4)
  - Locking sebastian/object-enumerator (4.0.4)
  - Locking sebastian/object-reflector (2.0.4)
  - Locking sebastian/recursion-context (4.0.5)
  - Locking sebastian/resource-operations (3.0.4)
  - Locking sebastian/type (3.2.1)
  - Locking sebastian/version (3.0.2)
  - Locking squizlabs/php_codesniffer (3.12.2)
  - Locking symfony/console (v7.3.0)
  - Locking symfony/deprecation-contracts (v3.6.0)
  - Locking symfony/polyfill-ctype (v1.32.0)
  - Locking symfony/polyfill-intl-grapheme (v1.32.0)
  - Locking symfony/polyfill-intl-normalizer (v1.32.0)
  - Locking symfony/polyfill-mbstring (v1.32.0)
  - Locking symfony/polyfill-php80 (v1.32.0)
  - Locking symfony/service-contracts (v3.6.0)
  - Locking symfony/string (v7.3.0)
  - Locking theseer/tokenizer (1.2.3)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (1.11.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 66 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Installing squizlabs/php_codesniffer (3.12.2): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive
  - Installing composer/pcre (3.3.2): Extracting archive
  - Installing symfony/polyfill-php80 (v1.32.0): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.32.0): Extracting archive
  - Installing composer/spdx-licenses (1.5.9): Extracting archive
  - Installing composer/semver (3.4.3): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v47.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.32.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.32.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.32.0): Extracting archive
  - Installing symfony/string (v7.3.0): Extracting archive
  - Installing symfony/deprecation-contracts (v3.6.0): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.6.0): Extracting archive
  - Installing symfony/console (v7.3.0): Extracting archive
  - Installing sabre/event (5.1.7): Extracting archive
  - Installing netresearch/jsonmapper (v4.5.0): Extracting archive
  - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive
  - Installing webmozart/assert (1.11.0): Extracting archive
  - Installing phpstan/phpdoc-parser (2.1.0): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing doctrine/deprecations (1.1.5): Extracting archive
  - Installing phpdocumentor/type-resolver (1.10.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.6.2): 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.5): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (6.1.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.15.1): 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
  - Installing sebastian/version (3.0.2): Extracting archive
  - Installing sebastian/type (3.2.1): Extracting archive
  - Installing sebastian/resource-operations (3.0.4): Extracting archive
  - Installing sebastian/recursion-context (4.0.5): Extracting archive
  - Installing sebastian/object-reflector (2.0.4): Extracting archive
  - Installing sebastian/object-enumerator (4.0.4): Extracting archive
  - Installing sebastian/global-state (5.0.7): Extracting archive
  - Installing sebastian/exporter (4.0.6): Extracting archive
  - Installing sebastian/environment (5.1.5): Extracting archive
  - Installing sebastian/diff (4.0.6): Extracting archive
  - Installing sebastian/comparator (4.0.8): Extracting archive
  - Installing sebastian/code-unit (1.0.8): Extracting archive
  - Installing sebastian/cli-parser (1.0.2): Extracting archive
  - Installing phpunit/php-timer (5.0.3): Extracting archive
  - Installing phpunit/php-text-template (2.0.4): Extracting archive
  - Installing phpunit/php-invoker (3.1.1): Extracting archive
  - Installing phpunit/php-file-iterator (3.0.6): Extracting archive
  - Installing theseer/tokenizer (1.2.3): Extracting archive
  - Installing nikic/php-parser (v5.5.0): Extracting archive
  - Installing sebastian/lines-of-code (1.0.4): Extracting archive
  - Installing sebastian/complexity (2.0.3): Extracting archive
  - Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive
  - Installing phpunit/php-code-coverage (9.2.32): Extracting archive
  - Installing phar-io/version (3.2.1): Extracting archive
  - Installing phar-io/manifest (2.0.4): Extracting archive
  - Installing myclabs/deep-copy (1.13.1): Extracting archive
  - Installing doctrine/instantiator (2.0.0): Extracting archive
  - Installing phpunit/phpunit (9.6.21): Extracting archive
  0/64 [>---------------------------]   0%
 20/64 [========>-------------------]  31%
 29/64 [============>---------------]  45%
 47/64 [====================>-------]  73%
 56/64 [========================>---]  87%
 64/64 [============================] 100%
5 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
42 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": {
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/utils"
      ],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/utils": {
      "name": "@typescript-eslint/utils",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree"
      ],
      "effects": [],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": true
    },
    "brace-expansion": {
      "name": "brace-expansion",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1105422,
          "name": "brace-expansion",
          "dependency": "brace-expansion",
          "title": "brace-expansion Regular Expression Denial of Service vulnerability",
          "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
          "severity": "low",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 3.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=2.0.1 <=4.0.0"
        }
      ],
      "effects": [
        "minimatch"
      ],
      "range": "2.0.1 - 4.0.0",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion",
        "node_modules/eslint-plugin-n/node_modules/brace-expansion"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "eslint-config-wikimedia": {
      "name": "eslint-config-wikimedia",
      "severity": "low",
      "isDirect": true,
      "via": [
        "eslint-plugin-n"
      ],
      "effects": [],
      "range": ">=0.28.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-n": {
      "name": "eslint-plugin-n",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": ">=17.0.0-0",
      "nodes": [
        "node_modules/eslint-plugin-n"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "gulp-util": {
      "name": "gulp-util",
      "severity": "high",
      "isDirect": false,
      "via": [
        "lodash.template"
      ],
      "effects": [
        "remap-istanbul"
      ],
      "range": ">=1.1.0",
      "nodes": [
        "node_modules/gulp-util"
      ],
      "fixAvailable": {
        "name": "karma-remap-istanbul",
        "version": "0.0.2",
        "isSemVerMajor": true
      }
    },
    "karma-remap-istanbul": {
      "name": "karma-remap-istanbul",
      "severity": "high",
      "isDirect": true,
      "via": [
        "remap-istanbul"
      ],
      "effects": [],
      "range": ">=0.0.3",
      "nodes": [
        "node_modules/karma-remap-istanbul"
      ],
      "fixAvailable": {
        "name": "karma-remap-istanbul",
        "version": "0.0.2",
        "isSemVerMajor": true
      }
    },
    "lodash.template": {
      "name": "lodash.template",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1096993,
          "name": "lodash.template",
          "dependency": "lodash.template",
          "title": "Command Injection in lodash",
          "url": "https://github.com/advisories/GHSA-35jh-r3h4-6jhm",
          "severity": "high",
          "cwe": [
            "CWE-77",
            "CWE-94"
          ],
          "cvss": {
            "score": 7.2,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": "<=4.5.0"
        }
      ],
      "effects": [
        "gulp-util"
      ],
      "range": "*",
      "nodes": [
        "node_modules/lodash.template"
      ],
      "fixAvailable": {
        "name": "karma-remap-istanbul",
        "version": "0.0.2",
        "isSemVerMajor": true
      }
    },
    "meow": {
      "name": "meow",
      "severity": "high",
      "isDirect": false,
      "via": [
        "trim-newlines"
      ],
      "effects": [],
      "range": "3.4.0 - 5.0.0",
      "nodes": [
        "node_modules/gulp-util/node_modules/meow"
      ],
      "fixAvailable": true
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "low",
      "isDirect": false,
      "via": [
        "brace-expansion"
      ],
      "effects": [
        "@typescript-eslint/typescript-estree",
        "eslint-plugin-n"
      ],
      "range": "5.0.0 - 9.0.5 || >=10.0.1",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch",
        "node_modules/eslint-plugin-n/node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "remap-istanbul": {
      "name": "remap-istanbul",
      "severity": "high",
      "isDirect": false,
      "via": [
        "gulp-util"
      ],
      "effects": [
        "karma-remap-istanbul"
      ],
      "range": "<=0.9.6",
      "nodes": [
        "node_modules/remap-istanbul"
      ],
      "fixAvailable": {
        "name": "karma-remap-istanbul",
        "version": "0.0.2",
        "isSemVerMajor": true
      }
    },
    "trim-newlines": {
      "name": "trim-newlines",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1095100,
          "name": "trim-newlines",
          "dependency": "trim-newlines",
          "title": "Uncontrolled Resource Consumption in trim-newlines",
          "url": "https://github.com/advisories/GHSA-7p7h-4mm5-852v",
          "severity": "high",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.0.1"
        }
      ],
      "effects": [
        "meow"
      ],
      "range": "<3.0.1",
      "nodes": [
        "node_modules/trim-newlines"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 6,
      "moderate": 0,
      "high": 6,
      "critical": 0,
      "total": 12
    },
    "dependencies": {
      "prod": 4,
      "dev": 793,
      "optional": 12,
      "peer": 8,
      "peerOptional": 0,
      "total": 796
    }
  }
}

--- 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": 808,
  "removed": 0,
  "changed": 0,
  "audited": 809,
  "funding": 125,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@typescript-eslint/typescript-estree": {
        "name": "@typescript-eslint/typescript-estree",
        "severity": "low",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "@typescript-eslint/utils"
        ],
        "range": ">=6.16.0",
        "nodes": [
          "node_modules/@typescript-eslint/typescript-estree"
        ],
        "fixAvailable": true
      },
      "@typescript-eslint/utils": {
        "name": "@typescript-eslint/utils",
        "severity": "low",
        "isDirect": false,
        "via": [
          "@typescript-eslint/typescript-estree"
        ],
        "effects": [],
        "range": ">=6.16.0",
        "nodes": [
          "node_modules/@typescript-eslint/utils"
        ],
        "fixAvailable": true
      },
      "brace-expansion": {
        "name": "brace-expansion",
        "severity": "low",
        "isDirect": false,
        "via": [
          {
            "source": 1105422,
            "name": "brace-expansion",
            "dependency": "brace-expansion",
            "title": "brace-expansion Regular Expression Denial of Service vulnerability",
            "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
            "severity": "low",
            "cwe": [
              "CWE-400"
            ],
            "cvss": {
              "score": 3.1,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": ">=2.0.1 <=4.0.0"
          }
        ],
        "effects": [
          "minimatch"
        ],
        "range": "2.0.1 - 4.0.0",
        "nodes": [
          "",
          ""
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.27.0",
          "isSemVerMajor": true
        }
      },
      "eslint-config-wikimedia": {
        "name": "eslint-config-wikimedia",
        "severity": "low",
        "isDirect": true,
        "via": [
          "eslint-plugin-n"
        ],
        "effects": [],
        "range": ">=0.28.0",
        "nodes": [
          "node_modules/eslint-config-wikimedia"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.27.0",
          "isSemVerMajor": true
        }
      },
      "eslint-plugin-n": {
        "name": "eslint-plugin-n",
        "severity": "low",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "eslint-config-wikimedia"
        ],
        "range": ">=17.0.0-0",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.27.0",
          "isSemVerMajor": true
        }
      },
      "gulp-util": {
        "name": "gulp-util",
        "severity": "high",
        "isDirect": false,
        "via": [
          "lodash.template"
        ],
        "effects": [
          "remap-istanbul"
        ],
        "range": ">=1.1.0",
        "nodes": [
          "node_modules/gulp-util"
        ],
        "fixAvailable": {
          "name": "karma-remap-istanbul",
          "version": "0.0.2",
          "isSemVerMajor": true
        }
      },
      "karma-remap-istanbul": {
        "name": "karma-remap-istanbul",
        "severity": "high",
        "isDirect": true,
        "via": [
          "remap-istanbul"
        ],
        "effects": [],
        "range": ">=0.0.3",
        "nodes": [
          "node_modules/karma-remap-istanbul"
        ],
        "fixAvailable": {
          "name": "karma-remap-istanbul",
          "version": "0.0.2",
          "isSemVerMajor": true
        }
      },
      "lodash.template": {
        "name": "lodash.template",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1096993,
            "name": "lodash.template",
            "dependency": "lodash.template",
            "title": "Command Injection in lodash",
            "url": "https://github.com/advisories/GHSA-35jh-r3h4-6jhm",
            "severity": "high",
            "cwe": [
              "CWE-77",
              "CWE-94"
            ],
            "cvss": {
              "score": 7.2,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H"
            },
            "range": "<=4.5.0"
          }
        ],
        "effects": [
          "gulp-util"
        ],
        "range": "*",
        "nodes": [
          "node_modules/lodash.template"
        ],
        "fixAvailable": {
          "name": "karma-remap-istanbul",
          "version": "0.0.2",
          "isSemVerMajor": true
        }
      },
      "meow": {
        "name": "meow",
        "severity": "high",
        "isDirect": false,
        "via": [
          "trim-newlines"
        ],
        "effects": [],
        "range": "3.4.0 - 5.0.0",
        "nodes": [
          "node_modules/gulp-util/node_modules/meow"
        ],
        "fixAvailable": true
      },
      "minimatch": {
        "name": "minimatch",
        "severity": "low",
        "isDirect": false,
        "via": [
          "brace-expansion"
        ],
        "effects": [
          "@typescript-eslint/typescript-estree",
          "eslint-plugin-n"
        ],
        "range": "5.0.0 - 9.0.5 || >=10.0.1",
        "nodes": [
          "",
          "",
          "node_modules/eslint-plugin-n/node_modules/minimatch"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.27.0",
          "isSemVerMajor": true
        }
      },
      "remap-istanbul": {
        "name": "remap-istanbul",
        "severity": "high",
        "isDirect": false,
        "via": [
          "gulp-util"
        ],
        "effects": [
          "karma-remap-istanbul"
        ],
        "range": "<=0.9.6",
        "nodes": [
          "node_modules/remap-istanbul"
        ],
        "fixAvailable": {
          "name": "karma-remap-istanbul",
          "version": "0.0.2",
          "isSemVerMajor": true
        }
      },
      "trim-newlines": {
        "name": "trim-newlines",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1095100,
            "name": "trim-newlines",
            "dependency": "trim-newlines",
            "title": "Uncontrolled Resource Consumption in trim-newlines",
            "url": "https://github.com/advisories/GHSA-7p7h-4mm5-852v",
            "severity": "high",
            "cwe": [
              "CWE-400"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<3.0.1"
          }
        ],
        "effects": [
          "meow"
        ],
        "range": "<3.0.1",
        "nodes": [
          "node_modules/trim-newlines"
        ],
        "fixAvailable": true
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 6,
        "moderate": 0,
        "high": 6,
        "critical": 0,
        "total": 12
      },
      "dependencies": {
        "prod": 4,
        "dev": 805,
        "optional": 12,
        "peer": 8,
        "peerOptional": 0,
        "total": 808
      }
    }
  }
}

--- end ---
{"added": 808, "removed": 0, "changed": 0, "audited": 809, "funding": 125, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@typescript-eslint/typescript-estree": {"name": "@typescript-eslint/typescript-estree", "severity": "low", "isDirect": false, "via": ["minimatch"], "effects": ["@typescript-eslint/utils"], "range": ">=6.16.0", "nodes": ["node_modules/@typescript-eslint/typescript-estree"], "fixAvailable": true}, "@typescript-eslint/utils": {"name": "@typescript-eslint/utils", "severity": "low", "isDirect": false, "via": ["@typescript-eslint/typescript-estree"], "effects": [], "range": ">=6.16.0", "nodes": ["node_modules/@typescript-eslint/utils"], "fixAvailable": true}, "brace-expansion": {"name": "brace-expansion", "severity": "low", "isDirect": false, "via": [{"source": 1105422, "name": "brace-expansion", "dependency": "brace-expansion", "title": "brace-expansion Regular Expression Denial of Service vulnerability", "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw", "severity": "low", "cwe": ["CWE-400"], "cvss": {"score": 3.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=2.0.1 <=4.0.0"}], "effects": ["minimatch"], "range": "2.0.1 - 4.0.0", "nodes": ["", ""], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.27.0", "isSemVerMajor": true}}, "eslint-config-wikimedia": {"name": "eslint-config-wikimedia", "severity": "low", "isDirect": true, "via": ["eslint-plugin-n"], "effects": [], "range": ">=0.28.0", "nodes": ["node_modules/eslint-config-wikimedia"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.27.0", "isSemVerMajor": true}}, "eslint-plugin-n": {"name": "eslint-plugin-n", "severity": "low", "isDirect": false, "via": ["minimatch"], "effects": ["eslint-config-wikimedia"], "range": ">=17.0.0-0", "nodes": [""], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.27.0", "isSemVerMajor": true}}, "gulp-util": {"name": "gulp-util", "severity": "high", "isDirect": false, "via": ["lodash.template"], "effects": ["remap-istanbul"], "range": ">=1.1.0", "nodes": ["node_modules/gulp-util"], "fixAvailable": {"name": "karma-remap-istanbul", "version": "0.0.2", "isSemVerMajor": true}}, "karma-remap-istanbul": {"name": "karma-remap-istanbul", "severity": "high", "isDirect": true, "via": ["remap-istanbul"], "effects": [], "range": ">=0.0.3", "nodes": ["node_modules/karma-remap-istanbul"], "fixAvailable": {"name": "karma-remap-istanbul", "version": "0.0.2", "isSemVerMajor": true}}, "lodash.template": {"name": "lodash.template", "severity": "high", "isDirect": false, "via": [{"source": 1096993, "name": "lodash.template", "dependency": "lodash.template", "title": "Command Injection in lodash", "url": "https://github.com/advisories/GHSA-35jh-r3h4-6jhm", "severity": "high", "cwe": ["CWE-77", "CWE-94"], "cvss": {"score": 7.2, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H"}, "range": "<=4.5.0"}], "effects": ["gulp-util"], "range": "*", "nodes": ["node_modules/lodash.template"], "fixAvailable": {"name": "karma-remap-istanbul", "version": "0.0.2", "isSemVerMajor": true}}, "meow": {"name": "meow", "severity": "high", "isDirect": false, "via": ["trim-newlines"], "effects": [], "range": "3.4.0 - 5.0.0", "nodes": ["node_modules/gulp-util/node_modules/meow"], "fixAvailable": true}, "minimatch": {"name": "minimatch", "severity": "low", "isDirect": false, "via": ["brace-expansion"], "effects": ["@typescript-eslint/typescript-estree", "eslint-plugin-n"], "range": "5.0.0 - 9.0.5 || >=10.0.1", "nodes": ["", "", "node_modules/eslint-plugin-n/node_modules/minimatch"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.27.0", "isSemVerMajor": true}}, "remap-istanbul": {"name": "remap-istanbul", "severity": "high", "isDirect": false, "via": ["gulp-util"], "effects": ["karma-remap-istanbul"], "range": "<=0.9.6", "nodes": ["node_modules/remap-istanbul"], "fixAvailable": {"name": "karma-remap-istanbul", "version": "0.0.2", "isSemVerMajor": true}}, "trim-newlines": {"name": "trim-newlines", "severity": "high", "isDirect": false, "via": [{"source": 1095100, "name": "trim-newlines", "dependency": "trim-newlines", "title": "Uncontrolled Resource Consumption in trim-newlines", "url": "https://github.com/advisories/GHSA-7p7h-4mm5-852v", "severity": "high", "cwe": ["CWE-400"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<3.0.1"}], "effects": ["meow"], "range": "<3.0.1", "nodes": ["node_modules/trim-newlines"], "fixAvailable": true}}, "metadata": {"vulnerabilities": {"info": 0, "low": 6, "moderate": 0, "high": 6, "critical": 0, "total": 12}, "dependencies": {"prod": 4, "dev": 805, "optional": 12, "peer": 8, "peerOptional": 0, "total": 808}}}}
$ /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 skipping integrity check for git dependency ssh://git@github.com/jdforrester/grunt-promise-q.git 
npm WARN deprecated gulp-util@3.0.7: gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
npm WARN deprecated istanbul@0.4.5: This module is no longer maintained, try this instead:
npm WARN deprecated   npm i nyc
npm WARN deprecated Visit https://istanbul.js.org/integrations for other alternatives.
--- stdout ---

added 807 packages, and audited 808 packages in 9s

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

# npm audit report

brace-expansion  2.0.1 - 4.0.0
brace-expansion Regular Expression Denial of Service vulnerability - https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
fix available via `npm audit fix --force`
Will install eslint-config-wikimedia@0.27.0, which is a breaking change
node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion
node_modules/eslint-plugin-n/node_modules/brace-expansion
  minimatch  5.0.0 - 9.0.5 || >=10.0.1
  Depends on vulnerable versions of brace-expansion
  node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch
  node_modules/eslint-plugin-n/node_modules/minimatch
    @typescript-eslint/typescript-estree  >=6.16.0
    Depends on vulnerable versions of minimatch
    node_modules/@typescript-eslint/typescript-estree
    node_modules/eslint-plugin-n/node_modules/@typescript-eslint/typescript-estree
      @typescript-eslint/utils  >=6.16.0
      Depends on vulnerable versions of @typescript-eslint/typescript-estree
      node_modules/@typescript-eslint/utils
      node_modules/eslint-plugin-n/node_modules/@typescript-eslint/utils
        eslint-plugin-n  >=17.0.0-0
        Depends on vulnerable versions of @typescript-eslint/utils
        Depends on vulnerable versions of minimatch
        node_modules/eslint-plugin-n
          eslint-config-wikimedia  >=0.28.0
          Depends on vulnerable versions of eslint-plugin-n
          node_modules/eslint-config-wikimedia

lodash.template  *
Severity: high
Command Injection in lodash - https://github.com/advisories/GHSA-35jh-r3h4-6jhm
fix available via `npm audit fix --force`
Will install karma-remap-istanbul@0.0.2, which is a breaking change
node_modules/lodash.template
  gulp-util  >=1.1.0
  Depends on vulnerable versions of lodash.template
  node_modules/gulp-util
    remap-istanbul  <=0.9.6
    Depends on vulnerable versions of gulp-util
    node_modules/remap-istanbul
      karma-remap-istanbul  >=0.0.3
      Depends on vulnerable versions of remap-istanbul
      node_modules/karma-remap-istanbul

trim-newlines  <3.0.1
Severity: high
Uncontrolled Resource Consumption in trim-newlines - https://github.com/advisories/GHSA-7p7h-4mm5-852v
fix available via `npm audit fix`
node_modules/trim-newlines
  meow  3.4.0 - 5.0.0
  Depends on vulnerable versions of trim-newlines
  node_modules/gulp-util/node_modules/meow

12 vulnerabilities (6 low, 6 high)

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 skipping integrity check for git dependency ssh://git@github.com/jdforrester/grunt-promise-q.git 
npm WARN deprecated gulp-util@3.0.7: gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
npm WARN deprecated istanbul@0.4.5: This module is no longer maintained, try this instead:
npm WARN deprecated   npm i nyc
npm WARN deprecated Visit https://istanbul.js.org/integrations for other alternatives.
--- stdout ---

added 807 packages, and audited 808 packages in 11s

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

12 vulnerabilities (6 low, 6 high)

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 ---
(node:430) Warning: Accessing non-existent property 'VERSION' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
--- stdout ---

> oojs-ui@0.51.7 test
> npm run minify:svg:src && grunt test


> oojs-ui@0.51.7 minify:svg:src
> svgo --config=.svgo.config.js --pretty --quiet --recursive --folder ./src/themes/wikimediaui/images/

Running "eslint:all" (eslint) task

/src/repo/Gruntfile.js
  501:17  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  505:17  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  509:17  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  631:19  warning  Found non-literal argument in require             security/detect-non-literal-require

/src/repo/build/tasks/colorize-svg.js
  339:1  warning  This line has a length of 122. Maximum allowed is 100  max-len

/src/repo/demos/demo.js
  476:1  warning  This line has a length of 101. Maximum allowed is 100  max-len

/src/repo/src/ActionSet.js
  157:1  warning  This line has a length of 121. Maximum allowed is 100  max-len
  158:1  warning  This line has a length of 113. Maximum allowed is 100  max-len

/src/repo/src/Dialog.js
  232:1  warning  This line has a length of 110. Maximum allowed is 100  max-len

/src/repo/src/Element.js
  14:1  warning  This line has a length of 106. Maximum allowed is 100  max-len

/src/repo/src/Tool.js
  31:1  warning  This line has a length of 104. Maximum allowed is 100  max-len

/src/repo/src/ToolGroup.js
  28:1  warning  This line has a length of 104. Maximum allowed is 100  max-len
  30:1  warning  This line has a length of 107. Maximum allowed is 100  max-len

/src/repo/src/Toolbar.js
  141:1  warning  This line has a length of 120. Maximum allowed is 100  max-len
  275:1  warning  This line has a length of 105. Maximum allowed is 100  max-len

/src/repo/src/Widget.js
  13:1  warning  This line has a length of 105. Maximum allowed is 100  max-len

/src/repo/src/Window.js
   12:1  warning  This line has a length of 111. Maximum allowed is 100                              max-len
   22:1  warning  This line has a length of 112. Maximum allowed is 100                              max-len
   26:1  warning  This line has a length of 130. Maximum allowed is 100                              max-len
   45:1  warning  This line has a length of 106. Maximum allowed is 100                              max-len
   46:1  warning  This line has a length of 109. Maximum allowed is 100                              max-len
  136:1  warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check
  364:1  warning  This line has a length of 106. Maximum allowed is 100                              max-len
  563:1  warning  This line has a length of 106. Maximum allowed is 100                              max-len

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

/src/repo/src/dialogs/MessageDialog.js
  145:1  warning  This line has a length of 107. Maximum allowed is 100  max-len

/src/repo/src/dialogs/ProcessDialog.js
  248:1  warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check

/src/repo/src/layouts/BookletLayout.js
   50:1  warning  This line has a length of 105. Maximum allowed is 100  max-len
  127:1  warning  This line has a length of 105. Maximum allowed is 100  max-len
  135:1  warning  This line has a length of 109. Maximum allowed is 100  max-len

/src/repo/src/layouts/FieldsetLayout.js
  51:1  warning  This line has a length of 106. Maximum allowed is 100  max-len

/src/repo/src/layouts/FormLayout.js
  117:1  warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check

/src/repo/src/layouts/HorizontalLayout.js
  24:1  warning  This line has a length of 103. Maximum allowed is 100  max-len

/src/repo/src/layouts/IndexLayout.js
   39:1  warning  This line has a length of 104. Maximum allowed is 100  max-len
   42:1  warning  This line has a length of 102. Maximum allowed is 100  max-len
  122:1  warning  This line has a length of 112. Maximum allowed is 100  max-len
  130:1  warning  This line has a length of 114. Maximum allowed is 100  max-len
  138:1  warning  This line has a length of 102. Maximum allowed is 100  max-len

/src/repo/src/layouts/MenuLayout.js
  84:1  warning  This line has a length of 104. Maximum allowed is 100  max-len

/src/repo/src/layouts/PanelLayout.js
  22:1  warning  This line has a length of 101. Maximum allowed is 100  max-len
  24:1  warning  This line has a length of 108. Maximum allowed is 100  max-len

/src/repo/src/layouts/StackLayout.js
  31:1  warning  This line has a length of 108. Maximum allowed is 100  max-len
  34:1  warning  This line has a length of 104. Maximum allowed is 100  max-len
  67:1  warning  This line has a length of 132. Maximum allowed is 100  max-len

/src/repo/src/mixins/AccessKeyedElement.js
  24:1  warning  This line has a length of 103. Maximum allowed is 100  max-len

/src/repo/src/mixins/ClippableElement.js
  21:1  warning  This line has a length of 103. Maximum allowed is 100  max-len

/src/repo/src/mixins/DraggableElement.js
  12:1  warning  This line has a length of 103. Maximum allowed is 100  max-len
  14:1  warning  This line has a length of 106. Maximum allowed is 100  max-len

/src/repo/src/mixins/DraggableGroupElement.js
  17:1  warning  This line has a length of 106. Maximum allowed is 100  max-len

/src/repo/src/mixins/FlaggedElement.js
  40:1  warning  This line has a length of 108. Maximum allowed is 100  max-len

/src/repo/src/mixins/FloatableElement.js
   18:1  warning  This line has a length of 103. Maximum allowed is 100  max-len
  220:1  warning  This line has a length of 101. Maximum allowed is 100  max-len

/src/repo/src/mixins/IconElement.js
  116:1  warning  This line has a length of 127. Maximum allowed is 100  max-len

/src/repo/src/mixins/LabelElement.js
  19:1  warning  This line has a length of 104. Maximum allowed is 100  max-len

/src/repo/src/mixins/LookupElement.js
   24:1  warning  This line has a length of 103. Maximum allowed is 100                              max-len
   28:1  warning  This line has a length of 103. Maximum allowed is 100                              max-len
   31:1  warning  This line has a length of 102. Maximum allowed is 100                              max-len
   34:1  warning  This line has a length of 106. Maximum allowed is 100                              max-len
  225:1  warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check

/src/repo/src/mixins/RequestManager.js
  10:1  warning  This line has a length of 108. Maximum allowed is 100  max-len

/src/repo/src/mixins/RequiredElement.js
  13:1  warning  This line has a length of 108. Maximum allowed is 100  max-len

/src/repo/src/mixins/TabIndexedElement.js
  37:1  warning  This line has a length of 107. Maximum allowed is 100  max-len
  40:1  warning  This line has a length of 102. Maximum allowed is 100  max-len

/src/repo/src/mixins/TitledElement.js
  24:1  warning  This line has a length of 122. Maximum allowed is 100  max-len

/src/repo/src/toolgroups/ListToolGroup.js
  87:1  warning  This line has a length of 107. Maximum allowed is 100  max-len
  93:1  warning  This line has a length of 104. Maximum allowed is 100  max-len
  96:1  warning  This line has a length of 107. Maximum allowed is 100  max-len

/src/repo/src/widgets/ActionWidget.js
  19:1  warning  This line has a length of 104. Maximum allowed is 100  max-len

/src/repo/src/widgets/ButtonInputWidget.js
   32:1  warning  This line has a length of 112. Maximum allowed is 100  max-len
   33:1  warning  This line has a length of 169. Maximum allowed is 100  max-len
  130:1  warning  This line has a length of 119. Maximum allowed is 100  max-len

/src/repo/src/widgets/ButtonMenuSelectWidget.js
  46:1  warning  This line has a length of 105. Maximum allowed is 100  max-len

/src/repo/src/widgets/CheckboxInputWidget.js
  40:1  warning  This line has a length of 102. Maximum allowed is 100  max-len

/src/repo/src/widgets/CheckboxMultiselectInputWidget.js
  149:1  warning  This line has a length of 125. Maximum allowed is 100  max-len

/src/repo/src/widgets/ComboBoxInputWidget.js
  60:1  warning  This line has a length of 104. Maximum allowed is 100  max-len
  62:1  warning  This line has a length of 104. Maximum allowed is 100  max-len

/src/repo/src/widgets/DropdownInputWidget.js
  33:1  warning  This line has a length of 106. Maximum allowed is 100  max-len
  34:1  warning  This line has a length of 105. Maximum allowed is 100  max-len

/src/repo/src/widgets/DropdownWidget.js
  53:1  warning  This line has a length of 105. Maximum allowed is 100  max-len

/src/repo/src/widgets/InputWidget.js
  23:1  warning  This line has a length of 104. Maximum allowed is 100  max-len

/src/repo/src/widgets/LabelWidget.js
  38:1  warning  This line has a length of 104. Maximum allowed is 100  max-len

/src/repo/src/widgets/MenuSelectWidget.js
  32:1  warning  This line has a length of 106. Maximum allowed is 100  max-len
  36:1  warning  This line has a length of 109. Maximum allowed is 100  max-len
  39:1  warning  This line has a length of 107. Maximum allowed is 100  max-len
  45:1  warning  This line has a length of 101. Maximum allowed is 100  max-len
  51:1  warning  This line has a length of 104. Maximum allowed is 100  max-len

/src/repo/src/widgets/MenuTagMultiselectWidget.js
  23:1  warning  This line has a length of 108. Maximum allowed is 100  max-len

/src/repo/src/widgets/MultilineTextInputWidget.js
  179:1  warning  This line has a length of 105. Maximum allowed is 100  max-len

/src/repo/src/widgets/NumberInputWidget.js
  27:1  warning  This line has a length of 109. Maximum allowed is 100  max-len

/src/repo/src/widgets/PopupButtonWidget.js
  25:1  warning  This line has a length of 105. Maximum allowed is 100  max-len

/src/repo/src/widgets/PopupWidget.js
  31:1  warning  This line has a length of 104. Maximum allowed is 100  max-len
  32:1  warning  This line has a length of 108. Maximum allowed is 100  max-len
  34:1  warning  This line has a length of 104. Maximum allowed is 100  max-len
  54:1  warning  This line has a length of 103. Maximum allowed is 100  max-len
  57:1  warning  This line has a length of 104. Maximum allowed is 100  max-len
  60:1  warning  This line has a length of 107. Maximum allowed is 100  max-len
  69:1  warning  This line has a length of 107. Maximum allowed is 100  max-len

/src/repo/src/widgets/ProgressBarWidget.js
  41:1  warning  This line has a length of 107. Maximum allowed is 100  max-len

/src/repo/src/widgets/RadioInputWidget.js
  40:1  warning  This line has a length of 107. Maximum allowed is 100  max-len

/src/repo/src/widgets/SearchInputWidget.js
  56:1  warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check
  71:1  warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check

/src/repo/src/widgets/SearchWidget.js
  22:1  warning  This line has a length of 104. Maximum allowed is 100  max-len
  77:1  warning  This line has a length of 102. Maximum allowed is 100  max-len

/src/repo/src/widgets/TabOptionWidget.js
  67:1  warning  This line has a length of 101. Maximum allowed is 100  max-len

/src/repo/src/widgets/TagMultiselectWidget.js
  228:1  warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check
  246:1  warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check
  267:1  warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check
  362:1  warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check

/src/repo/src/widgets/TextInputWidget.js
   42:1  warning  This line has a length of 102. Maximum allowed is 100  max-len
   44:1  warning  This line has a length of 104. Maximum allowed is 100  max-len
   46:1  warning  This line has a length of 105. Maximum allowed is 100  max-len
   48:1  warning  This line has a length of 106. Maximum allowed is 100  max-len
  505:1  warning  This line has a length of 103. Maximum allowed is 100  max-len

/src/repo/tests/TestTimer.js
  68:1  warning  This line has a length of 116. Maximum allowed is 100  max-len

✖ 114 problems (0 errors, 114 warnings)


Running "stylelint:dev" (stylelint) task
>> src/themes/apex/elements.less
>>   358:3  ⚠  Unexpected browser feature "css-dir-pseudo" is not supported by Edge 103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119, Chrome 103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3  plugin/no-unsupported-browser-features
>> 
>> src/themes/wikimediaui/elements.less
>>   443:3  ⚠  Unexpected browser feature "css-dir-pseudo" is not supported by Edge 103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119, Chrome 103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3  plugin/no-unsupported-browser-features
>> 
>> ⚠ 2 problems (0 errors, 2 warnings)

⚠ 2 warnings

>> Linted 125 files without errors

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

Running "pre-git-build" task

Running "clean:build" (clean) task
>> 0 paths cleaned.

Running "fileExists:src" (fileExists) task
Checking 247 files for existence...
OK

Running "tyops:src" (tyops) task
>> No typos found; 271 files checked for 16 typos.

Running "concat:i18nMessages" (concat) task

Running "concat:js" (concat) task

Running "concat:omnibusJs" (concat) task

Running "colorizeSvg:wikimediaui-icons-movement" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-movement.less".
Created "dist/tmp/themes/wikimediaui/icons-movement.rtl.less".
Created 75 SVG files.

Running "colorizeSvg:wikimediaui-icons-content" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-content.less".
Created "dist/tmp/themes/wikimediaui/icons-content.rtl.less".
Created 105 SVG files.

Running "colorizeSvg:wikimediaui-icons-alerts" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-alerts.less".
Created "dist/tmp/themes/wikimediaui/icons-alerts.rtl.less".
Created 45 SVG files.

Running "colorizeSvg:wikimediaui-icons-interactions" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-interactions.less".
Created "dist/tmp/themes/wikimediaui/icons-interactions.rtl.less".
Created 127 SVG files.

Running "colorizeSvg:wikimediaui-icons-moderation" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-moderation.less".
Created "dist/tmp/themes/wikimediaui/icons-moderation.rtl.less".
Created 61 SVG files.

Running "colorizeSvg:wikimediaui-icons-editing-core" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-editing-core.less".
Created "dist/tmp/themes/wikimediaui/icons-editing-core.rtl.less".
Created 40 SVG files.

Running "colorizeSvg:wikimediaui-icons-editing-styling" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-editing-styling.less".
Created "dist/tmp/themes/wikimediaui/icons-editing-styling.rtl.less".
Created 135 SVG files.

Running "colorizeSvg:wikimediaui-icons-editing-functions" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-editing-functions.less".
Created "dist/tmp/themes/wikimediaui/icons-editing-functions.rtl.less".
Created 21 SVG files.

Running "colorizeSvg:wikimediaui-icons-editing-list" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-editing-list.less".
Created "dist/tmp/themes/wikimediaui/icons-editing-list.rtl.less".
Created 24 SVG files.

Running "colorizeSvg:wikimediaui-icons-editing-advanced" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-editing-advanced.less".
Created "dist/tmp/themes/wikimediaui/icons-editing-advanced.rtl.less".
Created 189 SVG files.

Running "colorizeSvg:wikimediaui-icons-editing-citation" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-editing-citation.less".
Created "dist/tmp/themes/wikimediaui/icons-editing-citation.rtl.less".
Created 33 SVG files.

Running "colorizeSvg:wikimediaui-icons-media" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-media.less".
Created "dist/tmp/themes/wikimediaui/icons-media.rtl.less".
Created 69 SVG files.

Running "colorizeSvg:wikimediaui-icons-location" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-location.less".
Created "dist/tmp/themes/wikimediaui/icons-location.rtl.less".
Created 18 SVG files.

Running "colorizeSvg:wikimediaui-icons-user" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-user.less".
Created "dist/tmp/themes/wikimediaui/icons-user.rtl.less".
Created 57 SVG files.

Running "colorizeSvg:wikimediaui-icons-layout" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-layout.less".
Created "dist/tmp/themes/wikimediaui/icons-layout.rtl.less".
Created 30 SVG files.

Running "colorizeSvg:wikimediaui-icons-accessibility" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-accessibility.less".
Created "dist/tmp/themes/wikimediaui/icons-accessibility.rtl.less".
Created 33 SVG files.

Running "colorizeSvg:wikimediaui-icons-wikimedia" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/icons-wikimedia.less".
Created "dist/tmp/themes/wikimediaui/icons-wikimedia.rtl.less".
Created 36 SVG files.

Running "colorizeSvg:wikimediaui-indicators" (colorizeSvg) task
Created "dist/tmp/themes/wikimediaui/indicators.less".
Created "dist/tmp/themes/wikimediaui/indicators.rtl.less".
Created 8 SVG files.

Running "colorizeSvg:apex-icons-movement" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-movement.less".
Created "dist/tmp/themes/apex/icons-movement.rtl.less".
Created 25 SVG files.

Running "colorizeSvg:apex-icons-content" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-content.less".
Created "dist/tmp/themes/apex/icons-content.rtl.less".
Created 33 SVG files.

Running "colorizeSvg:apex-icons-alerts" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-alerts.less".
Created "dist/tmp/themes/apex/icons-alerts.rtl.less".
Created 14 SVG files.

Running "colorizeSvg:apex-icons-interactions" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-interactions.less".
Created "dist/tmp/themes/apex/icons-interactions.rtl.less".
Created 40 SVG files.

Running "colorizeSvg:apex-icons-moderation" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-moderation.less".
Created "dist/tmp/themes/apex/icons-moderation.rtl.less".
Created 19 SVG files.

Running "colorizeSvg:apex-icons-editing-core" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-editing-core.less".
Created "dist/tmp/themes/apex/icons-editing-core.rtl.less".
Created 13 SVG files.

Running "colorizeSvg:apex-icons-editing-styling" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-editing-styling.less".
Created "dist/tmp/themes/apex/icons-editing-styling.rtl.less".
Created 45 SVG files.

Running "colorizeSvg:apex-icons-editing-functions" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-editing-functions.less".
Created "dist/tmp/themes/apex/icons-editing-functions.rtl.less".
Created 7 SVG files.

Running "colorizeSvg:apex-icons-editing-list" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-editing-list.less".
Created "dist/tmp/themes/apex/icons-editing-list.rtl.less".
Created 8 SVG files.

Running "colorizeSvg:apex-icons-editing-advanced" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-editing-advanced.less".
Created "dist/tmp/themes/apex/icons-editing-advanced.rtl.less".
Created 63 SVG files.

Running "colorizeSvg:apex-icons-editing-citation" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-editing-citation.less".
Created "dist/tmp/themes/apex/icons-editing-citation.rtl.less".
Created 11 SVG files.

Running "colorizeSvg:apex-icons-media" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-media.less".
Created "dist/tmp/themes/apex/icons-media.rtl.less".
Created 23 SVG files.

Running "colorizeSvg:apex-icons-location" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-location.less".
Created "dist/tmp/themes/apex/icons-location.rtl.less".
Created 6 SVG files.

Running "colorizeSvg:apex-icons-user" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-user.less".
Created "dist/tmp/themes/apex/icons-user.rtl.less".
Created 17 SVG files.

Running "colorizeSvg:apex-icons-layout" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-layout.less".
Created "dist/tmp/themes/apex/icons-layout.rtl.less".
Created 10 SVG files.

Running "colorizeSvg:apex-icons-accessibility" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-accessibility.less".
Created "dist/tmp/themes/apex/icons-accessibility.rtl.less".
Created 11 SVG files.

Running "colorizeSvg:apex-icons-wikimedia" (colorizeSvg) task
Created "dist/tmp/themes/apex/icons-wikimedia.less".
Created "dist/tmp/themes/apex/icons-wikimedia.rtl.less".
Created 18 SVG files.

Running "colorizeSvg:apex-indicators" (colorizeSvg) task
Created "dist/tmp/themes/apex/indicators.less".
Created "dist/tmp/themes/apex/indicators.rtl.less".
Created 4 SVG files.

Running "less:wikimediaui" (less) task
>> 131 stylesheets created.

Running "less:apex" (less) task
>> 131 stylesheets created.

Running "cssjanus:dist" (cssjanus) task
File "dist/tmp/wikimediaui/styles/Element.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/ButtonElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/ClippableElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/FloatableElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/FlaggedElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/GroupElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/LabelElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/IconElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/IndicatorElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/PendingElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/PopupElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/TabIndexedElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/TitledElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/Layout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/FieldLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/ActionFieldLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/FieldsetLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/FormLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/PanelLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/HorizontalLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/Widget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/SelectWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/OptionWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/DecoratedOptionWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/RadioSelectWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/RadioOptionWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/LabelWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/MessageWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/IconWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/IndicatorWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/ButtonWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/ButtonGroupWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/PopupWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/PopupButtonWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/InputWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/ButtonInputWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/CheckboxInputWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/CheckboxMultiselectInputWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/DropdownInputWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/RadioInputWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/RadioSelectInputWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/TextInputWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/MenuSelectWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/MenuOptionWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/MenuSectionOptionWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/DropdownWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/ComboBoxInputWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/MultiselectWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/MultioptionWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/CheckboxMultiselectWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/CheckboxMultioptionWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/ProgressBarWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/NumberInputWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/SelectFileInputWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/ToggleWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/ToggleSwitchWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/core.rtl.css" created.
File "dist/tmp/apex/styles/Element.rtl.css" created.
File "dist/tmp/apex/styles/elements/ButtonElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/ClippableElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/FloatableElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/FlaggedElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/GroupElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/LabelElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/IconElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/IndicatorElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/PendingElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/PopupElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/TabIndexedElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/TitledElement.rtl.css" created.
File "dist/tmp/apex/styles/Layout.rtl.css" created.
File "dist/tmp/apex/styles/layouts/FieldLayout.rtl.css" created.
File "dist/tmp/apex/styles/layouts/ActionFieldLayout.rtl.css" created.
File "dist/tmp/apex/styles/layouts/FieldsetLayout.rtl.css" created.
File "dist/tmp/apex/styles/layouts/FormLayout.rtl.css" created.
File "dist/tmp/apex/styles/layouts/PanelLayout.rtl.css" created.
File "dist/tmp/apex/styles/layouts/HorizontalLayout.rtl.css" created.
File "dist/tmp/apex/styles/Widget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/SelectWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/OptionWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/DecoratedOptionWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/RadioSelectWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/RadioOptionWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/LabelWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/MessageWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/IconWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/IndicatorWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/ButtonWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/ButtonGroupWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/PopupWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/PopupButtonWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/InputWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/ButtonInputWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/CheckboxInputWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/CheckboxMultiselectInputWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/DropdownInputWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/RadioInputWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/RadioSelectInputWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/TextInputWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/MenuSelectWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/MenuOptionWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/MenuSectionOptionWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/DropdownWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/ComboBoxInputWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/MultiselectWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/MultioptionWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/CheckboxMultiselectWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/CheckboxMultioptionWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/ProgressBarWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/NumberInputWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/SelectFileInputWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/ToggleWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/ToggleSwitchWidget.rtl.css" created.
File "dist/tmp/apex/styles/core.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/DraggableElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/DraggableGroupElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/elements/LookupElement.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/BookletLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/IndexLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/CopyTextLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/MenuLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/TabPanelLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/PageLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/layouts/StackLayout.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/ButtonSelectWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/ButtonOptionWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/ToggleButtonWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/OutlineSelectWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/OutlineOptionWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/OutlineControlsWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/TabSelectWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/TabOptionWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/ButtonMenuSelectWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/TagMultiselectWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/MenuTagMultiselectWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/TagItemWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/SearchWidget.rtl.css" created.
File "dist/tmp/apex/styles/elements/DraggableElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/DraggableGroupElement.rtl.css" created.
File "dist/tmp/apex/styles/elements/LookupElement.rtl.css" created.
File "dist/tmp/apex/styles/layouts/BookletLayout.rtl.css" created.
File "dist/tmp/apex/styles/layouts/IndexLayout.rtl.css" created.
File "dist/tmp/apex/styles/layouts/CopyTextLayout.rtl.css" created.
File "dist/tmp/apex/styles/layouts/MenuLayout.rtl.css" created.
File "dist/tmp/apex/styles/layouts/TabPanelLayout.rtl.css" created.
File "dist/tmp/apex/styles/layouts/PageLayout.rtl.css" created.
File "dist/tmp/apex/styles/layouts/StackLayout.rtl.css" created.
File "dist/tmp/apex/styles/widgets/ButtonSelectWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/ButtonOptionWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/ToggleButtonWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/OutlineSelectWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/OutlineOptionWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/OutlineControlsWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/TabSelectWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/TabOptionWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/ButtonMenuSelectWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/TagMultiselectWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/MenuTagMultiselectWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/TagItemWidget.rtl.css" created.
File "dist/tmp/apex/styles/widgets/SearchWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/Tool.rtl.css" created.
File "dist/tmp/wikimediaui/styles/tools/PopupTool.rtl.css" created.
File "dist/tmp/wikimediaui/styles/tools/ToolGroupTool.rtl.css" created.
File "dist/tmp/wikimediaui/styles/ToolGroup.rtl.css" created.
File "dist/tmp/wikimediaui/styles/toolgroups/BarToolGroup.rtl.css" created.
File "dist/tmp/wikimediaui/styles/toolgroups/PopupToolGroup.rtl.css" created.
File "dist/tmp/wikimediaui/styles/toolgroups/ListToolGroup.rtl.css" created.
File "dist/tmp/wikimediaui/styles/toolgroups/MenuToolGroup.rtl.css" created.
File "dist/tmp/wikimediaui/styles/Toolbar.rtl.css" created.
File "dist/tmp/apex/styles/Tool.rtl.css" created.
File "dist/tmp/apex/styles/tools/PopupTool.rtl.css" created.
File "dist/tmp/apex/styles/tools/ToolGroupTool.rtl.css" created.
File "dist/tmp/apex/styles/ToolGroup.rtl.css" created.
File "dist/tmp/apex/styles/toolgroups/BarToolGroup.rtl.css" created.
File "dist/tmp/apex/styles/toolgroups/PopupToolGroup.rtl.css" created.
File "dist/tmp/apex/styles/toolgroups/ListToolGroup.rtl.css" created.
File "dist/tmp/apex/styles/toolgroups/MenuToolGroup.rtl.css" created.
File "dist/tmp/apex/styles/Toolbar.rtl.css" created.
File "dist/tmp/wikimediaui/styles/widgets/ActionWidget.rtl.css" created.
File "dist/tmp/wikimediaui/styles/Window.rtl.css" created.
File "dist/tmp/wikimediaui/styles/Dialog.rtl.css" created.
File "dist/tmp/wikimediaui/styles/dialogs/MessageDialog.rtl.css" created.
File "dist/tmp/wikimediaui/styles/dialogs/ProcessDialog.rtl.css" created.
File "dist/tmp/wikimediaui/styles/WindowManager.rtl.css" created.
File "dist/tmp/apex/styles/widgets/ActionWidget.rtl.css" created.
File "dist/tmp/apex/styles/Window.rtl.css" created.
File "dist/tmp/apex/styles/Dialog.rtl.css" created.
File "dist/tmp/apex/styles/dialogs/MessageDialog.rtl.css" created.
File "dist/tmp/apex/styles/dialogs/ProcessDialog.rtl.css" created.
File "dist/tmp/apex/styles/WindowManager.rtl.css" created.

Running "cssjanus:demoCss" (cssjanus) task
File "demos/styles/demo.rtl.css" created.

Running "concat:css" (concat) task

Running "concat:omnibusCss" (concat) task

Running "concat:codexTokensCss" (concat) task

Running "concat:demoCss" (concat) task

Running "copy:images" (copy) task
Copied 36 files

Running "copy:i18n" (copy) task
Copied 220 files

Running "copy:dist" (copy) task
Copied 4 files

Running "clean:tmp" (clean) task
>> 1 path cleaned.

Running "clean:demos" (clean) task
>> 0 paths cleaned.

Running "copy:demos" (copy) task
Created 40 directories, copied 2239 files

Running "demo-image-list" task

Running "exec:demos" (exec) task
>> Loading composer repositories with package information
>> Updating dependencies
>> Lock file operations: 66 installs, 0 updates, 0 removals
>> - Locking composer/pcre (3.3.2)
>> - Locking composer/semver (3.4.3)
>> - Locking composer/spdx-licenses (1.5.9)
>> - Locking composer/xdebug-handler (3.0.5)
>> - Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0)
>> - Locking doctrine/deprecations (1.1.5)
>> - Locking doctrine/instantiator (2.0.0)
>> - Locking felixfbecker/advanced-json-rpc (v3.2.1)
>> - Locking mediawiki/mediawiki-codesniffer (v47.0.0)
>> - Locking mediawiki/mediawiki-phan-config (0.15.1)
>> - Locking mediawiki/minus-x (1.1.3)
>> - Locking mediawiki/phan-taint-check-plugin (6.1.0)
>> - Locking microsoft/tolerant-php-parser (v0.1.2)
>> - Locking myclabs/deep-copy (1.13.1)
>> - Locking netresearch/jsonmapper (v4.5.0)
>> - Locking nikic/php-parser (v5.5.0)
>> - Locking phan/phan (5.4.5)
>> - Locking phar-io/manifest (2.0.4)
>> - Locking phar-io/version (3.2.1)
>> - Locking php-parallel-lint/php-console-color (v1.0.1)
>> - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
>> - Locking php-parallel-lint/php-parallel-lint (v1.4.0)
>> - Locking phpcsstandards/phpcsextra (1.2.1)
>> - Locking phpcsstandards/phpcsutils (1.0.12)
>> - Locking phpdocumentor/reflection-common (2.2.0)
>> - Locking phpdocumentor/reflection-docblock (5.6.2)
>> - Locking phpdocumentor/type-resolver (1.10.0)
>> - Locking phpstan/phpdoc-parser (2.1.0)
>> - Locking phpunit/php-code-coverage (9.2.32)
>> - Locking phpunit/php-file-iterator (3.0.6)
>> - Locking phpunit/php-invoker (3.1.1)
>> - Locking phpunit/php-text-template (2.0.4)
>> - Locking phpunit/php-timer (5.0.3)
>> - Locking phpunit/phpunit (9.6.21)
>> - Locking psr/container (2.0.2)
>> - Locking psr/log (3.0.2)
>> - Locking sabre/event (5.1.7)
>> - Locking sebastian/cli-parser (1.0.2)
>> - Locking sebastian/code-unit (1.0.8)
>> - Locking sebastian/code-unit-reverse-lookup (2.0.3)
>> - Locking sebastian/comparator (4.0.8)
>> - Locking sebastian/complexity (2.0.3)
>> - Locking sebastian/diff (4.0.6)
>> - Locking sebastian/environment (5.1.5)
>> - Locking sebastian/exporter (4.0.6)
>> - Locking sebastian/global-state (5.0.7)
>> - Locking sebastian/lines-of-code (1.0.4)
>> - Locking sebastian/object-enumerator (4.0.4)
>> - Locking sebastian/object-reflector (2.0.4)
>> - Locking sebastian/recursion-context (4.0.5)
>> - Locking sebastian/resource-operations (3.0.4)
>> - Locking sebastian/type (3.2.1)
>> - Locking sebastian/version (3.0.2)
>> - Locking squizlabs/php_codesniffer (3.12.2)
>> - Locking symfony/console (v7.3.0)
>> - Locking symfony/deprecation-contracts (v3.6.0)
>> - Locking symfony/polyfill-ctype (v1.32.0)
>> - Locking symfony/polyfill-intl-grapheme (v1.32.0)
>> - Locking symfony/polyfill-intl-normalizer (v1.32.0)
>> - Locking symfony/polyfill-mbstring (v1.32.0)
>> - Locking symfony/polyfill-php80 (v1.32.0)
>> - Locking symfony/service-contracts (v3.6.0)
>> - Locking symfony/string (v7.3.0)
>> - Locking theseer/tokenizer (1.2.3)
>> - Locking tysonandre/var_representation_polyfill (0.1.3)
>> - Locking webmozart/assert (1.11.0)
>> Writing lock file
>> Installing dependencies from lock file
>> Nothing to install, update or remove
>> 9 package suggestions were added by new dependencies, use `composer suggest` to see details.
>> Generating autoload files
>> No installed packages - skipping audit.

Running "exec:rubyTestSuiteGenerator" (exec) task
>> Generated 8253 test cases.
>> * ActionFieldLayout: 480
>> * FieldLayout: 544
>> * FieldsetLayout: 79
>> * FormLayout: 6
>> * HorizontalLayout: 1
>> * IndexLayout: 106
>> * MenuLayout: 78
>> * PanelLayout: 69
>> * StackLayout: 73
>> * TabPanelLayout: 69
>> * ButtonGroupWidget: 14
>> * ButtonInputWidget: 568
>> * ButtonWidget: 616
>> * CheckboxInputWidget: 160
>> * CheckboxMultiselectInputWidget: 156
>> * ComboBoxInputWidget: 751
>> * DropdownInputWidget: 194
>> * HiddenInputWidget: 9
>> * IconWidget: 92
>> * IndicatorWidget: 66
>> * LabelWidget: 34
>> * MessageWidget: 92
>> * MultilineTextInputWidget: 715
>> * NumberInputWidget: 964
>> * OptionWidget: 122
>> * ProgressBarWidget: 29
>> * RadioInputWidget: 160
>> * RadioSelectInputWidget: 156
>> * SearchInputWidget: 607
>> * SelectFileInputWidget: 338
>> * SelectWidget: 6
>> * TabOptionWidget: 139
>> * TabSelectWidget: 38
>> * TextInputWidget: 675
>> * ToggleSwitchWidget: 38
>> * ToggleWidget: 9

Running "exec:phpGenerateJSPHPForKarma" (exec) task
>> Loading composer repositories with package information
>> Updating dependencies
>> Nothing to modify in lock file
>> Installing dependencies from lock file (including require-dev)
>> Nothing to install, update or remove
>> Generating autoload files
>> 42 packages you are using are looking for funding.
>> Use the `composer fund` command to find out more!
>> No security vulnerability advisories found

Running "clean:coverage" (clean) task
>> 0 paths cleaned.

Running "karma:main" (karma) task
11 06 2025 11:10:13.562:INFO [karma-server]: Karma v6.3.20 server started at http://localhost:9876/
11 06 2025 11:10:13.563:INFO [launcher]: Launching browsers ChromeCustom with concurrency unlimited
11 06 2025 11:10:13.568:INFO [launcher]: Starting browser ChromeHeadless
11 06 2025 11:10:17.552:INFO [Chrome Headless 136.0.0.0 (Linux x86_64)]: Connected on socket MmvIjuXe8oEAtYDZAAAB with id 73222094
Chrome Headless 136.0.0.0 (Linux x86_64) WARN: 'QUnit.load is deprecated and will be removed in QUnit 3.0. https://qunitjs.com/api/QUnit/load/'
Chrome Headless 136.0.0.0 (Linux x86_64) WARN: 'QUnit.load is deprecated and will be removed in QUnit 3.0. https://qunitjs.com/api/QUnit/load/'
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
..................................................................
Chrome Headless 136.0.0.0 (Linux x86_64): Executed 8306 of 8306 SUCCESS (37.98 secs / 36.382 secs)
TOTAL: 8306 SUCCESS

=============================== Coverage summary ===============================
Statements   : 56.15% ( 4243/7557 )
Branches     : 36.22% ( 1453/4012 )
Functions    : 49.28% ( 550/1116 )
Lines        : 56.23% ( 4190/7452 )
================================================================================

Done.

--- end ---
{}
{}
{"1095100": {"source": 1095100, "name": "trim-newlines", "dependency": "trim-newlines", "title": "Uncontrolled Resource Consumption in trim-newlines", "url": "https://github.com/advisories/GHSA-7p7h-4mm5-852v", "severity": "high", "cwe": ["CWE-400"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<3.0.1"}}
{"1095100": {"source": 1095100, "name": "trim-newlines", "dependency": "trim-newlines", "title": "Uncontrolled Resource Consumption in trim-newlines", "url": "https://github.com/advisories/GHSA-7p7h-4mm5-852v", "severity": "high", "cwe": ["CWE-400"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<3.0.1"}}
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

--- end ---
[DNM] there are no updates
$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmphis1wps4
--- stdout ---
[master 30d9e85] [DNM] there are no updates
 1 file changed, 433 insertions(+), 108 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From 30d9e8584c5c54dc745d06d895f9da42840d2183 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Wed, 11 Jun 2025 11:10:59 +0000
Subject: [PATCH] [DNM] there are no updates

Change-Id: I93b914dd4fd491e2380972f3af419bb72f42da2b
---
 package-lock.json | 541 +++++++++++++++++++++++++++++++++++++---------
 1 file changed, 433 insertions(+), 108 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 7c2a9c8..165bddb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -508,24 +508,27 @@
 			}
 		},
 		"node_modules/@eslint-community/eslint-utils": {
-			"version": "4.4.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-			"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+			"version": "4.7.0",
+			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+			"integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
 			"dev": true,
 			"dependencies": {
-				"eslint-visitor-keys": "^3.3.0"
+				"eslint-visitor-keys": "^3.4.3"
 			},
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
 			},
+			"funding": {
+				"url": "https://opencollective.com/eslint"
+			},
 			"peerDependencies": {
 				"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
 			}
 		},
 		"node_modules/@eslint-community/regexpp": {
-			"version": "4.10.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
-			"integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+			"version": "4.12.1",
+			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+			"integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
 			"dev": true,
 			"engines": {
 				"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -896,6 +899,40 @@
 			"integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
 			"dev": true
 		},
+		"node_modules/@typescript-eslint/project-service": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
+			"integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/tsconfig-utils": "^8.34.0",
+				"@typescript-eslint/types": "^8.34.0",
+				"debug": "^4.3.4"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+			"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
 		"node_modules/@typescript-eslint/scope-manager": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz",
@@ -913,6 +950,22 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			}
 		},
+		"node_modules/@typescript-eslint/tsconfig-utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
+			"integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
 		"node_modules/@typescript-eslint/types": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz",
@@ -955,18 +1008,18 @@
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-			"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+			"version": "2.0.2",
+			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+			"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
 			"dev": true,
 			"dependencies": {
 				"balanced-match": "^1.0.0"
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
-			"version": "9.0.4",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
-			"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+			"version": "9.0.5",
+			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+			"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
 			"dev": true,
 			"dependencies": {
 				"brace-expansion": "^2.0.1"
@@ -2444,9 +2497,9 @@
 			}
 		},
 		"node_modules/enhanced-resolve": {
-			"version": "5.17.0",
-			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
-			"integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
+			"version": "5.18.1",
+			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+			"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
 			"dev": true,
 			"dependencies": {
 				"graceful-fs": "^4.2.4",
@@ -2791,9 +2844,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-es-x": {
-			"version": "7.7.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.7.0.tgz",
-			"integrity": "sha512-aP3qj8BwiEDPttxQkZdI221DLKq9sI/qHolE2YSQL1/9+xk7dTV+tB1Fz8/IaCA+lnLA1bDEnvaS2LKs0k2Uig==",
+			"version": "7.8.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
+			"integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
 			"dev": true,
 			"funding": [
 				"https://github.com/sponsors/ota-meshi",
@@ -2801,7 +2854,7 @@
 			],
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.1.2",
-				"@eslint-community/regexpp": "^4.6.0",
+				"@eslint-community/regexpp": "^4.11.0",
 				"eslint-compat-utils": "^0.5.1"
 			},
 			"engines": {
@@ -2922,19 +2975,21 @@
 			}
 		},
 		"node_modules/eslint-plugin-n": {
-			"version": "17.8.1",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.8.1.tgz",
-			"integrity": "sha512-KdG0h0voZms8UhndNu8DeWx1eM4sY+A4iXtsNo6kOfJLYHNeTGPacGalJ9GcvrbmOL3r/7QOMwVZDSw+1SqsrA==",
+			"version": "17.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.19.0.tgz",
+			"integrity": "sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==",
 			"dev": true,
 			"dependencies": {
-				"@eslint-community/eslint-utils": "^4.4.0",
-				"enhanced-resolve": "^5.17.0",
-				"eslint-plugin-es-x": "^7.5.0",
-				"get-tsconfig": "^4.7.0",
-				"globals": "^15.0.0",
-				"ignore": "^5.2.4",
-				"minimatch": "^9.0.0",
-				"semver": "^7.5.3"
+				"@eslint-community/eslint-utils": "^4.5.0",
+				"@typescript-eslint/utils": "^8.26.1",
+				"enhanced-resolve": "^5.17.1",
+				"eslint-plugin-es-x": "^7.8.0",
+				"get-tsconfig": "^4.8.1",
+				"globals": "^15.11.0",
+				"ignore": "^5.3.2",
+				"minimatch": "^9.0.5",
+				"semver": "^7.6.3",
+				"ts-declaration-location": "^1.0.6"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2946,19 +3001,129 @@
 				"eslint": ">=8.23.0"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/scope-manager": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
+			"integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/visitor-keys": "8.34.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/types": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+			"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/typescript-estree": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
+			"integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/project-service": "8.34.0",
+				"@typescript-eslint/tsconfig-utils": "8.34.0",
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/visitor-keys": "8.34.0",
+				"debug": "^4.3.4",
+				"fast-glob": "^3.3.2",
+				"is-glob": "^4.0.3",
+				"minimatch": "^9.0.4",
+				"semver": "^7.6.0",
+				"ts-api-utils": "^2.1.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
+			"integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
+			"dev": true,
+			"dependencies": {
+				"@eslint-community/eslint-utils": "^4.7.0",
+				"@typescript-eslint/scope-manager": "8.34.0",
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/typescript-estree": "8.34.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"eslint": "^8.57.0 || ^9.0.0",
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/visitor-keys": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
+			"integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/types": "8.34.0",
+				"eslint-visitor-keys": "^4.2.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
 		"node_modules/eslint-plugin-n/node_modules/brace-expansion": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-			"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+			"version": "2.0.2",
+			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+			"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
 			"dev": true,
 			"dependencies": {
 				"balanced-match": "^1.0.0"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/eslint-visitor-keys": {
+			"version": "4.2.1",
+			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+			"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"url": "https://opencollective.com/eslint"
+			}
+		},
 		"node_modules/eslint-plugin-n/node_modules/globals": {
-			"version": "15.4.0",
-			"resolved": "https://registry.npmjs.org/globals/-/globals-15.4.0.tgz",
-			"integrity": "sha512-unnwvMZpv0eDUyjNyh9DH/yxUaRYrEjW/qK4QcdrHg3oO11igUQrCSgODHEqxlKg8v2CD2Sd7UkqqEBoz5U7TQ==",
+			"version": "15.15.0",
+			"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+			"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
 			"dev": true,
 			"engines": {
 				"node": ">=18"
@@ -2968,9 +3133,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-n/node_modules/minimatch": {
-			"version": "9.0.4",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
-			"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+			"version": "9.0.5",
+			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+			"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
 			"dev": true,
 			"dependencies": {
 				"brace-expansion": "^2.0.1"
@@ -2982,6 +3147,18 @@
 				"url": "https://github.com/sponsors/isaacs"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/ts-api-utils": {
+			"version": "2.1.0",
+			"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+			"integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=18.12"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4"
+			}
+		},
 		"node_modules/eslint-plugin-no-jquery": {
 			"version": "3.1.1",
 			"resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.1.1.tgz",
@@ -3797,9 +3974,9 @@
 			}
 		},
 		"node_modules/get-tsconfig": {
-			"version": "4.7.5",
-			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz",
-			"integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
+			"version": "4.10.1",
+			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
+			"integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
 			"dev": true,
 			"dependencies": {
 				"resolve-pkg-maps": "^1.0.0"
@@ -5089,9 +5266,9 @@
 			}
 		},
 		"node_modules/ignore": {
-			"version": "5.3.1",
-			"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
-			"integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+			"version": "5.3.2",
+			"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+			"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
 			"dev": true,
 			"engines": {
 				"node": ">= 4"
@@ -7898,9 +8075,9 @@
 			"optional": true
 		},
 		"node_modules/semver": {
-			"version": "7.6.2",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
-			"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+			"version": "7.7.2",
+			"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+			"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
 			"dev": true,
 			"bin": {
 				"semver": "bin/semver.js"
@@ -8653,9 +8830,9 @@
 			"license": "MIT"
 		},
 		"node_modules/tapable": {
-			"version": "2.2.1",
-			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
-			"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+			"version": "2.2.2",
+			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
+			"integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==",
 			"dev": true,
 			"engines": {
 				"node": ">=6"
@@ -8802,6 +8979,40 @@
 				"typescript": ">=4.2.0"
 			}
 		},
+		"node_modules/ts-declaration-location": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz",
+			"integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "ko-fi",
+					"url": "https://ko-fi.com/rebeccastevens"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/ts-declaration-location"
+				}
+			],
+			"dependencies": {
+				"picomatch": "^4.0.2"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.0.0"
+			}
+		},
+		"node_modules/ts-declaration-location/node_modules/picomatch": {
+			"version": "4.0.2",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+			"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/jonschlinkert"
+			}
+		},
 		"node_modules/tslib": {
 			"version": "2.3.1",
 			"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
@@ -9641,18 +9852,18 @@
 			}
 		},
 		"@eslint-community/eslint-utils": {
-			"version": "4.4.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-			"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+			"version": "4.7.0",
+			"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+			"integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
 			"dev": true,
 			"requires": {
-				"eslint-visitor-keys": "^3.3.0"
+				"eslint-visitor-keys": "^3.4.3"
 			}
 		},
 		"@eslint-community/regexpp": {
-			"version": "4.10.0",
-			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
-			"integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+			"version": "4.12.1",
+			"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+			"integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
 			"dev": true
 		},
 		"@eslint/eslintrc": {
@@ -9949,6 +10160,25 @@
 			"integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
 			"dev": true
 		},
+		"@typescript-eslint/project-service": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
+			"integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
+			"dev": true,
+			"requires": {
+				"@typescript-eslint/tsconfig-utils": "^8.34.0",
+				"@typescript-eslint/types": "^8.34.0",
+				"debug": "^4.3.4"
+			},
+			"dependencies": {
+				"@typescript-eslint/types": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+					"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+					"dev": true
+				}
+			}
+		},
 		"@typescript-eslint/scope-manager": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz",
@@ -9959,6 +10189,13 @@
 				"@typescript-eslint/visitor-keys": "7.13.0"
 			}
 		},
+		"@typescript-eslint/tsconfig-utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
+			"integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
+			"dev": true,
+			"requires": {}
+		},
 		"@typescript-eslint/types": {
 			"version": "7.13.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz",
@@ -9982,18 +10219,18 @@
 			},
 			"dependencies": {
 				"brace-expansion": {
-					"version": "2.0.1",
-					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-					"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+					"version": "2.0.2",
+					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+					"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
 					"dev": true,
 					"requires": {
 						"balanced-match": "^1.0.0"
 					}
 				},
 				"minimatch": {
-					"version": "9.0.4",
-					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
-					"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+					"version": "9.0.5",
+					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+					"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
 					"dev": true,
 					"requires": {
 						"brace-expansion": "^2.0.1"
@@ -11084,9 +11321,9 @@
 			"dev": true
 		},
 		"enhanced-resolve": {
-			"version": "5.17.0",
-			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
-			"integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
+			"version": "5.18.1",
+			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+			"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
 			"dev": true,
 			"requires": {
 				"graceful-fs": "^4.2.4",
@@ -11379,13 +11616,13 @@
 			}
 		},
 		"eslint-plugin-es-x": {
-			"version": "7.7.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.7.0.tgz",
-			"integrity": "sha512-aP3qj8BwiEDPttxQkZdI221DLKq9sI/qHolE2YSQL1/9+xk7dTV+tB1Fz8/IaCA+lnLA1bDEnvaS2LKs0k2Uig==",
+			"version": "7.8.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
+			"integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
 			"dev": true,
 			"requires": {
 				"@eslint-community/eslint-utils": "^4.1.2",
-				"@eslint-community/regexpp": "^4.6.0",
+				"@eslint-community/regexpp": "^4.11.0",
 				"eslint-compat-utils": "^0.5.1"
 			}
 		},
@@ -11468,44 +11705,115 @@
 			}
 		},
 		"eslint-plugin-n": {
-			"version": "17.8.1",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.8.1.tgz",
-			"integrity": "sha512-KdG0h0voZms8UhndNu8DeWx1eM4sY+A4iXtsNo6kOfJLYHNeTGPacGalJ9GcvrbmOL3r/7QOMwVZDSw+1SqsrA==",
-			"dev": true,
-			"requires": {
-				"@eslint-community/eslint-utils": "^4.4.0",
-				"enhanced-resolve": "^5.17.0",
-				"eslint-plugin-es-x": "^7.5.0",
-				"get-tsconfig": "^4.7.0",
-				"globals": "^15.0.0",
-				"ignore": "^5.2.4",
-				"minimatch": "^9.0.0",
-				"semver": "^7.5.3"
-			},
-			"dependencies": {
+			"version": "17.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.19.0.tgz",
+			"integrity": "sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==",
+			"dev": true,
+			"requires": {
+				"@eslint-community/eslint-utils": "^4.5.0",
+				"@typescript-eslint/utils": "^8.26.1",
+				"enhanced-resolve": "^5.17.1",
+				"eslint-plugin-es-x": "^7.8.0",
+				"get-tsconfig": "^4.8.1",
+				"globals": "^15.11.0",
+				"ignore": "^5.3.2",
+				"minimatch": "^9.0.5",
+				"semver": "^7.6.3",
+				"ts-declaration-location": "^1.0.6"
+			},
+			"dependencies": {
+				"@typescript-eslint/scope-manager": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
+					"integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
+					"dev": true,
+					"requires": {
+						"@typescript-eslint/types": "8.34.0",
+						"@typescript-eslint/visitor-keys": "8.34.0"
+					}
+				},
+				"@typescript-eslint/types": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+					"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+					"dev": true
+				},
+				"@typescript-eslint/typescript-estree": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
+					"integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
+					"dev": true,
+					"requires": {
+						"@typescript-eslint/project-service": "8.34.0",
+						"@typescript-eslint/tsconfig-utils": "8.34.0",
+						"@typescript-eslint/types": "8.34.0",
+						"@typescript-eslint/visitor-keys": "8.34.0",
+						"debug": "^4.3.4",
+						"fast-glob": "^3.3.2",
+						"is-glob": "^4.0.3",
+						"minimatch": "^9.0.4",
+						"semver": "^7.6.0",
+						"ts-api-utils": "^2.1.0"
+					}
+				},
+				"@typescript-eslint/utils": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
+					"integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
+					"dev": true,
+					"requires": {
+						"@eslint-community/eslint-utils": "^4.7.0",
+						"@typescript-eslint/scope-manager": "8.34.0",
+						"@typescript-eslint/types": "8.34.0",
+						"@typescript-eslint/typescript-estree": "8.34.0"
+					}
+				},
+				"@typescript-eslint/visitor-keys": {
+					"version": "8.34.0",
+					"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
+					"integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
+					"dev": true,
+					"requires": {
+						"@typescript-eslint/types": "8.34.0",
+						"eslint-visitor-keys": "^4.2.0"
+					}
+				},
 				"brace-expansion": {
-					"version": "2.0.1",
-					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-					"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+					"version": "2.0.2",
+					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+					"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
 					"dev": true,
 					"requires": {
 						"balanced-match": "^1.0.0"
 					}
 				},
+				"eslint-visitor-keys": {
+					"version": "4.2.1",
+					"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+					"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+					"dev": true
+				},
 				"globals": {
-					"version": "15.4.0",
-					"resolved": "https://registry.npmjs.org/globals/-/globals-15.4.0.tgz",
-					"integrity": "sha512-unnwvMZpv0eDUyjNyh9DH/yxUaRYrEjW/qK4QcdrHg3oO11igUQrCSgODHEqxlKg8v2CD2Sd7UkqqEBoz5U7TQ==",
+					"version": "15.15.0",
+					"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+					"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
 					"dev": true
 				},
 				"minimatch": {
-					"version": "9.0.4",
-					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
-					"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+					"version": "9.0.5",
+					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+					"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
 					"dev": true,
 					"requires": {
 						"brace-expansion": "^2.0.1"
 					}
+				},
+				"ts-api-utils": {
+					"version": "2.1.0",
+					"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+					"integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
+					"dev": true,
+					"requires": {}
 				}
 			}
 		},
@@ -12069,9 +12377,9 @@
 			}
 		},
 		"get-tsconfig": {
-			"version": "4.7.5",
-			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz",
-			"integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
+			"version": "4.10.1",
+			"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
+			"integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
 			"dev": true,
 			"requires": {
 				"resolve-pkg-maps": "^1.0.0"
@@ -13036,9 +13344,9 @@
 			}
 		},
 		"ignore": {
-			"version": "5.3.1",
-			"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
-			"integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+			"version": "5.3.2",
+			"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+			"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
 			"dev": true
 		},
 		"image-size": {
@@ -15180,9 +15488,9 @@
 			"optional": true
 		},
 		"semver": {
-			"version": "7.6.2",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
-			"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+			"version": "7.7.2",
+			"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+			"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
 			"dev": true
 		},
 		"set-function-length": {
@@ -15696,9 +16004,9 @@
 			}
 		},
 		"tapable": {
-			"version": "2.2.1",
-			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
-			"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+			"version": "2.2.2",
+			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
+			"integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==",
 			"dev": true
 		},
 		"text-table": {
@@ -15823,6 +16131,23 @@
 			"dev": true,
 			"requires": {}
 		},
+		"ts-declaration-location": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz",
+			"integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==",
+			"dev": true,
+			"requires": {
+				"picomatch": "^4.0.2"
+			},
+			"dependencies": {
+				"picomatch": {
+					"version": "4.0.2",
+					"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+					"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+					"dev": true
+				}
+			}
+		},
 		"tslib": {
 			"version": "2.3.1",
 			"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
-- 
2.39.5


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