mediawiki/extensions/GrowthExperiments (main)

sourcepatches
From 283da334036fbe5021353ec6fa61950d5928b549 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Thu, 18 Jun 2026 15:20:57 +0000
Subject: [PATCH] build: Updating npm dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* stylelint-config-wikimedia: 0.18.0 → 0.19.2
  The following rules are failing and were disabled:
  * declaration-property-value-keyword-no-deprecated
  * media-type-no-deprecated
  * nesting-selector-no-missing-scoping-root
  * no-invalid-position-declaration
  * property-no-deprecated
  The following rules no longer exist and were removed:
  * media-type-no-deprecated
  * nesting-selector-no-missing-scoping-root
  * no-invalid-position-declaration
  * property-no-deprecated

* @wikimedia/codex: 2.4.0 → 2.6.0
* @wikimedia/codex-design-tokens: 2.4.0 → 2.6.0
* @babel/core: 7.25.2 → 7.29.7
  * https://github.com/advisories/GHSA-4x5r-pxfx-6jf8
* form-data: 4.0.5 → 4.0.6
  * https://github.com/advisories/GHSA-hmw2-7cc7-3qxx
* shell-quote: 1.8.2 → 1.8.4
  * https://github.com/advisories/GHSA-w7jw-789q-3m8p
* vite: 7.3.2, ^7.1.6 → 7.3.5, ^7.1.6
  * https://github.com/advisories/GHSA-fx2h-pf6j-xcff
  * https://github.com/advisories/GHSA-v6wh-96g9-6wx3
* ws: 8.20.1 → 8.21.0
  * https://github.com/advisories/GHSA-96hv-2xvq-fx4p

Change-Id: I9c470cb03c2b7b4730841863e700202b0d656ec6
---
 .stylelintrc.json                             |    3 +-
 .../HelpPanelProcessDialog.less               |    2 +-
 .../PersonalizedPraise.test.js.snap           |    7 +-
 ...ersonalizedPraiseSettingsForm.test.js.snap |    2 +-
 .../__snapshots__/CScoreCard.test.js.snap     |   11 +-
 .../__snapshots__/CScoreCards.test.js.snap    |   44 +-
 package-lock.json                             | 1439 ++++++++++-------
 package.json                                  |    6 +-
 8 files changed, 940 insertions(+), 574 deletions(-)

diff --git a/.stylelintrc.json b/.stylelintrc.json
index 95c5826..d009932 100644
--- a/.stylelintrc.json
+++ b/.stylelintrc.json
@@ -7,6 +7,7 @@
 		"declaration-property-unit-disallowed-list": null,
 		"@stylistic/declaration-colon-space-after": null,
 		"@stylistic/indentation": null,
-		"declaration-no-important": null
+		"declaration-no-important": null,
+		"declaration-property-value-keyword-no-deprecated": null
 	}
 }
diff --git a/modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less b/modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less
index fbefede..a38d9be 100644
--- a/modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less
+++ b/modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less
@@ -108,7 +108,7 @@
 
 		body.rtl & {
 			background:
- linear-gradient( @headBgColor, @headBgColor ) -200% ~'/' 50% 100%  no-repeat,linear-gradient( @headBgColor, @headBgColor ) -100% ~'/' 50% 100% no-repeat;
+ linear-gradient( @headBgColor, @headBgColor ) -200% ~'/' 50% 100% no-repeat,linear-gradient( @headBgColor, @headBgColor ) -100% ~'/' 50% 100% no-repeat;
 		}
 	}
 
diff --git a/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraise.test.js.snap b/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraise.test.js.snap
index c231301..226347d 100644
--- a/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraise.test.js.snap
+++ b/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraise.test.js.snap
@@ -15,7 +15,7 @@ exports[`PersonalizedPraise NoResult when no mentees 1`] = `
     <button
       aria-label="growthexperiments-mentor-dashboard-personalized-praise-info-icon-label"
       aria-pressed="false"
-      class="cdx-toggle-button cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-PersonalizedPraise__info-button"
+      class="cdx-toggle-button cdx-toggle-button--size-medium cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-PersonalizedPraise__info-button"
       type="button"
     >
       
@@ -46,12 +46,14 @@ exports[`PersonalizedPraise NoResult when no mentees 1`] = `
 			-->
     <cdx-popover-stub
       closebuttonlabel="Close"
+      hidebackdrop="false"
       icon="info-icon"
       open="false"
       placement="bottom-start"
       renderinplace="true"
       stackedactions="false"
       title="growthexperiments-mentor-dashboard-personalized-praise-info-headline"
+      usebottomsheet="false"
       useclosebutton="true"
     />
   </div>
@@ -120,6 +122,7 @@ exports[`PersonalizedPraise full data when has mentees 1`] = `
       disabled="false"
       modelvalue="false"
       quiet="true"
+      size="medium"
     />
     <!--
 				CdxPopover uses the floating-ui library in a way that causes infinite recursion when
@@ -130,12 +133,14 @@ exports[`PersonalizedPraise full data when has mentees 1`] = `
 			-->
     <cdx-popover-stub
       closebuttonlabel="Close"
+      hidebackdrop="false"
       icon="info-icon"
       open="false"
       placement="bottom-start"
       renderinplace="true"
       stackedactions="false"
       title="growthexperiments-mentor-dashboard-personalized-praise-info-headline"
+      usebottomsheet="false"
       useclosebutton="true"
     />
   </div>
diff --git a/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraiseSettingsForm.test.js.snap b/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraiseSettingsForm.test.js.snap
index 6e2aa01..a7affde 100644
--- a/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraiseSettingsForm.test.js.snap
+++ b/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraiseSettingsForm.test.js.snap
@@ -57,7 +57,7 @@ exports[`PersonalizedPraiseSettingsForm it renders with correct defaults 1`] = `
               <!--v-if-->
               <g>
                 <path
-                  d="m17.5 4.75-7.5 7.5-7.5-7.5L1 6.25l9 9 9-9z"
+                  d="m16.707 8.017-6 5.983H9.293l-6-5.983 1.414-1.414L10 11.896l5.293-5.293z"
                 />
               </g>
             </svg>
diff --git a/modules/vue-components/__snapshots__/CScoreCard.test.js.snap b/modules/vue-components/__snapshots__/CScoreCard.test.js.snap
index 8a05a06..9e31cf6 100644
--- a/modules/vue-components/__snapshots__/CScoreCard.test.js.snap
+++ b/modules/vue-components/__snapshots__/CScoreCard.test.js.snap
@@ -85,7 +85,7 @@ exports[`ScoreCard renders correctly info slot 1`] = `
       <button
         aria-label="the label for the info icon"
         aria-pressed="false"
-        class="cdx-toggle-button cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
+        class="cdx-toggle-button cdx-toggle-button--size-medium cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
         type="button"
       >
         
@@ -116,6 +116,15 @@ exports[`ScoreCard renders correctly info slot 1`] = `
 				-->
       <!--teleport start-->
       <!--v-if-->
+      <transition-stub
+        appear="true"
+        css="true"
+        name="cdx-popover-floating"
+        persisted="false"
+      >
+        <!--v-if-->
+      </transition-stub>
+      <!--v-if-->
       <!--teleport end-->
     </span>
   </div>
diff --git a/modules/vue-components/__snapshots__/CScoreCards.test.js.snap b/modules/vue-components/__snapshots__/CScoreCards.test.js.snap
index dff7d5b..b7471fc 100644
--- a/modules/vue-components/__snapshots__/CScoreCards.test.js.snap
+++ b/modules/vue-components/__snapshots__/CScoreCards.test.js.snap
@@ -110,7 +110,7 @@ exports[`ScoreCards renders correctly with data 1`] = `
         <button
           aria-label="growthexperiments-homepage-impact-scores-thanks-info-label"
           aria-pressed="false"
-          class="cdx-toggle-button cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
+          class="cdx-toggle-button cdx-toggle-button--size-medium cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
           type="button"
         >
           
@@ -141,6 +141,15 @@ exports[`ScoreCards renders correctly with data 1`] = `
 				-->
         <!--teleport start-->
         <!--v-if-->
+        <transition-stub
+          appear="true"
+          css="true"
+          name="cdx-popover-floating"
+          persisted="false"
+        >
+          <!--v-if-->
+        </transition-stub>
+        <!--v-if-->
         <!--teleport end-->
       </span>
     </div>
@@ -238,7 +247,7 @@ exports[`ScoreCards renders correctly with data 1`] = `
         <button
           aria-label="growthexperiments-homepage-impact-scores-streak-info-label"
           aria-pressed="false"
-          class="cdx-toggle-button cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
+          class="cdx-toggle-button cdx-toggle-button--size-medium cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
           type="button"
         >
           
@@ -269,6 +278,15 @@ exports[`ScoreCards renders correctly with data 1`] = `
 				-->
         <!--teleport start-->
         <!--v-if-->
+        <transition-stub
+          appear="true"
+          css="true"
+          name="cdx-popover-floating"
+          persisted="false"
+        >
+          <!--v-if-->
+        </transition-stub>
+        <!--v-if-->
         <!--teleport end-->
       </span>
     </div>
@@ -386,7 +404,7 @@ exports[`ScoreCards renders correctly without data 1`] = `
         <button
           aria-label="growthexperiments-homepage-impact-scores-thanks-info-label"
           aria-pressed="false"
-          class="cdx-toggle-button cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
+          class="cdx-toggle-button cdx-toggle-button--size-medium cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
           type="button"
         >
           
@@ -417,6 +435,15 @@ exports[`ScoreCards renders correctly without data 1`] = `
 				-->
         <!--teleport start-->
         <!--v-if-->
+        <transition-stub
+          appear="true"
+          css="true"
+          name="cdx-popover-floating"
+          persisted="false"
+        >
+          <!--v-if-->
+        </transition-stub>
+        <!--v-if-->
         <!--teleport end-->
       </span>
     </div>
@@ -514,7 +541,7 @@ exports[`ScoreCards renders correctly without data 1`] = `
         <button
           aria-label="growthexperiments-homepage-impact-scores-streak-info-label"
           aria-pressed="false"
-          class="cdx-toggle-button cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
+          class="cdx-toggle-button cdx-toggle-button--size-medium cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
           type="button"
         >
           
@@ -545,6 +572,15 @@ exports[`ScoreCards renders correctly without data 1`] = `
 				-->
         <!--teleport start-->
         <!--v-if-->
+        <transition-stub
+          appear="true"
+          css="true"
+          name="cdx-popover-floating"
+          persisted="false"
+        >
+          <!--v-if-->
+        </transition-stub>
+        <!--v-if-->
         <!--teleport end-->
       </span>
     </div>
diff --git a/package-lock.json b/package-lock.json
index d0191e4..95716e1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,8 +15,8 @@
 				"@vitejs/plugin-vue": "^6.0.1",
 				"@vue/test-utils": "^2.4.6",
 				"@vue/vue3-jest": "^29.2.6",
-				"@wikimedia/codex": "2.4.0",
-				"@wikimedia/codex-design-tokens": "2.4.0",
+				"@wikimedia/codex": "2.6.0",
+				"@wikimedia/codex-design-tokens": "2.6.0",
 				"@wikimedia/types-wikimedia": "^0.4.4",
 				"api-testing": "1.7.3",
 				"cypress": "^15.14.0",
@@ -45,7 +45,7 @@
 				"rollup": "3.30.0",
 				"stylelint": "^16.19.1",
 				"stylelint-config-recommended-vue": "1.4.0",
-				"stylelint-config-wikimedia": "0.18.0",
+				"stylelint-config-wikimedia": "0.19.2",
 				"svgo": "4.0.1",
 				"typescript": "^4.9.5",
 				"vite": "^7.1.6",
@@ -57,26 +57,13 @@
 				"npm": ">=10"
 			}
 		},
-		"node_modules/@ampproject/remapping": {
-			"version": "2.3.0",
-			"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
-			"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
-			"dev": true,
-			"dependencies": {
-				"@jridgewell/gen-mapping": "^0.3.5",
-				"@jridgewell/trace-mapping": "^0.3.24"
-			},
-			"engines": {
-				"node": ">=6.0.0"
-			}
-		},
 		"node_modules/@babel/code-frame": {
-			"version": "7.29.0",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
-			"integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
+			"integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-validator-identifier": "^7.28.5",
+				"@babel/helper-validator-identifier": "^7.29.7",
 				"js-tokens": "^4.0.0",
 				"picocolors": "^1.1.1"
 			},
@@ -85,31 +72,30 @@
 			}
 		},
 		"node_modules/@babel/compat-data": {
-			"version": "7.28.4",
-			"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz",
-			"integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz",
+			"integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/core": {
-			"version": "7.25.2",
-			"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz",
-			"integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==",
-			"dev": true,
-			"dependencies": {
-				"@ampproject/remapping": "^2.2.0",
-				"@babel/code-frame": "^7.24.7",
-				"@babel/generator": "^7.25.0",
-				"@babel/helper-compilation-targets": "^7.25.2",
-				"@babel/helper-module-transforms": "^7.25.2",
-				"@babel/helpers": "^7.25.0",
-				"@babel/parser": "^7.25.0",
-				"@babel/template": "^7.25.0",
-				"@babel/traverse": "^7.25.2",
-				"@babel/types": "^7.25.2",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz",
+			"integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==",
+			"dev": true,
+			"dependencies": {
+				"@babel/code-frame": "^7.29.7",
+				"@babel/generator": "^7.29.7",
+				"@babel/helper-compilation-targets": "^7.29.7",
+				"@babel/helper-module-transforms": "^7.29.7",
+				"@babel/helpers": "^7.29.7",
+				"@babel/parser": "^7.29.7",
+				"@babel/template": "^7.29.7",
+				"@babel/traverse": "^7.29.7",
+				"@babel/types": "^7.29.7",
+				"@jridgewell/remapping": "^2.3.5",
 				"convert-source-map": "^2.0.0",
 				"debug": "^4.1.0",
 				"gensync": "^1.0.0-beta.2",
@@ -125,13 +111,13 @@
 			}
 		},
 		"node_modules/@babel/generator": {
-			"version": "7.29.1",
-			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
-			"integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz",
+			"integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==",
 			"dev": true,
 			"dependencies": {
-				"@babel/parser": "^7.29.0",
-				"@babel/types": "^7.29.0",
+				"@babel/parser": "^7.29.7",
+				"@babel/types": "^7.29.7",
 				"@jridgewell/gen-mapping": "^0.3.12",
 				"@jridgewell/trace-mapping": "^0.3.28",
 				"jsesc": "^3.0.2"
@@ -154,14 +140,13 @@
 			}
 		},
 		"node_modules/@babel/helper-compilation-targets": {
-			"version": "7.27.2",
-			"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz",
-			"integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz",
+			"integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@babel/compat-data": "^7.27.2",
-				"@babel/helper-validator-option": "^7.27.1",
+				"@babel/compat-data": "^7.29.7",
+				"@babel/helper-validator-option": "^7.29.7",
 				"browserslist": "^4.24.0",
 				"lru-cache": "^5.1.1",
 				"semver": "^6.3.1"
@@ -228,11 +213,10 @@
 			}
 		},
 		"node_modules/@babel/helper-globals": {
-			"version": "7.28.0",
-			"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
-			"integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz",
+			"integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=6.9.0"
 			}
@@ -252,27 +236,27 @@
 			}
 		},
 		"node_modules/@babel/helper-module-imports": {
-			"version": "7.28.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
-			"integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz",
+			"integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==",
 			"dev": true,
 			"dependencies": {
-				"@babel/traverse": "^7.28.6",
-				"@babel/types": "^7.28.6"
+				"@babel/traverse": "^7.29.7",
+				"@babel/types": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-module-transforms": {
-			"version": "7.28.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
-			"integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz",
+			"integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-module-imports": "^7.28.6",
-				"@babel/helper-validator-identifier": "^7.28.5",
-				"@babel/traverse": "^7.28.6"
+				"@babel/helper-module-imports": "^7.29.7",
+				"@babel/helper-validator-identifier": "^7.29.7",
+				"@babel/traverse": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -354,29 +338,28 @@
 			}
 		},
 		"node_modules/@babel/helper-string-parser": {
-			"version": "7.27.1",
-			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
-			"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz",
+			"integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-validator-identifier": {
-			"version": "7.28.5",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
-			"integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
+			"integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-validator-option": {
-			"version": "7.27.1",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
-			"integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz",
+			"integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=6.9.0"
 			}
@@ -397,25 +380,25 @@
 			}
 		},
 		"node_modules/@babel/helpers": {
-			"version": "7.27.1",
-			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz",
-			"integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz",
+			"integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/template": "^7.27.1",
-				"@babel/types": "^7.27.1"
+				"@babel/template": "^7.29.7",
+				"@babel/types": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/parser": {
-			"version": "7.29.3",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz",
-			"integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz",
+			"integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/types": "^7.29.0"
+				"@babel/types": "^7.29.7"
 			},
 			"bin": {
 				"parser": "bin/babel-parser.js"
@@ -1733,31 +1716,31 @@
 			}
 		},
 		"node_modules/@babel/template": {
-			"version": "7.28.6",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
-			"integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz",
+			"integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.28.6",
-				"@babel/parser": "^7.28.6",
-				"@babel/types": "^7.28.6"
+				"@babel/code-frame": "^7.29.7",
+				"@babel/parser": "^7.29.7",
+				"@babel/types": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/traverse": {
-			"version": "7.29.0",
-			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
-			"integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz",
+			"integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.29.0",
-				"@babel/generator": "^7.29.0",
-				"@babel/helper-globals": "^7.28.0",
-				"@babel/parser": "^7.29.0",
-				"@babel/template": "^7.28.6",
-				"@babel/types": "^7.29.0",
+				"@babel/code-frame": "^7.29.7",
+				"@babel/generator": "^7.29.7",
+				"@babel/helper-globals": "^7.29.7",
+				"@babel/parser": "^7.29.7",
+				"@babel/template": "^7.29.7",
+				"@babel/types": "^7.29.7",
 				"debug": "^4.3.1"
 			},
 			"engines": {
@@ -1765,13 +1748,13 @@
 			}
 		},
 		"node_modules/@babel/types": {
-			"version": "7.29.0",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
-			"integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz",
+			"integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-string-parser": "^7.27.1",
-				"@babel/helper-validator-identifier": "^7.28.5"
+				"@babel/helper-string-parser": "^7.29.7",
+				"@babel/helper-validator-identifier": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -1783,6 +1766,62 @@
 			"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
 			"dev": true
 		},
+		"node_modules/@cacheable/memory": {
+			"version": "2.0.9",
+			"resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.9.tgz",
+			"integrity": "sha512-HdMx6DoGywB30vacDbBsITbIX4pgFqj1zsrV58jZBUw3klzkNoXhj7qOqAgledhxG7YZI5rBSJg7Zp8/VG0DuA==",
+			"dev": true,
+			"dependencies": {
+				"@cacheable/utils": "^2.4.1",
+				"@keyv/bigmap": "^1.3.1",
+				"hookified": "^1.15.1",
+				"keyv": "^5.6.0"
+			}
+		},
+		"node_modules/@cacheable/memory/node_modules/@keyv/bigmap": {
+			"version": "1.3.1",
+			"resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz",
+			"integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==",
+			"dev": true,
+			"dependencies": {
+				"hashery": "^1.4.0",
+				"hookified": "^1.15.0"
+			},
+			"engines": {
+				"node": ">= 18"
+			},
+			"peerDependencies": {
+				"keyv": "^5.6.0"
+			}
+		},
+		"node_modules/@cacheable/memory/node_modules/keyv": {
+			"version": "5.6.0",
+			"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz",
+			"integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==",
+			"dev": true,
+			"dependencies": {
+				"@keyv/serialize": "^1.1.1"
+			}
+		},
+		"node_modules/@cacheable/utils": {
+			"version": "2.4.1",
+			"resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.4.1.tgz",
+			"integrity": "sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==",
+			"dev": true,
+			"dependencies": {
+				"hashery": "^1.5.1",
+				"keyv": "^5.6.0"
+			}
+		},
+		"node_modules/@cacheable/utils/node_modules/keyv": {
+			"version": "5.6.0",
+			"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz",
+			"integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==",
+			"dev": true,
+			"dependencies": {
+				"@keyv/serialize": "^1.1.1"
+			}
+		},
 		"node_modules/@csstools/css-parser-algorithms": {
 			"version": "3.0.4",
 			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
@@ -1826,30 +1865,6 @@
 				"node": ">=18"
 			}
 		},
-		"node_modules/@csstools/media-query-list-parser": {
-			"version": "3.0.1",
-			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz",
-			"integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT",
-			"engines": {
-				"node": ">=18"
-			},
-			"peerDependencies": {
-				"@csstools/css-parser-algorithms": "^3.0.1",
-				"@csstools/css-tokenizer": "^3.0.1"
-			}
-		},
 		"node_modules/@cypress/request": {
 			"version": "4.0.1",
 			"resolved": "https://registry.npmjs.org/@cypress/request/-/request-4.0.1.tgz",
@@ -2434,10 +2449,20 @@
 			}
 		},
 		"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz",
+			"integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -3692,6 +3717,16 @@
 				"@jridgewell/trace-mapping": "^0.3.24"
 			}
 		},
+		"node_modules/@jridgewell/remapping": {
+			"version": "2.3.5",
+			"resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+			"integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+			"dev": true,
+			"dependencies": {
+				"@jridgewell/gen-mapping": "^0.3.5",
+				"@jridgewell/trace-mapping": "^0.3.24"
+			}
+		},
 		"node_modules/@jridgewell/resolve-uri": {
 			"version": "3.1.2",
 			"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
@@ -3729,39 +3764,10 @@
 			}
 		},
 		"node_modules/@keyv/serialize": {
-			"version": "1.0.3",
-			"resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.0.3.tgz",
-			"integrity": "sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"buffer": "^6.0.3"
-			}
-		},
-		"node_modules/@keyv/serialize/node_modules/buffer": {
-			"version": "6.0.3",
-			"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
-			"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/feross"
-				},
-				{
-					"type": "patreon",
-					"url": "https://www.patreon.com/feross"
-				},
-				{
-					"type": "consulting",
-					"url": "https://feross.org/support"
-				}
-			],
-			"license": "MIT",
-			"dependencies": {
-				"base64-js": "^1.3.1",
-				"ieee754": "^1.2.1"
-			}
+			"version": "1.1.1",
+			"resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz",
+			"integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==",
+			"dev": true
 		},
 		"node_modules/@mdn/browser-compat-data": {
 			"version": "6.1.5",
@@ -4252,6 +4258,18 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
+		"node_modules/@sindresorhus/merge-streams": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
+			"integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=18"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
 		"node_modules/@sinonjs/commons": {
 			"version": "3.0.1",
 			"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
@@ -4342,55 +4360,6 @@
 				"url": "https://github.com/sponsors/jonschlinkert"
 			}
 		},
-		"node_modules/@stylistic/stylelint-config": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-2.0.0.tgz",
-			"integrity": "sha512-8J4YAxggy2Nzkb8KJIOLbtMXTPZ5gpKVmyhiiuKEUgCl9XFND5lM0e/ZZBMGEYZ68h5qcsS/jgg1wh235erRAw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@stylistic/stylelint-plugin": "^3.0.0"
-			},
-			"engines": {
-				"node": "^18.12 || >=20.9"
-			},
-			"peerDependencies": {
-				"stylelint": "^16.8.0"
-			}
-		},
-		"node_modules/@stylistic/stylelint-plugin": {
-			"version": "3.1.1",
-			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.1.tgz",
-			"integrity": "sha512-XagAHHIa528EvyGybv8EEYGK5zrVW74cHpsjhtovVATbhDRuJYfE+X4HCaAieW9lCkwbX6L+X0I4CiUG3w/hFw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@csstools/css-parser-algorithms": "^3.0.1",
-				"@csstools/css-tokenizer": "^3.0.1",
-				"@csstools/media-query-list-parser": "^3.0.1",
-				"is-plain-object": "^5.0.0",
-				"postcss-selector-parser": "^6.1.2",
-				"postcss-value-parser": "^4.2.0",
-				"style-search": "^0.1.0",
-				"stylelint": "^16.8.2"
-			},
-			"engines": {
-				"node": "^18.12 || >=20.9"
-			},
-			"peerDependencies": {
-				"stylelint": "^16.8.0"
-			}
-		},
-		"node_modules/@stylistic/stylelint-plugin/node_modules/is-plain-object": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
-			"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
 		"node_modules/@tootallnate/once": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.1.tgz",
@@ -4506,8 +4475,7 @@
 			"version": "3.0.5",
 			"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
 			"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/@types/node": {
 			"version": "22.18.1",
@@ -5499,16 +5467,16 @@
 			"dev": true
 		},
 		"node_modules/@wikimedia/codex": {
-			"version": "2.4.0",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.4.0.tgz",
-			"integrity": "sha512-j/I1gGbTo6pttjmwyYw9/3CeInK6mpBm2FVfABJk+B1Ylw5DskX+TqeCdKghwxSkxBt0ODbUTBYdFyafk+7ajg==",
+			"version": "2.6.0",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.6.0.tgz",
+			"integrity": "sha512-ul/WXyxZbMV3PrWd0tGATuhTwUijRhHQxEJ+k+NukzcbY4MTItU3zEiw0Ye3wgNGQBMcCDt34pRGF3tXQwwDgA==",
 			"dev": true,
 			"dependencies": {
 				"@floating-ui/vue": "1.0.6",
-				"@wikimedia/codex-icons": "2.4.0"
+				"@wikimedia/codex-icons": "2.6.0"
 			},
 			"engines": {
-				"node": ">=20.19.1",
+				"node": ">=20.20.2",
 				"npm": ">=10.8.2"
 			},
 			"peerDependencies": {
@@ -5516,22 +5484,22 @@
 			}
 		},
 		"node_modules/@wikimedia/codex-design-tokens": {
-			"version": "2.4.0",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex-design-tokens/-/codex-design-tokens-2.4.0.tgz",
-			"integrity": "sha512-VXCIdnDuoXryltFXCz7pEydAa87eOtWA0RAsrE4DFNa01ln0LyrPirdkJ8N/tqFpxX3uACTa4Gzi6r95GKru5w==",
+			"version": "2.6.0",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex-design-tokens/-/codex-design-tokens-2.6.0.tgz",
+			"integrity": "sha512-Y7q5Ef1Vw6KWBO4UPqUgZTMIvmi0DlhU/YNram01F78AaSMWiBrIHCjk7ygNVTH18MsZiI+YUNH9VGtiWz62vA==",
 			"dev": true,
 			"engines": {
-				"node": ">=20.19.1",
+				"node": ">=20.20.2",
 				"npm": ">=10.8.1"
 			}
 		},
 		"node_modules/@wikimedia/codex-icons": {
-			"version": "2.4.0",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.4.0.tgz",
-			"integrity": "sha512-BBtrzLR7r9ShxCMYfsx9XaKJu/peqt5Y/jtvWx3E2G5aL/Y/pIWAkv8NIvU+ztKklbHySLH5jSvVZVKxxvU0Ew==",
+			"version": "2.6.0",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.6.0.tgz",
+			"integrity": "sha512-U0FK8kxhIrX5hAkFGZ0uWsR4arYjWw6GLCMZmrG1qvbX7+CFoVrhJQL7alogRdCrBiQBr8CUQOquOP5fUXPIBQ==",
 			"dev": true,
 			"engines": {
-				"node": ">=20.19.1",
+				"node": ">=20.20.2",
 				"npm": ">=10.8.2"
 			}
 		},
@@ -5725,7 +5693,6 @@
 			"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
 			"integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=8"
 			}
@@ -5744,7 +5711,6 @@
 			"resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
 			"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=8"
 			}
@@ -6773,9 +6739,9 @@
 			"dev": true
 		},
 		"node_modules/cosmiconfig": {
-			"version": "9.0.0",
-			"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
-			"integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
+			"version": "9.0.2",
+			"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz",
+			"integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==",
 			"dev": true,
 			"dependencies": {
 				"env-paths": "^2.2.1",
@@ -6805,10 +6771,20 @@
 			"dev": true
 		},
 		"node_modules/cosmiconfig/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz",
+			"integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -6913,13 +6889,12 @@
 			}
 		},
 		"node_modules/css-functions-list": {
-			"version": "3.2.3",
-			"resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz",
-			"integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==",
+			"version": "3.3.3",
+			"resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz",
+			"integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
-				"node": ">=12 || >=16"
+				"node": ">=12"
 			}
 		},
 		"node_modules/css-select": {
@@ -6998,32 +6973,11 @@
 			"resolved": "https://registry.npmjs.org/css-tokenize/-/css-tokenize-1.0.1.tgz",
 			"integrity": "sha512-gLmmbJdwH9HLY4bcA17lnZ8GgPwEXRbvxBJGHnkiB6gLhRpTzjkjtMIvz7YORGW/Ptv2oMk8b5g+u7mRD6Dd7A==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"inherits": "^2.0.1",
 				"readable-stream": "^1.0.33"
 			}
 		},
-		"node_modules/css-tokenize/node_modules/readable-stream": {
-			"version": "1.1.14",
-			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
-			"integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"core-util-is": "~1.0.0",
-				"inherits": "~2.0.1",
-				"isarray": "0.0.1",
-				"string_decoder": "~0.10.x"
-			}
-		},
-		"node_modules/css-tokenize/node_modules/string_decoder": {
-			"version": "0.10.31",
-			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-			"integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
-			"dev": true,
-			"license": "MIT"
-		},
 		"node_modules/css-tree": {
 			"version": "2.3.1",
 			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
@@ -7852,7 +7806,6 @@
 			"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
 			"integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"end-of-stream": "^1.4.1",
 				"inherits": "^2.0.3",
@@ -7860,6 +7813,29 @@
 				"stream-shift": "^1.0.2"
 			}
 		},
+		"node_modules/duplexify/node_modules/readable-stream": {
+			"version": "3.6.2",
+			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+			"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+			"dev": true,
+			"dependencies": {
+				"inherits": "^2.0.3",
+				"string_decoder": "^1.1.1",
+				"util-deprecate": "^1.0.1"
+			},
+			"engines": {
+				"node": ">= 6"
+			}
+		},
+		"node_modules/duplexify/node_modules/string_decoder": {
+			"version": "1.3.0",
+			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+			"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+			"dev": true,
+			"dependencies": {
+				"safe-buffer": "~5.2.0"
+			}
+		},
 		"node_modules/eastasianwidth": {
 			"version": "0.2.0",
 			"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
@@ -9234,10 +9210,20 @@
 			}
 		},
 		"node_modules/eslint/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz",
+			"integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -9678,16 +9664,16 @@
 			}
 		},
 		"node_modules/form-data": {
-			"version": "4.0.5",
-			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
-			"integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
+			"version": "4.0.6",
+			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz",
+			"integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==",
 			"dev": true,
 			"dependencies": {
 				"asynckit": "^0.4.0",
 				"combined-stream": "^1.0.8",
 				"es-set-tostringtag": "^2.1.0",
-				"hasown": "^2.0.2",
-				"mime-types": "^2.1.12"
+				"hasown": "^2.0.4",
+				"mime-types": "^2.1.35"
 			},
 			"engines": {
 				"node": ">= 6"
@@ -9895,23 +9881,61 @@
 				"node": ">= 6"
 			}
 		},
-		"node_modules/globals": {
-			"version": "15.15.0",
-			"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
-			"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
+		"node_modules/global-modules": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+			"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
 			"dev": true,
-			"engines": {
-				"node": ">=18"
+			"dependencies": {
+				"global-prefix": "^3.0.0"
 			},
-			"funding": {
-				"url": "https://github.com/sponsors/sindresorhus"
+			"engines": {
+				"node": ">=6"
 			}
 		},
-		"node_modules/globby": {
-			"version": "11.1.0",
-			"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
-			"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
-			"dev": true,
+		"node_modules/global-prefix": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+			"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+			"dev": true,
+			"dependencies": {
+				"ini": "^1.3.5",
+				"kind-of": "^6.0.2",
+				"which": "^1.3.1"
+			},
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/global-prefix/node_modules/which": {
+			"version": "1.3.1",
+			"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+			"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+			"dev": true,
+			"dependencies": {
+				"isexe": "^2.0.0"
+			},
+			"bin": {
+				"which": "bin/which"
+			}
+		},
+		"node_modules/globals": {
+			"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"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/globby": {
+			"version": "11.1.0",
+			"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+			"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+			"dev": true,
 			"dependencies": {
 				"array-union": "^2.1.0",
 				"dir-glob": "^3.0.1",
@@ -10114,10 +10138,22 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/hashery": {
+			"version": "1.5.1",
+			"resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz",
+			"integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==",
+			"dev": true,
+			"dependencies": {
+				"hookified": "^1.15.0"
+			},
+			"engines": {
+				"node": ">=20"
+			}
+		},
 		"node_modules/hasown": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
-			"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+			"version": "2.0.4",
+			"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
+			"integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
 			"dev": true,
 			"dependencies": {
 				"function-bind": "^1.1.2"
@@ -10127,11 +10163,10 @@
 			}
 		},
 		"node_modules/hookified": {
-			"version": "1.8.2",
-			"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.8.2.tgz",
-			"integrity": "sha512-5nZbBNP44sFCDjSoB//0N7m508APCgbQ4mGGo1KJGBYyCKNHfry1Pvd0JVHZIxjdnqn8nFRBAN/eFB6Rk/4w5w==",
-			"dev": true,
-			"license": "MIT"
+			"version": "1.15.1",
+			"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz",
+			"integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==",
+			"dev": true
 		},
 		"node_modules/hosted-git-info": {
 			"version": "2.8.9",
@@ -10353,6 +10388,16 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
+		"node_modules/import-meta-resolve": {
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz",
+			"integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==",
+			"dev": true,
+			"funding": {
+				"type": "github",
+				"url": "https://github.com/sponsors/wooorm"
+			}
+		},
 		"node_modules/imurmurhash": {
 			"version": "0.1.4",
 			"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
@@ -10503,6 +10548,15 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/is-plain-object": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+			"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.10.0"
+			}
+		},
 		"node_modules/is-potential-custom-element-name": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
@@ -10550,8 +10604,7 @@
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
 			"integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/isexe": {
 			"version": "2.0.0",
@@ -13305,7 +13358,6 @@
 			"resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
 			"integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"@types/minimatch": "^3.0.3",
 				"array-differ": "^3.0.0",
@@ -14107,6 +14159,24 @@
 				}
 			]
 		},
+		"node_modules/qified": {
+			"version": "0.10.1",
+			"resolved": "https://registry.npmjs.org/qified/-/qified-0.10.1.tgz",
+			"integrity": "sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==",
+			"dev": true,
+			"dependencies": {
+				"hookified": "^2.1.1"
+			},
+			"engines": {
+				"node": ">=20"
+			}
+		},
+		"node_modules/qified/node_modules/hookified": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/hookified/-/hookified-2.2.0.tgz",
+			"integrity": "sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==",
+			"dev": true
+		},
 		"node_modules/qs": {
 			"version": "6.15.2",
 			"resolved": "https://registry.npmjs.org/qs/-/qs-6.15.2.tgz",
@@ -14235,17 +14305,15 @@
 			}
 		},
 		"node_modules/readable-stream": {
-			"version": "3.6.2",
-			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
-			"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+			"version": "1.1.14",
+			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+			"integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
 			"dev": true,
 			"dependencies": {
-				"inherits": "^2.0.3",
-				"string_decoder": "^1.1.1",
-				"util-deprecate": "^1.0.1"
-			},
-			"engines": {
-				"node": ">= 6"
+				"core-util-is": "~1.0.0",
+				"inherits": "~2.0.1",
+				"isarray": "0.0.1",
+				"string_decoder": "~0.10.x"
 			}
 		},
 		"node_modules/regenerate": {
@@ -14653,11 +14721,10 @@
 			}
 		},
 		"node_modules/shell-quote": {
-			"version": "1.8.2",
-			"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz",
-			"integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==",
+			"version": "1.8.4",
+			"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.4.tgz",
+			"integrity": "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">= 0.4"
 			},
@@ -14753,6 +14820,18 @@
 			"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
 			"dev": true
 		},
+		"node_modules/slash": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
+			"integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
+			"dev": true,
+			"engines": {
+				"node": ">=14.16"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
 		"node_modules/slice-ansi": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
@@ -14920,17 +14999,13 @@
 			"version": "1.0.3",
 			"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
 			"integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/string_decoder": {
-			"version": "1.3.0",
-			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
-			"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
-			"dev": true,
-			"dependencies": {
-				"safe-buffer": "~5.2.0"
-			}
+			"version": "0.10.31",
+			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+			"integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
+			"dev": true
 		},
 		"node_modules/string-length": {
 			"version": "4.0.2",
@@ -15045,8 +15120,7 @@
 			"version": "0.1.0",
 			"resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
 			"integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
-			"dev": true,
-			"license": "ISC"
+			"dev": true
 		},
 		"node_modules/stylelint": {
 			"version": "16.19.1",
@@ -15183,29 +15257,31 @@
 			}
 		},
 		"node_modules/stylelint-config-wikimedia": {
-			"version": "0.18.0",
-			"resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.18.0.tgz",
-			"integrity": "sha512-Lr45NIe7pG8i7BPcMc6EddO1pRK8/KNG8gp4o/oOG1Ez10hglJuJb/QT17BlzX8NPkhtP2KdY63NS2f/Wcj6Ww==",
+			"version": "0.19.2",
+			"resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.19.2.tgz",
+			"integrity": "sha512-GTz6SmNbbrjXJpEVussRBtsE2703BSUo5R4PRR3f+o1j1h6ngyyH3/qKJ7oZzlkRMHpJHVtAS9h1emIAvc/XWw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@stylistic/stylelint-config": "2.0.0",
-				"@stylistic/stylelint-plugin": "3.1.1",
+				"@stylistic/stylelint-config": "5.0.0",
+				"@stylistic/stylelint-plugin": "5.1.0",
 				"browserslist-config-wikimedia": "0.7.0",
-				"postcss-html": "1.7.0",
+				"postcss-html": "1.8.1",
 				"postcss-less": "6.0.0",
-				"stylelint": "16.12.0",
-				"stylelint-config-recommended": "14.0.1",
-				"stylelint-no-unsupported-browser-features": "8.0.2"
+				"stylelint": "17.6.0",
+				"stylelint-config-recommended": "18.0.0",
+				"stylelint-no-unsupported-browser-features": "8.1.1"
+			},
+			"engines": {
+				"node": ">=20.19.0"
 			},
 			"peerDependencies": {
 				"postcss-less": "^6.0.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/media-query-list-parser": {
-			"version": "4.0.2",
-			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz",
-			"integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/css-calc": {
+			"version": "3.2.1",
+			"resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz",
+			"integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==",
 			"dev": true,
 			"funding": [
 				{
@@ -15217,19 +15293,18 @@
 					"url": "https://opencollective.com/csstools"
 				}
 			],
-			"license": "MIT",
 			"engines": {
-				"node": ">=18"
+				"node": ">=20.19.0"
 			},
 			"peerDependencies": {
-				"@csstools/css-parser-algorithms": "^3.0.4",
-				"@csstools/css-tokenizer": "^3.0.3"
+				"@csstools/css-parser-algorithms": "^4.0.0",
+				"@csstools/css-tokenizer": "^4.0.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/selector-specificity": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
-			"integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/css-parser-algorithms": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz",
+			"integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==",
 			"dev": true,
 			"funding": [
 				{
@@ -15241,147 +15316,314 @@
 					"url": "https://opencollective.com/csstools"
 				}
 			],
-			"license": "MIT-0",
 			"engines": {
-				"node": ">=18"
+				"node": ">=20.19.0"
 			},
 			"peerDependencies": {
-				"postcss-selector-parser": "^7.0.0"
+				"@csstools/css-tokenizer": "^4.0.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/balanced-match": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
-			"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/css-tree": {
-			"version": "3.1.0",
-			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
-			"integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/css-syntax-patches-for-csstree": {
+			"version": "1.1.5",
+			"resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.5.tgz",
+			"integrity": "sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==",
 			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"mdn-data": "2.12.2",
-				"source-map-js": "^1.0.1"
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/csstools"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/csstools"
+				}
+			],
+			"peerDependencies": {
+				"css-tree": "^3.2.1"
 			},
-			"engines": {
-				"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+			"peerDependenciesMeta": {
+				"css-tree": {
+					"optional": true
+				}
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/dom-serializer": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
-			"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/css-tokenizer": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz",
+			"integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==",
 			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"domelementtype": "^2.3.0",
-				"domhandler": "^5.0.2",
-				"entities": "^4.2.0"
-			},
-			"funding": {
-				"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/csstools"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/csstools"
+				}
+			],
+			"engines": {
+				"node": ">=20.19.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/domhandler": {
-			"version": "5.0.3",
-			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
-			"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/media-query-list-parser": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-5.0.0.tgz",
+			"integrity": "sha512-T9lXmZOfnam3eMERPsszjY5NK0jX8RmThmmm99FZ8b7z8yMaFZWKwLWGZuTwdO3ddRY5fy13GmmEYZXB4I98Eg==",
 			"dev": true,
-			"license": "BSD-2-Clause",
-			"dependencies": {
-				"domelementtype": "^2.3.0"
-			},
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/csstools"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/csstools"
+				}
+			],
 			"engines": {
-				"node": ">= 4"
+				"node": ">=20.19.0"
 			},
-			"funding": {
-				"url": "https://github.com/fb55/domhandler?sponsor=1"
+			"peerDependencies": {
+				"@csstools/css-parser-algorithms": "^4.0.0",
+				"@csstools/css-tokenizer": "^4.0.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/domutils": {
-			"version": "3.2.2",
-			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
-			"integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/selector-resolve-nested": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.0.tgz",
+			"integrity": "sha512-9vAPxmp+Dx3wQBIUwc1v7Mdisw1kbbaGqXUM8QLTgWg7SoPGYtXBsMXvsFs/0Bn5yoFhcktzxNZGNaUt0VjgjA==",
 			"dev": true,
-			"license": "BSD-2-Clause",
-			"dependencies": {
-				"dom-serializer": "^2.0.0",
-				"domelementtype": "^2.3.0",
-				"domhandler": "^5.0.3"
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/csstools"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/csstools"
+				}
+			],
+			"engines": {
+				"node": ">=20.19.0"
 			},
-			"funding": {
-				"url": "https://github.com/fb55/domutils?sponsor=1"
+			"peerDependencies": {
+				"postcss-selector-parser": "^7.1.1"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/entities": {
-			"version": "4.5.0",
-			"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
-			"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/selector-specificity": {
+			"version": "6.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-6.0.0.tgz",
+			"integrity": "sha512-4sSgl78OtOXEX/2d++8A83zHNTgwCJMaR24FvsYL7Uf/VS8HZk9PTwR51elTbGqMuwH3szLvvOXEaVnqn0Z3zA==",
 			"dev": true,
-			"license": "BSD-2-Clause",
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/csstools"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/csstools"
+				}
+			],
 			"engines": {
-				"node": ">=0.12"
+				"node": ">=20.19.0"
 			},
-			"funding": {
-				"url": "https://github.com/fb55/entities?sponsor=1"
+			"peerDependencies": {
+				"postcss-selector-parser": "^7.1.1"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/file-entry-cache": {
-			"version": "9.1.0",
-			"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz",
-			"integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@stylistic/stylelint-config": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-5.0.0.tgz",
+			"integrity": "sha512-AW6S27wEm4DzB+uOZMvRkONIu0ba50VRbFte7qYJgGP4dacS8kAuj8HZJ+s+8kE4GK3XXBcSKLb75a+NfJlbiQ==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"flat-cache": "^5.0.0"
+				"@stylistic/stylelint-plugin": "^5.1.0"
 			},
 			"engines": {
-				"node": ">=18"
+				"node": ">=20.19.0"
+			},
+			"peerDependencies": {
+				"stylelint": "^17.6.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/flat-cache": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz",
-			"integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@stylistic/stylelint-plugin": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-5.1.0.tgz",
+			"integrity": "sha512-TFvKCbJUEWUYCD+rDv45qhnStO6nRtbBngaCblS2JGh8c95S3jJi3fIotfF6EDo4IVM15UPa65WP+kp6GNvXRA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"flatted": "^3.3.1",
-				"keyv": "^4.5.4"
+				"@csstools/css-parser-algorithms": "^4.0.0",
+				"@csstools/css-tokenizer": "^4.0.0",
+				"@csstools/media-query-list-parser": "^5.0.0",
+				"postcss": "^8.5.8",
+				"postcss-selector-parser": "^7.1.1",
+				"postcss-value-parser": "^4.2.0",
+				"style-search": "^0.1.0"
 			},
 			"engines": {
-				"node": ">=18"
+				"node": ">=20.19.0"
+			},
+			"peerDependencies": {
+				"stylelint": "^17.6.0"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/ansi-regex": {
+			"version": "6.2.2",
+			"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+			"integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/ansi-regex?sponsor=1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/cacheable": {
+			"version": "2.3.5",
+			"resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.5.tgz",
+			"integrity": "sha512-EQfaKe09tl615iNvq/TBRWTFf1AKJNXYQSsMx0Z3EI0nA+pVsVPS8wJhnRlkbdacKPh1d0qVIhwTc2zsQNFEEg==",
+			"dev": true,
+			"dependencies": {
+				"@cacheable/memory": "^2.0.8",
+				"@cacheable/utils": "^2.4.1",
+				"hookified": "^1.15.0",
+				"keyv": "^5.6.0",
+				"qified": "^0.10.1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/css-tree": {
+			"version": "3.2.1",
+			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz",
+			"integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
+			"dev": true,
+			"dependencies": {
+				"mdn-data": "2.27.1",
+				"source-map-js": "^1.2.1"
+			},
+			"engines": {
+				"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/global-modules": {
+		"node_modules/stylelint-config-wikimedia/node_modules/dom-serializer": {
 			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
-			"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+			"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"global-prefix": "^3.0.0"
+				"domelementtype": "^2.3.0",
+				"domhandler": "^5.0.2",
+				"entities": "^4.2.0"
+			},
+			"funding": {
+				"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/domhandler": {
+			"version": "5.0.3",
+			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+			"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.3.0"
 			},
 			"engines": {
-				"node": ">=6"
+				"node": ">= 4"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domhandler?sponsor=1"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/global-prefix": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
-			"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+		"node_modules/stylelint-config-wikimedia/node_modules/domutils": {
+			"version": "3.2.2",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
+			"integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"ini": "^1.3.5",
-				"kind-of": "^6.0.2",
-				"which": "^1.3.1"
+				"dom-serializer": "^2.0.0",
+				"domelementtype": "^2.3.0",
+				"domhandler": "^5.0.3"
 			},
+			"funding": {
+				"url": "https://github.com/fb55/domutils?sponsor=1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/entities": {
+			"version": "4.5.0",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+			"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+			"dev": true,
 			"engines": {
-				"node": ">=6"
+				"node": ">=0.12"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/file-entry-cache": {
+			"version": "11.1.3",
+			"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.3.tgz",
+			"integrity": "sha512-oMbq0PD6VIiIwMF6LIa7MEwd/l9huKwmqRKXqmrkqIZv8CvRbfowL+L0ryAl8h//HfAS0zS+4SbYoRyAoA6BJA==",
+			"dev": true,
+			"dependencies": {
+				"flat-cache": "^6.1.22"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/flat-cache": {
+			"version": "6.1.22",
+			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.22.tgz",
+			"integrity": "sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==",
+			"dev": true,
+			"dependencies": {
+				"cacheable": "^2.3.4",
+				"flatted": "^3.4.2",
+				"hookified": "^1.15.0"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/globby": {
+			"version": "16.2.0",
+			"resolved": "https://registry.npmjs.org/globby/-/globby-16.2.0.tgz",
+			"integrity": "sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==",
+			"dev": true,
+			"dependencies": {
+				"@sindresorhus/merge-streams": "^4.0.0",
+				"fast-glob": "^3.3.3",
+				"ignore": "^7.0.5",
+				"is-path-inside": "^4.0.0",
+				"slash": "^5.1.0",
+				"unicorn-magic": "^0.4.0"
+			},
+			"engines": {
+				"node": ">=20"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/has-flag": {
+			"version": "5.0.1",
+			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz",
+			"integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/html-tags": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-5.1.0.tgz",
+			"integrity": "sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=20.10"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/htmlparser2": {
@@ -15396,7 +15638,6 @@
 					"url": "https://github.com/sponsors/fb55"
 				}
 			],
-			"license": "MIT",
 			"dependencies": {
 				"domelementtype": "^2.3.0",
 				"domhandler": "^5.0.3",
@@ -15405,56 +15646,78 @@
 			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/ignore": {
-			"version": "6.0.2",
-			"resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz",
-			"integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==",
+			"version": "7.0.5",
+			"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+			"integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">= 4"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/is-plain-object": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
-			"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+		"node_modules/stylelint-config-wikimedia/node_modules/is-path-inside": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz",
+			"integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
-				"node": ">=0.10.0"
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/js-tokens": {
 			"version": "9.0.1",
 			"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
 			"integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
+			"dev": true
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/keyv": {
+			"version": "5.6.0",
+			"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz",
+			"integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==",
 			"dev": true,
-			"license": "MIT"
+			"dependencies": {
+				"@keyv/serialize": "^1.1.1"
+			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/known-css-properties": {
-			"version": "0.35.0",
-			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz",
-			"integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==",
+		"node_modules/stylelint-config-wikimedia/node_modules/mathml-tag-names": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-4.0.0.tgz",
+			"integrity": "sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==",
 			"dev": true,
-			"license": "MIT"
+			"funding": {
+				"type": "github",
+				"url": "https://github.com/sponsors/wooorm"
+			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/mdn-data": {
-			"version": "2.12.2",
-			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
-			"integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+			"version": "2.27.1",
+			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
+			"integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
+			"dev": true
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/meow": {
+			"version": "14.1.0",
+			"resolved": "https://registry.npmjs.org/meow/-/meow-14.1.0.tgz",
+			"integrity": "sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==",
 			"dev": true,
-			"license": "CC0-1.0"
+			"engines": {
+				"node": ">=20"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/postcss-html": {
-			"version": "1.7.0",
-			"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.7.0.tgz",
-			"integrity": "sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==",
+			"version": "1.8.1",
+			"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.8.1.tgz",
+			"integrity": "sha512-OLF6P7qctfAWayOhLpcVnTGqVeJzu2W3WpIYelfz2+JV5oGxfkcEvweN9U4XpeqE0P98dcD9ssusGwlF0TK0uQ==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"htmlparser2": "^8.0.0",
 				"js-tokens": "^9.0.0",
-				"postcss": "^8.4.0",
+				"postcss": "^8.5.0",
 				"postcss-safe-parser": "^6.0.0"
 			},
 			"engines": {
@@ -15462,11 +15725,10 @@
 			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/postcss-selector-parser": {
-			"version": "7.1.0",
-			"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
-			"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
+			"version": "7.1.4",
+			"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz",
+			"integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"cssesc": "^3.0.0",
 				"util-deprecate": "^1.0.2"
@@ -15475,10 +15737,53 @@
 				"node": ">=4"
 			}
 		},
+		"node_modules/stylelint-config-wikimedia/node_modules/signal-exit": {
+			"version": "4.1.0",
+			"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+			"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+			"dev": true,
+			"engines": {
+				"node": ">=14"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/isaacs"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/string-width": {
+			"version": "8.2.1",
+			"resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz",
+			"integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==",
+			"dev": true,
+			"dependencies": {
+				"get-east-asian-width": "^1.5.0",
+				"strip-ansi": "^7.1.2"
+			},
+			"engines": {
+				"node": ">=20"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/strip-ansi": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+			"integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
+			"dev": true,
+			"dependencies": {
+				"ansi-regex": "^6.2.2"
+			},
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/strip-ansi?sponsor=1"
+			}
+		},
 		"node_modules/stylelint-config-wikimedia/node_modules/stylelint": {
-			"version": "16.12.0",
-			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.12.0.tgz",
-			"integrity": "sha512-F8zZ3L/rBpuoBZRvI4JVT20ZanPLXfQLzMOZg1tzPflRVh9mKpOZ8qcSIhh1my3FjAjZWG4T2POwGnmn6a6hbg==",
+			"version": "17.6.0",
+			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.6.0.tgz",
+			"integrity": "sha512-tokrsMIVAR9vAQ/q3UVEr7S0dGXCi7zkCezPRnS2kqPUulvUh5Vgfwngrk4EoAoW7wnrThqTdnTFN5Ra7CaxIg==",
 			"dev": true,
 			"funding": [
 				{
@@ -15490,52 +15795,71 @@
 					"url": "https://github.com/sponsors/stylelint"
 				}
 			],
-			"license": "MIT",
 			"dependencies": {
-				"@csstools/css-parser-algorithms": "^3.0.4",
-				"@csstools/css-tokenizer": "^3.0.3",
-				"@csstools/media-query-list-parser": "^4.0.2",
-				"@csstools/selector-specificity": "^5.0.0",
-				"@dual-bundle/import-meta-resolve": "^4.1.0",
-				"balanced-match": "^2.0.0",
+				"@csstools/css-calc": "^3.1.1",
+				"@csstools/css-parser-algorithms": "^4.0.0",
+				"@csstools/css-syntax-patches-for-csstree": "^1.1.1",
+				"@csstools/css-tokenizer": "^4.0.0",
+				"@csstools/media-query-list-parser": "^5.0.0",
+				"@csstools/selector-resolve-nested": "^4.0.0",
+				"@csstools/selector-specificity": "^6.0.0",
 				"colord": "^2.9.3",
-				"cosmiconfig": "^9.0.0",
-				"css-functions-list": "^3.2.3",
-				"css-tree": "^3.0.1",
-				"debug": "^4.3.7",
-				"fast-glob": "^3.3.2",
+				"cosmiconfig": "^9.0.1",
+				"css-functions-list": "^3.3.3",
+				"css-tree": "^3.2.1",
+				"debug": "^4.4.3",
+				"fast-glob": "^3.3.3",
 				"fastest-levenshtein": "^1.0.16",
-				"file-entry-cache": "^9.1.0",
+				"file-entry-cache": "^11.1.2",
 				"global-modules": "^2.0.0",
-				"globby": "^11.1.0",
+				"globby": "^16.1.1",
 				"globjoin": "^0.1.4",
-				"html-tags": "^3.3.1",
-				"ignore": "^6.0.2",
-				"imurmurhash": "^0.1.4",
+				"html-tags": "^5.1.0",
+				"ignore": "^7.0.5",
+				"import-meta-resolve": "^4.2.0",
 				"is-plain-object": "^5.0.0",
-				"known-css-properties": "^0.35.0",
-				"mathml-tag-names": "^2.1.3",
-				"meow": "^13.2.0",
+				"mathml-tag-names": "^4.0.0",
+				"meow": "^14.1.0",
 				"micromatch": "^4.0.8",
 				"normalize-path": "^3.0.0",
 				"picocolors": "^1.1.1",
-				"postcss": "^8.4.49",
-				"postcss-resolve-nested-selector": "^0.1.6",
+				"postcss": "^8.5.8",
 				"postcss-safe-parser": "^7.0.1",
-				"postcss-selector-parser": "^7.0.0",
+				"postcss-selector-parser": "^7.1.1",
 				"postcss-value-parser": "^4.2.0",
-				"resolve-from": "^5.0.0",
-				"string-width": "^4.2.3",
-				"supports-hyperlinks": "^3.1.0",
+				"string-width": "^8.2.0",
+				"supports-hyperlinks": "^4.4.0",
 				"svg-tags": "^1.0.0",
 				"table": "^6.9.0",
-				"write-file-atomic": "^5.0.1"
+				"write-file-atomic": "^7.0.1"
 			},
 			"bin": {
 				"stylelint": "bin/stylelint.mjs"
 			},
 			"engines": {
-				"node": ">=18.12.0"
+				"node": ">=20.19.0"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/stylelint-config-recommended": {
+			"version": "18.0.0",
+			"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-18.0.0.tgz",
+			"integrity": "sha512-mxgT2XY6YZ3HWWe3Di8umG6aBmWmHTblTgu/f10rqFXnyWxjKWwNdjSWkgkwCtxIKnqjSJzvFmPT5yabVIRxZg==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/stylelint"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/stylelint"
+				}
+			],
+			"engines": {
+				"node": ">=20.19.0"
+			},
+			"peerDependencies": {
+				"stylelint": "^17.0.0"
 			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/stylelint/node_modules/postcss-safe-parser": {
@@ -15557,7 +15881,6 @@
 					"url": "https://github.com/sponsors/ai"
 				}
 			],
-			"license": "MIT",
 			"engines": {
 				"node": ">=18.0"
 			},
@@ -15565,34 +15888,61 @@
 				"postcss": "^8.4.31"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/which": {
-			"version": "1.3.1",
-			"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-			"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+		"node_modules/stylelint-config-wikimedia/node_modules/supports-color": {
+			"version": "10.2.2",
+			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz",
+			"integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==",
+			"dev": true,
+			"engines": {
+				"node": ">=18"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/supports-color?sponsor=1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/supports-hyperlinks": {
+			"version": "4.4.0",
+			"resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-4.4.0.tgz",
+			"integrity": "sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==",
 			"dev": true,
-			"license": "ISC",
 			"dependencies": {
-				"isexe": "^2.0.0"
+				"has-flag": "^5.0.1",
+				"supports-color": "^10.2.2"
 			},
-			"bin": {
-				"which": "bin/which"
+			"engines": {
+				"node": ">=20"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/supports-hyperlinks?sponsor=1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/write-file-atomic": {
+			"version": "7.0.1",
+			"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-7.0.1.tgz",
+			"integrity": "sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==",
+			"dev": true,
+			"dependencies": {
+				"signal-exit": "^4.0.1"
+			},
+			"engines": {
+				"node": "^20.17.0 || >=22.9.0"
 			}
 		},
 		"node_modules/stylelint-no-unsupported-browser-features": {
-			"version": "8.0.2",
-			"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-8.0.2.tgz",
-			"integrity": "sha512-4PY2qJ3ZTEje9RgGfaQ82eJoPioXxs6hazeKpji/wzLNVzTX2wd4b0Ds3ewdLkH3ID+o63IInuTquU2MNJO3YQ==",
+			"version": "8.1.1",
+			"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-8.1.1.tgz",
+			"integrity": "sha512-sLEe6NUFoWL2vGt6IKKllQEKfKgVxmvTBFs1JVMHKKLWzxtWAXaqSxJvH+j0URM4vLQQqzC/wXc9Kp3XBNKdBw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"doiuse": "^6.0.5",
+				"browserslist": "^4.26.3",
+				"doiuse": "^6.0.6",
 				"postcss": "^8.4.32"
 			},
 			"engines": {
 				"node": ">=18.12.0"
 			},
 			"peerDependencies": {
-				"stylelint": "^16.0.2"
+				"stylelint": ">=16.0.2"
 			}
 		},
 		"node_modules/stylelint/node_modules/@csstools/media-query-list-parser": {
@@ -15684,32 +16034,6 @@
 				"hookified": "^1.8.1"
 			}
 		},
-		"node_modules/stylelint/node_modules/global-modules": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
-			"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
-			"dev": true,
-			"dependencies": {
-				"global-prefix": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=6"
-			}
-		},
-		"node_modules/stylelint/node_modules/global-prefix": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
-			"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
-			"dev": true,
-			"dependencies": {
-				"ini": "^1.3.5",
-				"kind-of": "^6.0.2",
-				"which": "^1.3.1"
-			},
-			"engines": {
-				"node": ">=6"
-			}
-		},
 		"node_modules/stylelint/node_modules/ignore": {
 			"version": "7.0.4",
 			"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz",
@@ -15720,15 +16044,6 @@
 				"node": ">= 4"
 			}
 		},
-		"node_modules/stylelint/node_modules/is-plain-object": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
-			"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
-			"dev": true,
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
 		"node_modules/stylelint/node_modules/mdn-data": {
 			"version": "2.12.2",
 			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
@@ -15777,18 +16092,6 @@
 				"node": ">=4"
 			}
 		},
-		"node_modules/stylelint/node_modules/which": {
-			"version": "1.3.1",
-			"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-			"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-			"dev": true,
-			"dependencies": {
-				"isexe": "^2.0.0"
-			},
-			"bin": {
-				"which": "bin/which"
-			}
-		},
 		"node_modules/superagent": {
 			"version": "10.3.0",
 			"resolved": "https://registry.npmjs.org/superagent/-/superagent-10.3.0.tgz",
@@ -16447,6 +16750,18 @@
 				"node": ">=4"
 			}
 		},
+		"node_modules/unicorn-magic": {
+			"version": "0.4.0",
+			"resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz",
+			"integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==",
+			"dev": true,
+			"engines": {
+				"node": ">=20"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
 		"node_modules/universalify": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
@@ -16580,9 +16895,9 @@
 			}
 		},
 		"node_modules/vite": {
-			"version": "7.3.2",
-			"resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz",
-			"integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==",
+			"version": "7.3.5",
+			"resolved": "https://registry.npmjs.org/vite/-/vite-7.3.5.tgz",
+			"integrity": "sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww==",
 			"dev": true,
 			"dependencies": {
 				"esbuild": "^0.27.0",
@@ -17026,9 +17341,9 @@
 			}
 		},
 		"node_modules/ws": {
-			"version": "8.20.1",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz",
-			"integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==",
+			"version": "8.21.0",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
+			"integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
 			"dev": true,
 			"engines": {
 				"node": ">=10.0.0"
diff --git a/package.json b/package.json
index 874a16a..ac79327 100644
--- a/package.json
+++ b/package.json
@@ -30,8 +30,8 @@
 		"@vitejs/plugin-vue": "^6.0.1",
 		"@vue/test-utils": "^2.4.6",
 		"@vue/vue3-jest": "^29.2.6",
-		"@wikimedia/codex": "2.4.0",
-		"@wikimedia/codex-design-tokens": "2.4.0",
+		"@wikimedia/codex": "2.6.0",
+		"@wikimedia/codex-design-tokens": "2.6.0",
 		"@wikimedia/types-wikimedia": "^0.4.4",
 		"api-testing": "1.7.3",
 		"cypress": "^15.14.0",
@@ -60,7 +60,7 @@
 		"rollup": "3.30.0",
 		"stylelint": "^16.19.1",
 		"stylelint-config-recommended-vue": "1.4.0",
-		"stylelint-config-wikimedia": "0.18.0",
+		"stylelint-config-wikimedia": "0.19.2",
 		"svgo": "4.0.1",
 		"typescript": "^4.9.5",
 		"vite": "^7.1.6",
-- 
2.47.3

$ date
--- stdout ---
Thu Jun 18 15:15:31 UTC 2026

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

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

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

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

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

--- end ---
$ git show-ref refs/heads/master
--- stdout ---
171331c50beb94ccc5be4e134c7a599308c6455d refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@babel/core": {
      "name": "@babel/core",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1120793,
          "name": "@babel/core",
          "dependency": "@babel/core",
          "title": "@babel/core: Arbitrary File Read via sourceMappingURL Comment",
          "url": "https://github.com/advisories/GHSA-4x5r-pxfx-6jf8",
          "severity": "low",
          "cwe": [
            "CWE-22",
            "CWE-200"
          ],
          "cvss": {
            "score": 3.2,
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N"
          },
          "range": "<=7.29.0"
        }
      ],
      "effects": [],
      "range": "<=7.29.0",
      "nodes": [
        "node_modules/@babel/core"
      ],
      "fixAvailable": true
    },
    "@istanbuljs/load-nyc-config": {
      "name": "@istanbuljs/load-nyc-config",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "js-yaml"
      ],
      "effects": [
        "babel-plugin-istanbul"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@istanbuljs/load-nyc-config"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/core": {
      "name": "@jest/core",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/reporters",
        "@jest/transform",
        "jest-config",
        "jest-resolve-dependencies",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot"
      ],
      "effects": [
        "jest",
        "jest-cli"
      ],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/@jest/core"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/expect": {
      "name": "@jest/expect",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-snapshot"
      ],
      "effects": [
        "@jest/globals",
        "jest-circus"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/expect"
      ],
      "fixAvailable": true
    },
    "@jest/globals": {
      "name": "@jest/globals",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/expect"
      ],
      "effects": [
        "jest-runtime"
      ],
      "range": ">=28.0.0-alpha.0",
      "nodes": [
        "node_modules/@jest/globals"
      ],
      "fixAvailable": true
    },
    "@jest/reporters": {
      "name": "@jest/reporters",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/transform"
      ],
      "effects": [],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/@jest/reporters"
      ],
      "fixAvailable": true
    },
    "@jest/transform": {
      "name": "@jest/transform",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "babel-plugin-istanbul"
      ],
      "effects": [
        "@jest/core",
        "@jest/reporters",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot"
      ],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/@jest/transform"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@vue/vue3-jest": {
      "name": "@vue/vue3-jest",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "babel-jest",
        "jest"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@vue/vue3-jest"
      ],
      "fixAvailable": false
    },
    "babel-jest": {
      "name": "babel-jest",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/transform",
        "babel-plugin-istanbul"
      ],
      "effects": [
        "@vue/vue3-jest",
        "jest-config"
      ],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/babel-jest"
      ],
      "fixAvailable": false
    },
    "babel-plugin-istanbul": {
      "name": "babel-plugin-istanbul",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@istanbuljs/load-nyc-config"
      ],
      "effects": [
        "@jest/transform",
        "babel-jest"
      ],
      "range": ">=6.0.0-beta.0",
      "nodes": [
        "node_modules/babel-plugin-istanbul"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "create-jest": {
      "name": "create-jest",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-config"
      ],
      "effects": [
        "jest-cli"
      ],
      "range": ">=29.7.0",
      "nodes": [
        "node_modules/create-jest"
      ],
      "fixAvailable": true
    },
    "esbuild": {
      "name": "esbuild",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1120680,
          "name": "esbuild",
          "dependency": "esbuild",
          "title": "esbuild allows arbitrary file read when running the development server on Windows",
          "url": "https://github.com/advisories/GHSA-g7r4-m6w7-qqqr",
          "severity": "low",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 2.5,
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": ">=0.27.3 <0.28.1"
        }
      ],
      "effects": [],
      "range": "0.27.3 - 0.28.0",
      "nodes": [
        "node_modules/esbuild"
      ],
      "fixAvailable": true
    },
    "form-data": {
      "name": "form-data",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1120743,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
          "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
          "severity": "high",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=4.0.0 <4.0.6"
        }
      ],
      "effects": [],
      "range": "4.0.0 - 4.0.5",
      "nodes": [
        "node_modules/form-data"
      ],
      "fixAvailable": true
    },
    "jest": {
      "name": "jest",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "@jest/core",
        "jest-cli"
      ],
      "effects": [],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/jest"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-circus": {
      "name": "jest-circus",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/expect",
        "jest-runtime",
        "jest-snapshot"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=25.2.4",
      "nodes": [
        "node_modules/jest-circus"
      ],
      "fixAvailable": true
    },
    "jest-cli": {
      "name": "jest-cli",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/core",
        "create-jest",
        "jest-config"
      ],
      "effects": [],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/jest-cli"
      ],
      "fixAvailable": true
    },
    "jest-config": {
      "name": "jest-config",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "babel-jest",
        "jest-circus",
        "jest-runner"
      ],
      "effects": [
        "create-jest"
      ],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/jest-config"
      ],
      "fixAvailable": true
    },
    "jest-resolve-dependencies": {
      "name": "jest-resolve-dependencies",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-snapshot"
      ],
      "effects": [],
      "range": ">=27.0.0-next.0",
      "nodes": [
        "node_modules/jest-resolve-dependencies"
      ],
      "fixAvailable": true
    },
    "jest-runner": {
      "name": "jest-runner",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/transform",
        "jest-runtime"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/jest-runner"
      ],
      "fixAvailable": true
    },
    "jest-runtime": {
      "name": "jest-runtime",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/globals",
        "@jest/transform",
        "jest-snapshot"
      ],
      "effects": [
        "jest-circus",
        "jest-runner"
      ],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/jest-runtime"
      ],
      "fixAvailable": true
    },
    "jest-snapshot": {
      "name": "jest-snapshot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/transform"
      ],
      "effects": [
        "@jest/core",
        "@jest/expect",
        "jest-circus",
        "jest-resolve-dependencies",
        "jest-runtime"
      ],
      "range": ">=27.0.0-next.0",
      "nodes": [
        "node_modules/jest-snapshot"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "js-yaml": {
      "name": "js-yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1120792,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
          "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
          "severity": "moderate",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<=4.1.1"
        }
      ],
      "effects": [
        "@istanbuljs/load-nyc-config"
      ],
      "range": "<=4.1.1",
      "nodes": [
        "node_modules/@eslint/eslintrc/node_modules/js-yaml",
        "node_modules/cosmiconfig/node_modules/js-yaml",
        "node_modules/eslint/node_modules/js-yaml",
        "node_modules/js-yaml"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "shell-quote": {
      "name": "shell-quote",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1120422,
          "name": "shell-quote",
          "dependency": "shell-quote",
          "title": "shell-quote quote() does not escape newlines in object .op values",
          "url": "https://github.com/advisories/GHSA-w7jw-789q-3m8p",
          "severity": "critical",
          "cwe": [
            "CWE-77",
            "CWE-78"
          ],
          "cvss": {
            "score": 8.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": ">=1.1.0 <=1.8.3"
        }
      ],
      "effects": [],
      "range": "1.1.0 - 1.8.3",
      "nodes": [
        "node_modules/shell-quote"
      ],
      "fixAvailable": true
    },
    "vite": {
      "name": "vite",
      "severity": "high",
      "isDirect": true,
      "via": [
        {
          "source": 1120785,
          "name": "vite",
          "dependency": "vite",
          "title": "launch-editor: NTLMv2 hash disclosure via UNC path handling on Windows",
          "url": "https://github.com/advisories/GHSA-v6wh-96g9-6wx3",
          "severity": "moderate",
          "cwe": [
            "CWE-73",
            "CWE-522"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=7.0.0 <=7.3.4"
        },
        {
          "source": 1120790,
          "name": "vite",
          "dependency": "vite",
          "title": "vite: `server.fs.deny` bypass on Windows alternate paths",
          "url": "https://github.com/advisories/GHSA-fx2h-pf6j-xcff",
          "severity": "high",
          "cwe": [
            "CWE-22",
            "CWE-200"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=7.0.0 <=7.3.4"
        }
      ],
      "effects": [],
      "range": "7.0.0 - 7.3.3",
      "nodes": [
        "node_modules/vite"
      ],
      "fixAvailable": true
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1120730,
          "name": "ws",
          "dependency": "ws",
          "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks",
          "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-770"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.21.0"
        }
      ],
      "effects": [],
      "range": "8.0.0 - 8.20.1",
      "nodes": [
        "node_modules/ws"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 2,
      "moderate": 19,
      "high": 3,
      "critical": 1,
      "total": 25
    },
    "dependencies": {
      "prod": 1,
      "dev": 1300,
      "optional": 65,
      "peer": 7,
      "peerOptional": 0,
      "total": 1300
    }
  }
}

--- 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: 49 installs, 0 updates, 0 removals
  - Locking composer/pcre (3.4.0)
  - Locking composer/semver (3.4.4)
  - Locking composer/spdx-licenses (1.6.0)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking danog/advanced-json-rpc (v3.2.3)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.1)
  - Locking doctrine/annotations (2.0.2)
  - Locking doctrine/deprecations (1.1.6)
  - Locking doctrine/lexer (3.0.1)
  - Locking mediawiki/mediawiki-codesniffer (v51.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.20.0)
  - Locking mediawiki/minus-x (2.0.1)
  - Locking mediawiki/phan-taint-check-plugin (9.1.0)
  - Locking netresearch/jsonmapper (v5.0.1)
  - Locking phan/phan (6.0.2)
  - Locking phan/tolerant-php-parser (v0.2.0)
  - Locking phan/var_representation_polyfill (0.1.4)
  - 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 phpbench/container (2.2.3)
  - Locking phpbench/phpbench (1.7.0)
  - Locking phpcsstandards/phpcsextra (1.5.0)
  - Locking phpcsstandards/phpcsutils (1.2.2)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (6.0.3)
  - Locking phpdocumentor/type-resolver (2.0.0)
  - Locking phpstan/phpdoc-parser (2.3.2)
  - Locking psr/cache (3.0.0)
  - Locking psr/container (2.0.2)
  - Locking psr/log (3.0.2)
  - Locking sabre/event (6.1.0)
  - Locking seld/jsonlint (1.12.1)
  - Locking squizlabs/php_codesniffer (3.13.5)
  - Locking symfony/console (v8.1.0)
  - Locking symfony/deprecation-contracts (v3.7.0)
  - Locking symfony/filesystem (v8.1.0)
  - Locking symfony/finder (v8.1.0)
  - Locking symfony/options-resolver (v8.1.0)
  - Locking symfony/polyfill-ctype (v1.37.0)
  - Locking symfony/polyfill-intl-grapheme (v1.38.1)
  - Locking symfony/polyfill-intl-normalizer (v1.38.0)
  - Locking symfony/polyfill-mbstring (v1.38.2)
  - Locking symfony/polyfill-php85 (v1.38.1)
  - Locking symfony/process (v8.1.0)
  - Locking symfony/service-contracts (v3.7.0)
  - Locking symfony/string (v8.1.0)
  - Locking webmozart/assert (2.4.1)
  - Locking webmozart/glob (4.7.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 49 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Installing squizlabs/php_codesniffer (3.13.5): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.2.1): Extracting archive
  - Installing composer/pcre (3.4.0): Extracting archive
  - Installing doctrine/lexer (3.0.1): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.2.2): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.5.0): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.38.2): Extracting archive
  - Installing composer/spdx-licenses (1.6.0): Extracting archive
  - Installing composer/semver (3.4.4): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v51.0.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.38.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.38.1): Extracting archive
  - Installing symfony/polyfill-ctype (v1.37.0): Extracting archive
  - Installing symfony/string (v8.1.0): Extracting archive
  - Installing symfony/deprecation-contracts (v3.7.0): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.7.0): Extracting archive
  - Installing symfony/polyfill-php85 (v1.38.1): Extracting archive
  - Installing symfony/console (v8.1.0): Extracting archive
  - Installing sabre/event (6.1.0): Extracting archive
  - Installing phan/var_representation_polyfill (0.1.4): Extracting archive
  - Installing phan/tolerant-php-parser (v0.2.0): Extracting archive
  - Installing netresearch/jsonmapper (v5.0.1): Extracting archive
  - Installing webmozart/assert (2.4.1): Extracting archive
  - Installing phpstan/phpdoc-parser (2.3.2): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing doctrine/deprecations (1.1.6): Extracting archive
  - Installing phpdocumentor/type-resolver (2.0.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (6.0.3): Extracting archive
  - Installing danog/advanced-json-rpc (v3.2.3): Extracting archive
  - Installing psr/log (3.0.2): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (6.0.2): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (9.1.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.20.0): Extracting archive
  - Installing mediawiki/minus-x (2.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
  - Installing webmozart/glob (4.7.0): Extracting archive
  - Installing symfony/process (v8.1.0): Extracting archive
  - Installing symfony/options-resolver (v8.1.0): Extracting archive
  - Installing symfony/finder (v8.1.0): Extracting archive
  - Installing symfony/filesystem (v8.1.0): Extracting archive
  - Installing seld/jsonlint (1.12.1): Extracting archive
  - Installing phpbench/container (2.2.3): Extracting archive
  - Installing psr/cache (3.0.0): Extracting archive
  - Installing doctrine/annotations (2.0.2): Extracting archive
  - Installing phpbench/phpbench (1.7.0): Extracting archive
  0/47 [>---------------------------]   0%
 26/47 [===============>------------]  55%
 44/47 [==========================>-]  93%
 47/47 [============================] 100%
2 package suggestions were added by new dependencies, use `composer suggest` to see details.
Package doctrine/annotations is abandoned, you should avoid using it. No replacement was suggested.
Generating autoload files
24 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 ---
Upgrading n:stylelint-config-wikimedia from 0.18.0 -> 0.19.2
Upgrading n:@wikimedia/codex from 2.4.0 -> 2.6.0
Upgrading n:@wikimedia/codex-design-tokens from 2.4.0 -> 2.6.0
$ /usr/bin/npm install
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: undefined,
npm WARN EBADENGINE   required: { npm: '>=10', node: '>=20' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'npm-run-all2@8.0.4',
npm WARN EBADENGINE   required: { node: '^20.5.0 || >=22.0.0', npm: '>= 10' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.6.0',
npm WARN EBADENGINE   required: { npm: '>=10.8.2', node: '>=20.20.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-design-tokens@2.6.0',
npm WARN EBADENGINE   required: { npm: '>=10.8.1', node: '>=20.20.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.6.0',
npm WARN EBADENGINE   required: { npm: '>=10.8.2', node: '>=20.20.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 1275 packages, and audited 1276 packages in 41s

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

25 vulnerabilities (2 low, 19 moderate, 3 high, 1 critical)

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

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

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

Run `npm audit` for details.

--- end ---
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json

--- end ---
$ ./node_modules/.bin/stylelint modules/ext.growthExperiments.StructuredTask.PreEdit/StructuredTaskOnboardingContent.less modules/ext.growthExperiments.StructuredTask/EditModeConfirmationDialog.less modules/ext.growthExperiments.Homepage.Impact/components/RecentActivity.vue modules/ext.growthExperiments.StructuredTask.desktop/MinimizedToolbarDialogButton.less modules/ext.growthExperiments.LevelingUp.InviteToSuggestedEdits/InviteToSuggestedEdits.less modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/NumberIcon.vue documentation/frontend/component-demos/add-link-dialog/AddLinkDialogDemo.vue modules/ext.growthExperiments.Homepage.SuggestedEdits/TaskTypeSelectionWidget.less documentation/frontend/component-demos/multi-pane/MultiPaneDemo.vue modules/ext.growthExperiments.MentorDashboard/styles/Discovery.less modules/ext.growthExperiments.Homepage.styles/BannerModule.less documentation/frontend/components/MultiPane.vue modules/vue-components/CScoreCards.vue modules/vue-components/Skeleton.less modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraise.vue modules/utils/variables.less modules/ext.growthExperiments.Homepage.Impact/components/Impact.vue modules/vue-components/CListItem.vue modules/ext.growthExperiments.PostEdit/PostEditPanel.less modules/vue-components/mixins.less modules/ext.growthExperiments.Homepage.Impact/components/ArticlesListItem.vue modules/ext.growthExperiments.Homepage.styles/WelcomeSurveyReminderModule.less modules/ext.growthExperiments.Homepage.styles/StartEmailModule.less modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/NoResults.vue modules/vue-components/CScoreCard.less modules/ext.growthExperiments.StructuredTask.PreEdit/dev/demos/ReviseToneQuizPillDemo.vue modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageToolbarDialog.less documentation/frontend/component-demos/LanguageSelector.vue modules/utils/mixins.less documentation/frontend/component-demos/post-edit-dialog/PostEditDialogDemo.vue modules/vue-components/CList.vue modules/ext.growthExperiments.MentorDashboard/styles/BaseModule.less modules/ext.growthExperiments.Homepage.styles/TaskPreviewWidget.less modules/ui-components/HelpPanelButton.less modules/ext.growthExperiments.StructuredTask.PreEdit/dev/demos/CommonComponentsDemo.vue documentation/frontend/components/AddImageDialog.vue modules/ext.growthExperiments.Homepage.SuggestedEdits/ArticleCountWidget.less modules/ext.growthExperiments.Homepage.mobile/index.less modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableCellLink.vue documentation/frontend/components/variables.less modules/ext.growthExperiments.Homepage.styles/TaskExplanationWidget.less modules/ext.growthExperiments.StructuredTask.PreEdit/addimage/AddImageOnboardingContent.less modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageNode.less modules/ext.growthExperiments.Homepage.SuggestedEdits/StartEditingDialog.less modules/ext.growthExperiments.MentorDashboard/styles/MenteeOverview.css modules/ext.growthExperiments.StructuredTask.desktop/addimage/AddImageDesktopSaveDialog.less modules/ui-components/CollapsibleDrawer.less modules/ext.growthExperiments.Homepage.SuggestedEdits/TopicSelectionWidget.less modules/ext.growthExperiments.MentorDashboard/MentorTools/MentorTools.less modules/ext.growthExperiments.Homepage.styles/CommunityUpdates.less modules/ext.growthExperiments.Homepage.Impact/components/ArticlesList.vue documentation/frontend/components/FilterDialog.vue modules/ext.growthExperiments.MentorDashboard/styles/Resources.less documentation/frontend/component-demos/onboarding-dialog/OnboardingDialogDemo.vue modules/ext.growthExperiments.Homepage.Impact/components/StreakGraph.vue modules/ext.growthExperiments.Help/HelpPanelSearchWidget.less modules/ext.growthExperiments.Account.styles/DonorSignupCampaign.less modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettingsForm.vue modules/ext.growthExperiments.StructuredTask/StructuredTaskSaveDialog.less modules/ext.growthExperiments.Homepage.Impact/components/NoEditsDisplay.vue modules/ext.growthExperiments.Homepage.Impact/components/LayoutWrapper.less modules/ext.growthExperiments.MentorDashboard/styles/MentorDashboard.less modules/ext.growthExperiments.Homepage.styles/SuggestedEditsModule.less modules/ext.growthExperiments.PostEdit/PostEditToastMessage.less modules/ext.growthExperiments.StructuredTask/addimage/AddImageDetailsDialog.less modules/ext.growthExperiments.HelpPanel/SuggestedEditsGuidance.minerva.less modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplaySummary.vue modules/ext.growthExperiments.MentorDashboard/styles/variables.less modules/ext.growthExperiments.HelpPanel/HelpPanelCta.less modules/ext.growthExperiments.StructuredTask.PreEdit/addlink/AddLinkOnboardingContent.less modules/ext.growthExperiments.Homepage.styles/EllipsisMenu.less documentation/frontend/component-demos/onboarding-simple-dialog/OnboardingSimpleDialogDemo.vue modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeSearch.vue modules/ext.growthExperiments.Homepage.styles/Homepage.less modules/ext.growthExperiments.StructuredTask/addimage/AddImageSaveDialog.less modules/ext.growthExperiments.StructuredTask/addimage/AddImageCaptionInfoDialog.less modules/ext.growthExperiments.Homepage.styles/HelpModule.less modules/ext.growthExperiments.Homepage.styles/StartEditingModule.less modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageViewer.less modules/ext.growthExperiments.Homepage.Impact/components/Impact.less modules/ext.growthExperiments.Homepage.Impact/components/InfoBoxes.vue modules/ext.growthExperiments.Homepage.Impact/styles/Impact.less modules/ext.growthExperiments.Homepage.styles/ImpactModule.less modules/ext.growthExperiments.Homepage.SuggestedEdits/SuggestionWidget.less modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFiltersForm.vue modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizGame.vue modules/ui-components/MultiPaneDialog.less modules/ext.growthExperiments.MentorDashboard/styles/MenteeOverview.less modules/ext.growthExperiments.StructuredTask/addsectionimage/ceRecommendedImagePlaceholderNode.less modules/vue-components/MultiPane.vue modules/ext.growthExperiments.Help/HelpPanelHomeButtonWidget.less modules/vue-components/CText.vue modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/NoResults.vue documentation/frontend/component-demos/DemoWrapper.vue modules/ext.growthExperiments.Homepage.styles/SmallTaskCard.less modules/ext.growthExperiments.StructuredTask.PreEdit/App.vue documentation/frontend/component-demos/topic-selection-dialog/TopicSelectionDemo.vue modules/ext.growthExperiments.StructuredTask.PreEdit/StructuredTaskOnboardingDialog.less modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplay.vue modules/vue-components/CScoreCard.vue modules/ext.growthExperiments.HomepageDiscovery/HomepageDiscoveryMobile.less documentation/frontend/component-demos/topic-selection-dialog/TopicSelectionDialog.vue modules/ext.growthExperiments.Homepage.styles/MentorshipModule.less modules/ext.growthExperiments.Account.styles/WelcomeSurvey.less modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableCellValue.vue documentation/frontend/components/OnboardingDialog.vue modules/ext.growthExperiments.Account.styles/WE18ExperimentV1.less modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/DataTableCellMentee.vue modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableLimit.vue modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingStepper.vue modules/ext.growthExperiments.HelpPanel/HelpPanelPopup.less modules/ext.growthExperiments.StructuredTask.PreEdit/common/mixins.less documentation/frontend/component-demos/example-component/ExampleComponent.vue modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageRejectionDialog.less modules/ext.growthExperiments.Homepage.Impact/components/TrendChart.vue modules/ext.growthExperiments.StructuredTask/StructuredTaskToolbarDialog.less modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/ReviseToneOnboarding.vue modules/vue-components/CSparkline.vue modules/ext.growthExperiments.MentorDashboard/components/HorizontalDivider/HorizontalDivider.vue documentation/frontend/components/OnboardingStepper.vue modules/ext.growthExperiments.Homepage.SuggestedEdits/SuggestionGroupWidget.less modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingDialog.vue documentation/frontend/component-demos/filter-dialog/FilterDialogDemo.vue modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFilters.vue modules/ext.growthExperiments.Homepage.Impact/components/ImpactSummary.vue modules/ext.growthExperiments.StructuredTask/StructuredTaskMessageDialog.less modules/ext.growthExperiments.Homepage.Impact/components/LayoutWrapper.vue modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTablePagination.vue modules/ext.growthExperiments.StructuredTask/addlink/RecommendedLinkRejectionDialog.less modules/ext.growthExperiments.Homepage.styles/ConfirmEmailNotice.less modules/ext.growthExperiments.HomepageDiscovery/HomepageDiscovery.less modules/ext.growthExperiments.MentorDashboard/components/CNumberInput/CNumberInput.vue modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/SkipMenteeDialog.vue modules/ext.growthExperiments.HelpPanel/SuggestedEditsGuidance.vector.less modules/ext.growthExperiments.Homepage.Impact/App.vue modules/ext.growthExperiments.Homepage.styles/MobileNoTasksWidget.less modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeOverview.vue documentation/frontend/component-demos/onboarding-stepper-demo/OnboardingStepperDemo.vue modules/ext.growthExperiments.StructuredTask.PreEdit/addsectionimage/AddSectionImageOnboardingContent.less documentation/frontend/component-demos/add-image-dialog/AddImageDialogDemo.vue modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less modules/ext.growthExperiments.Homepage.styles/BaseModule.less modules/ext.growthExperiments.Homepage.SuggestedEdits/MatchModeSelectWidget.less modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettings.vue modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageCaptionNode.less modules/ext.growthExperiments.StructuredTask/addlink/RecommendedLinkToolbarDialog.less documentation/frontend/components/AddLinkDialog.vue documentation/frontend/components/mixins.less modules/ext.growthExperiments.StructuredTask.PreEdit/common/variables.less modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/UserCard.vue modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraisePagination.vue modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTable.vue modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/LegendBox.vue modules/ext.growthExperiments.Help/AskHelpPanel.less modules/ext.growthExperiments.StructuredTask/addlink/ceRecommendedLinkAnnotation.less modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizPill.vue modules/vue-components/CScoreCards.less modules/ext.growthExperiments.PostEdit/PostEditDrawer.less modules/ext.growthExperiments.Account.styles/SpecialContributions.less modules/ext.growthExperiments.StructuredTask/addlink/AddLinkSaveDialog.less modules/ext.growthExperiments.StructuredTask/MachineSuggestionsMode.less --fix
--- stderr ---
modules/ext.growthExperiments.StructuredTask.PreEdit/StructuredTaskOnboardingContent.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/EditModeConfirmationDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/RecentActivity.vue
  119:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  119:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  119:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  119:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.desktop/MinimizedToolbarDialogButton.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.LevelingUp.InviteToSuggestedEdits/InviteToSuggestedEdits.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/NumberIcon.vue
  30:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  30:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  30:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  30:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/TaskTypeSelectionWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/multi-pane/MultiPaneDemo.vue
  79:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  79:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  79:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  79:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/Discovery.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/BannerModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/MultiPane.vue
  145:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  145:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  145:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  145:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/Skeleton.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraise.vue
  149:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  149:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  149:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  149:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/utils/variables.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/CListItem.vue
  26:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  26:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  26:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  26:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.PostEdit/PostEditPanel.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/mixins.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/ArticlesListItem.vue
  128:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  128:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  128:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  128:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/WelcomeSurveyReminderModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/StartEmailModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/NoResults.vue
  20:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  20:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  20:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  20:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/CScoreCard.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/dev/demos/ReviseToneQuizPillDemo.vue
  48:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  48:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  48:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  48:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageToolbarDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/utils/mixins.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/post-edit-dialog/PostEditDialogDemo.vue
  68:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  68:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  68:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  68:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/CList.vue
  37:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  37:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  37:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  37:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/BaseModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/TaskPreviewWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ui-components/HelpPanelButton.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/dev/demos/CommonComponentsDemo.vue
  80:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  80:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  80:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  80:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/AddImageDialog.vue
  240:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  240:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  240:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  240:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/ArticleCountWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.mobile/index.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/variables.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/TaskExplanationWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/addimage/AddImageOnboardingContent.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageNode.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/StartEditingDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/MenteeOverview.css
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.desktop/addimage/AddImageDesktopSaveDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ui-components/CollapsibleDrawer.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/TopicSelectionWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/MentorTools/MentorTools.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/CommunityUpdates.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/FilterDialog.vue
  124:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  124:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  124:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  124:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/Resources.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/onboarding-dialog/OnboardingDialogDemo.vue
  160:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  160:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  160:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  160:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/StreakGraph.vue
  87:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  87:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  87:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  87:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Help/HelpPanelSearchWidget.less
   1:1   ✖  Unknown rule property-no-deprecated                                   property-no-deprecated
   1:1   ✖  Unknown rule media-type-no-deprecated                                 media-type-no-deprecated
   1:1   ✖  Unknown rule nesting-selector-no-missing-scoping-root                 nesting-selector-no-missing-scoping-root
   1:1   ✖  Unknown rule no-invalid-position-declaration                          no-invalid-position-declaration
  12:15  ✖  Unexpected deprecated keyword "break-word" for property "word-break"  declaration-property-value-keyword-no-deprecated

modules/ext.growthExperiments.Account.styles/DonorSignupCampaign.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettingsForm.vue
  222:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  222:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  222:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  222:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/StructuredTaskSaveDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/NoEditsDisplay.vue
  240:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  240:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  240:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  240:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/LayoutWrapper.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/MentorDashboard.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/SuggestedEditsModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.PostEdit/PostEditToastMessage.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/AddImageDetailsDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.HelpPanel/SuggestedEditsGuidance.minerva.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplaySummary.vue
  43:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  43:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  43:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  43:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/variables.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.HelpPanel/HelpPanelCta.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/addlink/AddLinkOnboardingContent.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/EllipsisMenu.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/onboarding-simple-dialog/OnboardingSimpleDialogDemo.vue
  80:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  80:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  80:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  80:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/Homepage.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/AddImageSaveDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/AddImageCaptionInfoDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/HelpModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/StartEditingModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageViewer.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/Impact.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/InfoBoxes.vue
  72:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  72:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  72:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  72:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/styles/Impact.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/ImpactModule.less
   1:1   ✖  Unknown rule property-no-deprecated                                   property-no-deprecated
   1:1   ✖  Unknown rule media-type-no-deprecated                                 media-type-no-deprecated
   1:1   ✖  Unknown rule nesting-selector-no-missing-scoping-root                 nesting-selector-no-missing-scoping-root
   1:1   ✖  Unknown rule no-invalid-position-declaration                          no-invalid-position-declaration
  44:16  ✖  Unexpected deprecated keyword "break-word" for property "word-break"  declaration-property-value-keyword-no-deprecated

modules/ext.growthExperiments.Homepage.SuggestedEdits/SuggestionWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFiltersForm.vue
  202:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  202:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  202:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  202:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizGame.vue
  72:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  72:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  72:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  72:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ui-components/MultiPaneDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/MenteeOverview.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addsectionimage/ceRecommendedImagePlaceholderNode.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/MultiPane.vue
  156:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  156:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  156:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  156:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Help/HelpPanelHomeButtonWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/CText.vue
  82:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  82:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  82:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  82:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/NoResults.vue
  37:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  37:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  37:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  37:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/SmallTaskCard.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/StructuredTaskOnboardingDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplay.vue
  58:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  58:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  58:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  58:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.HomepageDiscovery/HomepageDiscoveryMobile.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/topic-selection-dialog/TopicSelectionDialog.vue
  25:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  25:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  25:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  25:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/MentorshipModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Account.styles/WelcomeSurvey.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableCellValue.vue
  24:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  24:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  24:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  24:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/OnboardingDialog.vue
  272:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  272:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  272:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  272:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Account.styles/WE18ExperimentV1.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/DataTableCellMentee.vue
  84:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  84:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  84:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  84:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableLimit.vue
  46:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  46:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  46:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  46:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingStepper.vue
  46:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  46:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  46:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  46:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.HelpPanel/HelpPanelPopup.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/common/mixins.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/example-component/ExampleComponent.vue
  33:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  33:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  33:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  33:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageRejectionDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/TrendChart.vue
  88:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  88:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  88:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  88:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/StructuredTaskToolbarDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/ReviseToneOnboarding.vue
  158:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  158:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  158:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  158:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/CSparkline.vue
  120:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  120:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  120:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  120:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/HorizontalDivider/HorizontalDivider.vue
  13:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  13:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  13:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  13:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/OnboardingStepper.vue
  43:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  43:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  43:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  43:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/SuggestionGroupWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingDialog.vue
  288:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  288:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  288:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  288:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFilters.vue
  85:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  85:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  85:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  85:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/StructuredTaskMessageDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/LayoutWrapper.vue
  38:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  38:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  38:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  38:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTablePagination.vue
  66:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  66:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  66:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  66:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addlink/RecommendedLinkRejectionDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/ConfirmEmailNotice.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.HomepageDiscovery/HomepageDiscovery.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/CNumberInput/CNumberInput.vue
  150:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  150:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  150:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  150:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/SkipMenteeDialog.vue
  118:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  118:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  118:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  118:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.HelpPanel/SuggestedEditsGuidance.vector.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/App.vue
  96:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  96:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  96:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  96:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/MobileNoTasksWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeOverview.vue
  324:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  324:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  324:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  324:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/onboarding-stepper-demo/OnboardingStepperDemo.vue
  77:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  77:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  77:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  77:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/addsectionimage/AddSectionImageOnboardingContent.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/BaseModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/MatchModeSelectWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettings.vue
  77:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  77:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  77:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  77:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageCaptionNode.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addlink/RecommendedLinkToolbarDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/AddLinkDialog.vue
  216:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  216:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  216:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  216:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/mixins.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/common/variables.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/UserCard.vue
  170:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  170:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  170:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  170:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraisePagination.vue
  65:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  65:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  65:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  65:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTable.vue
  146:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  146:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  146:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  146:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/LegendBox.vue
  45:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  45:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  45:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  45:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Help/AskHelpPanel.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addlink/ceRecommendedLinkAnnotation.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizPill.vue
  149:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  149:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  149:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  149:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/CScoreCards.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.PostEdit/PostEditDrawer.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Account.styles/SpecialContributions.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addlink/AddLinkSaveDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/MachineSuggestionsMode.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

✖ 590 problems (590 errors, 0 warnings)
  2 errors potentially fixable with the "--fix" option.
--- stdout ---

--- end ---
$ ./node_modules/.bin/stylelint modules/ext.growthExperiments.StructuredTask.PreEdit/StructuredTaskOnboardingContent.less modules/ext.growthExperiments.StructuredTask/EditModeConfirmationDialog.less modules/ext.growthExperiments.Homepage.Impact/components/RecentActivity.vue modules/ext.growthExperiments.StructuredTask.desktop/MinimizedToolbarDialogButton.less modules/ext.growthExperiments.LevelingUp.InviteToSuggestedEdits/InviteToSuggestedEdits.less modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/NumberIcon.vue documentation/frontend/component-demos/add-link-dialog/AddLinkDialogDemo.vue modules/ext.growthExperiments.Homepage.SuggestedEdits/TaskTypeSelectionWidget.less documentation/frontend/component-demos/multi-pane/MultiPaneDemo.vue modules/ext.growthExperiments.MentorDashboard/styles/Discovery.less modules/ext.growthExperiments.Homepage.styles/BannerModule.less documentation/frontend/components/MultiPane.vue modules/vue-components/CScoreCards.vue modules/vue-components/Skeleton.less modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraise.vue modules/utils/variables.less modules/ext.growthExperiments.Homepage.Impact/components/Impact.vue modules/vue-components/CListItem.vue modules/ext.growthExperiments.PostEdit/PostEditPanel.less modules/vue-components/mixins.less modules/ext.growthExperiments.Homepage.Impact/components/ArticlesListItem.vue modules/ext.growthExperiments.Homepage.styles/WelcomeSurveyReminderModule.less modules/ext.growthExperiments.Homepage.styles/StartEmailModule.less modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/NoResults.vue modules/vue-components/CScoreCard.less modules/ext.growthExperiments.StructuredTask.PreEdit/dev/demos/ReviseToneQuizPillDemo.vue modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageToolbarDialog.less documentation/frontend/component-demos/LanguageSelector.vue modules/utils/mixins.less documentation/frontend/component-demos/post-edit-dialog/PostEditDialogDemo.vue modules/vue-components/CList.vue modules/ext.growthExperiments.MentorDashboard/styles/BaseModule.less modules/ext.growthExperiments.Homepage.styles/TaskPreviewWidget.less modules/ui-components/HelpPanelButton.less modules/ext.growthExperiments.StructuredTask.PreEdit/dev/demos/CommonComponentsDemo.vue documentation/frontend/components/AddImageDialog.vue modules/ext.growthExperiments.Homepage.SuggestedEdits/ArticleCountWidget.less modules/ext.growthExperiments.Homepage.mobile/index.less modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableCellLink.vue documentation/frontend/components/variables.less modules/ext.growthExperiments.Homepage.styles/TaskExplanationWidget.less modules/ext.growthExperiments.StructuredTask.PreEdit/addimage/AddImageOnboardingContent.less modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageNode.less modules/ext.growthExperiments.Homepage.SuggestedEdits/StartEditingDialog.less modules/ext.growthExperiments.MentorDashboard/styles/MenteeOverview.css modules/ext.growthExperiments.StructuredTask.desktop/addimage/AddImageDesktopSaveDialog.less modules/ui-components/CollapsibleDrawer.less modules/ext.growthExperiments.Homepage.SuggestedEdits/TopicSelectionWidget.less modules/ext.growthExperiments.MentorDashboard/MentorTools/MentorTools.less modules/ext.growthExperiments.Homepage.styles/CommunityUpdates.less modules/ext.growthExperiments.Homepage.Impact/components/ArticlesList.vue documentation/frontend/components/FilterDialog.vue modules/ext.growthExperiments.MentorDashboard/styles/Resources.less documentation/frontend/component-demos/onboarding-dialog/OnboardingDialogDemo.vue modules/ext.growthExperiments.Homepage.Impact/components/StreakGraph.vue modules/ext.growthExperiments.Help/HelpPanelSearchWidget.less modules/ext.growthExperiments.Account.styles/DonorSignupCampaign.less modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettingsForm.vue modules/ext.growthExperiments.StructuredTask/StructuredTaskSaveDialog.less modules/ext.growthExperiments.Homepage.Impact/components/NoEditsDisplay.vue modules/ext.growthExperiments.Homepage.Impact/components/LayoutWrapper.less modules/ext.growthExperiments.MentorDashboard/styles/MentorDashboard.less modules/ext.growthExperiments.Homepage.styles/SuggestedEditsModule.less modules/ext.growthExperiments.PostEdit/PostEditToastMessage.less modules/ext.growthExperiments.StructuredTask/addimage/AddImageDetailsDialog.less modules/ext.growthExperiments.HelpPanel/SuggestedEditsGuidance.minerva.less modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplaySummary.vue modules/ext.growthExperiments.MentorDashboard/styles/variables.less modules/ext.growthExperiments.HelpPanel/HelpPanelCta.less modules/ext.growthExperiments.StructuredTask.PreEdit/addlink/AddLinkOnboardingContent.less modules/ext.growthExperiments.Homepage.styles/EllipsisMenu.less documentation/frontend/component-demos/onboarding-simple-dialog/OnboardingSimpleDialogDemo.vue modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeSearch.vue modules/ext.growthExperiments.Homepage.styles/Homepage.less modules/ext.growthExperiments.StructuredTask/addimage/AddImageSaveDialog.less modules/ext.growthExperiments.StructuredTask/addimage/AddImageCaptionInfoDialog.less modules/ext.growthExperiments.Homepage.styles/HelpModule.less modules/ext.growthExperiments.Homepage.styles/StartEditingModule.less modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageViewer.less modules/ext.growthExperiments.Homepage.Impact/components/Impact.less modules/ext.growthExperiments.Homepage.Impact/components/InfoBoxes.vue modules/ext.growthExperiments.Homepage.Impact/styles/Impact.less modules/ext.growthExperiments.Homepage.styles/ImpactModule.less modules/ext.growthExperiments.Homepage.SuggestedEdits/SuggestionWidget.less modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFiltersForm.vue modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizGame.vue modules/ui-components/MultiPaneDialog.less modules/ext.growthExperiments.MentorDashboard/styles/MenteeOverview.less modules/ext.growthExperiments.StructuredTask/addsectionimage/ceRecommendedImagePlaceholderNode.less modules/vue-components/MultiPane.vue modules/ext.growthExperiments.Help/HelpPanelHomeButtonWidget.less modules/vue-components/CText.vue modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/NoResults.vue documentation/frontend/component-demos/DemoWrapper.vue modules/ext.growthExperiments.Homepage.styles/SmallTaskCard.less modules/ext.growthExperiments.StructuredTask.PreEdit/App.vue documentation/frontend/component-demos/topic-selection-dialog/TopicSelectionDemo.vue modules/ext.growthExperiments.StructuredTask.PreEdit/StructuredTaskOnboardingDialog.less modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplay.vue modules/vue-components/CScoreCard.vue modules/ext.growthExperiments.HomepageDiscovery/HomepageDiscoveryMobile.less documentation/frontend/component-demos/topic-selection-dialog/TopicSelectionDialog.vue modules/ext.growthExperiments.Homepage.styles/MentorshipModule.less modules/ext.growthExperiments.Account.styles/WelcomeSurvey.less modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableCellValue.vue documentation/frontend/components/OnboardingDialog.vue modules/ext.growthExperiments.Account.styles/WE18ExperimentV1.less modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/DataTableCellMentee.vue modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableLimit.vue modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingStepper.vue modules/ext.growthExperiments.HelpPanel/HelpPanelPopup.less modules/ext.growthExperiments.StructuredTask.PreEdit/common/mixins.less documentation/frontend/component-demos/example-component/ExampleComponent.vue modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageRejectionDialog.less modules/ext.growthExperiments.Homepage.Impact/components/TrendChart.vue modules/ext.growthExperiments.StructuredTask/StructuredTaskToolbarDialog.less modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/ReviseToneOnboarding.vue modules/vue-components/CSparkline.vue modules/ext.growthExperiments.MentorDashboard/components/HorizontalDivider/HorizontalDivider.vue documentation/frontend/components/OnboardingStepper.vue modules/ext.growthExperiments.Homepage.SuggestedEdits/SuggestionGroupWidget.less modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingDialog.vue documentation/frontend/component-demos/filter-dialog/FilterDialogDemo.vue modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFilters.vue modules/ext.growthExperiments.Homepage.Impact/components/ImpactSummary.vue modules/ext.growthExperiments.StructuredTask/StructuredTaskMessageDialog.less modules/ext.growthExperiments.Homepage.Impact/components/LayoutWrapper.vue modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTablePagination.vue modules/ext.growthExperiments.StructuredTask/addlink/RecommendedLinkRejectionDialog.less modules/ext.growthExperiments.Homepage.styles/ConfirmEmailNotice.less modules/ext.growthExperiments.HomepageDiscovery/HomepageDiscovery.less modules/ext.growthExperiments.MentorDashboard/components/CNumberInput/CNumberInput.vue modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/SkipMenteeDialog.vue modules/ext.growthExperiments.HelpPanel/SuggestedEditsGuidance.vector.less modules/ext.growthExperiments.Homepage.Impact/App.vue modules/ext.growthExperiments.Homepage.styles/MobileNoTasksWidget.less modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeOverview.vue documentation/frontend/component-demos/onboarding-stepper-demo/OnboardingStepperDemo.vue modules/ext.growthExperiments.StructuredTask.PreEdit/addsectionimage/AddSectionImageOnboardingContent.less documentation/frontend/component-demos/add-image-dialog/AddImageDialogDemo.vue modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less modules/ext.growthExperiments.Homepage.styles/BaseModule.less modules/ext.growthExperiments.Homepage.SuggestedEdits/MatchModeSelectWidget.less modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettings.vue modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageCaptionNode.less modules/ext.growthExperiments.StructuredTask/addlink/RecommendedLinkToolbarDialog.less documentation/frontend/components/AddLinkDialog.vue documentation/frontend/components/mixins.less modules/ext.growthExperiments.StructuredTask.PreEdit/common/variables.less modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/UserCard.vue modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraisePagination.vue modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTable.vue modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/LegendBox.vue modules/ext.growthExperiments.Help/AskHelpPanel.less modules/ext.growthExperiments.StructuredTask/addlink/ceRecommendedLinkAnnotation.less modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizPill.vue modules/vue-components/CScoreCards.less modules/ext.growthExperiments.PostEdit/PostEditDrawer.less modules/ext.growthExperiments.Account.styles/SpecialContributions.less modules/ext.growthExperiments.StructuredTask/addlink/AddLinkSaveDialog.less modules/ext.growthExperiments.StructuredTask/MachineSuggestionsMode.less -f json
--- stdout ---
[{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/StructuredTaskOnboardingContent.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":59,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":59,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":59,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":59,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/EditModeConfirmationDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":32,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":32,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":32,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":32,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/RecentActivity.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":119,"column":1,"endLine":156,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":119,"column":1,"endLine":156,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":119,"column":1,"endLine":156,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":119,"column":1,"endLine":156,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.desktop/MinimizedToolbarDialogButton.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":20,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":20,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":20,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":20,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.LevelingUp.InviteToSuggestedEdits/InviteToSuggestedEdits.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":71,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":71,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":71,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":71,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/NumberIcon.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":30,"column":1,"endLine":46,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":30,"column":1,"endLine":46,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":30,"column":1,"endLine":46,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":30,"column":1,"endLine":46,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/component-demos/add-link-dialog/AddLinkDialogDemo.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.SuggestedEdits/TaskTypeSelectionWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":130,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":130,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":130,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":130,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/component-demos/multi-pane/MultiPaneDemo.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":79,"column":1,"endLine":125,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":79,"column":1,"endLine":125,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":79,"column":1,"endLine":125,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":79,"column":1,"endLine":125,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/styles/Discovery.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":13,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":13,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":13,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":13,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/BannerModule.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":14,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":14,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":14,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":14,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/components/MultiPane.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":145,"column":1,"endLine":181,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":145,"column":1,"endLine":181,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":145,"column":1,"endLine":181,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":145,"column":1,"endLine":181,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/vue-components/CScoreCards.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/vue-components/Skeleton.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":36,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":36,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":36,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":36,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraise.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":149,"column":1,"endLine":171,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":149,"column":1,"endLine":171,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":149,"column":1,"endLine":171,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":149,"column":1,"endLine":171,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/utils/variables.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":31,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":31,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":31,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":31,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/Impact.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/vue-components/CListItem.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":26,"column":1,"endLine":40,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":26,"column":1,"endLine":40,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":26,"column":1,"endLine":40,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":26,"column":1,"endLine":40,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.PostEdit/PostEditPanel.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":107,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":107,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":107,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":107,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/vue-components/mixins.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":6,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":6,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":6,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":6,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/ArticlesListItem.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":128,"column":1,"endLine":190,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":128,"column":1,"endLine":190,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":128,"column":1,"endLine":190,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":128,"column":1,"endLine":190,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/WelcomeSurveyReminderModule.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":48,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":48,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":48,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":48,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/StartEmailModule.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":41,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":41,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":41,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":41,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/NoResults.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":20,"column":1,"endLine":38,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":20,"column":1,"endLine":38,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":20,"column":1,"endLine":38,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":20,"column":1,"endLine":38,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/vue-components/CScoreCard.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":43,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":43,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":43,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":43,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/dev/demos/ReviseToneQuizPillDemo.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":48,"column":1,"endLine":52,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":48,"column":1,"endLine":52,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":48,"column":1,"endLine":52,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":48,"column":1,"endLine":52,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageToolbarDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":177,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":177,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":177,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":177,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/component-demos/LanguageSelector.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/utils/mixins.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":127,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":127,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":127,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":127,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/component-demos/post-edit-dialog/PostEditDialogDemo.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":68,"column":1,"endLine":75,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":68,"column":1,"endLine":75,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":68,"column":1,"endLine":75,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":68,"column":1,"endLine":75,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/vue-components/CList.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":37,"column":1,"endLine":47,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":37,"column":1,"endLine":47,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":37,"column":1,"endLine":47,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":37,"column":1,"endLine":47,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/styles/BaseModule.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":36,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":36,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":36,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":36,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/TaskPreviewWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":53,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":53,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":53,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":53,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ui-components/HelpPanelButton.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":66,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":66,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":66,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":66,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/dev/demos/CommonComponentsDemo.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":80,"column":1,"endLine":83,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":80,"column":1,"endLine":83,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":80,"column":1,"endLine":83,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":80,"column":1,"endLine":83,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/components/AddImageDialog.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":240,"column":1,"endLine":291,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":240,"column":1,"endLine":291,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":240,"column":1,"endLine":291,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":240,"column":1,"endLine":291,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.SuggestedEdits/ArticleCountWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":32,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":32,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":32,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":32,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.mobile/index.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":17,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":17,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":17,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":17,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableCellLink.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/documentation/frontend/components/variables.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":17,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":17,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":17,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":17,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/TaskExplanationWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":200,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":200,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":200,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":200,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/addimage/AddImageOnboardingContent.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":50,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":50,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":50,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":50,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageNode.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":113,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":113,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":113,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":113,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.SuggestedEdits/StartEditingDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":127,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":127,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":127,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":127,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/styles/MenteeOverview.css","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":15,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":15,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":15,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":15,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.desktop/addimage/AddImageDesktopSaveDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":31,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":31,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":31,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":31,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ui-components/CollapsibleDrawer.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":124,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":124,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":124,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":124,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.SuggestedEdits/TopicSelectionWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":10,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":10,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":10,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":10,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/MentorTools/MentorTools.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":83,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":83,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":83,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":83,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/CommunityUpdates.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":66,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":66,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":66,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":66,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/ArticlesList.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/documentation/frontend/components/FilterDialog.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":124,"column":1,"endLine":185,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":124,"column":1,"endLine":185,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":124,"column":1,"endLine":185,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":124,"column":1,"endLine":185,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/styles/Resources.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/component-demos/onboarding-dialog/OnboardingDialogDemo.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":160,"column":1,"endLine":193,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":160,"column":1,"endLine":193,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":160,"column":1,"endLine":193,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":160,"column":1,"endLine":193,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/StreakGraph.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":87,"column":1,"endLine":104,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":87,"column":1,"endLine":104,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":87,"column":1,"endLine":104,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":87,"column":1,"endLine":104,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Help/HelpPanelSearchWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":20,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":20,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":20,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":20,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."},{"line":12,"column":15,"endLine":12,"endColumn":25,"rule":"declaration-property-value-keyword-no-deprecated","severity":"error","text":"Unexpected deprecated keyword \"break-word\" for property \"word-break\" (declaration-property-value-keyword-no-deprecated)"}]},{"source":"/src/repo/modules/ext.growthExperiments.Account.styles/DonorSignupCampaign.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":148,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":148,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":148,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":148,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettingsForm.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":222,"column":1,"endLine":245,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":222,"column":1,"endLine":245,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":222,"column":1,"endLine":245,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":222,"column":1,"endLine":245,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/StructuredTaskSaveDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":29,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":29,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":29,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":29,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/NoEditsDisplay.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":240,"column":1,"endLine":359,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":240,"column":1,"endLine":359,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":240,"column":1,"endLine":359,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":240,"column":1,"endLine":359,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/LayoutWrapper.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":13,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":13,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":13,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":13,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/styles/MentorDashboard.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":61,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":61,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":61,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":61,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/SuggestedEditsModule.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":562,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":562,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":562,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":562,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.PostEdit/PostEditToastMessage.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addimage/AddImageDetailsDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":87,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":87,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":87,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":87,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.HelpPanel/SuggestedEditsGuidance.minerva.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":22,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":22,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":22,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":22,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplaySummary.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":43,"column":1,"endLine":62,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":43,"column":1,"endLine":62,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":43,"column":1,"endLine":62,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":43,"column":1,"endLine":62,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/styles/variables.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":3,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":3,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":3,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":3,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.HelpPanel/HelpPanelCta.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":54,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":54,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":54,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":54,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/addlink/AddLinkOnboardingContent.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":50,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":50,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":50,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":50,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/EllipsisMenu.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":9,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":9,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":9,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":9,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/component-demos/onboarding-simple-dialog/OnboardingSimpleDialogDemo.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":80,"column":1,"endLine":105,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":80,"column":1,"endLine":105,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":80,"column":1,"endLine":105,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":80,"column":1,"endLine":105,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeSearch.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/Homepage.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":248,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":248,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":248,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":248,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addimage/AddImageSaveDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":64,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":64,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":64,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":64,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addimage/AddImageCaptionInfoDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/HelpModule.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":56,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":56,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":56,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":56,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/StartEditingModule.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":99,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":99,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":99,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":99,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageViewer.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":40,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":40,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":40,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":40,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/Impact.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":20,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":20,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":20,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":20,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/InfoBoxes.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":72,"column":1,"endLine":79,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":72,"column":1,"endLine":79,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":72,"column":1,"endLine":79,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":72,"column":1,"endLine":79,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/styles/Impact.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":105,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":105,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":105,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":105,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/ImpactModule.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":261,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":261,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":261,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":261,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."},{"line":44,"column":16,"endLine":44,"endColumn":26,"rule":"declaration-property-value-keyword-no-deprecated","severity":"error","text":"Unexpected deprecated keyword \"break-word\" for property \"word-break\" (declaration-property-value-keyword-no-deprecated)"}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.SuggestedEdits/SuggestionWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":95,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":95,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":95,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":95,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFiltersForm.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":202,"column":1,"endLine":248,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":202,"column":1,"endLine":248,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":202,"column":1,"endLine":248,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":202,"column":1,"endLine":248,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizGame.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":72,"column":1,"endLine":101,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":72,"column":1,"endLine":101,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":72,"column":1,"endLine":101,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":72,"column":1,"endLine":101,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ui-components/MultiPaneDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":101,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":101,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":101,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":101,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/styles/MenteeOverview.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addsectionimage/ceRecommendedImagePlaceholderNode.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":60,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":60,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":60,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":60,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/vue-components/MultiPane.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":156,"column":1,"endLine":191,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":156,"column":1,"endLine":191,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":156,"column":1,"endLine":191,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":156,"column":1,"endLine":191,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Help/HelpPanelHomeButtonWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":103,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":103,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":103,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":103,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/vue-components/CText.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":82,"column":1,"endLine":142,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":82,"column":1,"endLine":142,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":82,"column":1,"endLine":142,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":82,"column":1,"endLine":142,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/NoResults.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":37,"column":1,"endLine":55,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":37,"column":1,"endLine":55,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":37,"column":1,"endLine":55,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":37,"column":1,"endLine":55,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/component-demos/DemoWrapper.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/SmallTaskCard.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":246,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":246,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":246,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":246,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/App.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/documentation/frontend/component-demos/topic-selection-dialog/TopicSelectionDemo.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/StructuredTaskOnboardingDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":90,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":90,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":90,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":90,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplay.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":58,"column":1,"endLine":78,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":58,"column":1,"endLine":78,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":58,"column":1,"endLine":78,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":58,"column":1,"endLine":78,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/vue-components/CScoreCard.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ext.growthExperiments.HomepageDiscovery/HomepageDiscoveryMobile.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":120,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":120,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":120,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":120,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/component-demos/topic-selection-dialog/TopicSelectionDialog.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":25,"column":1,"endLine":30,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":25,"column":1,"endLine":30,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":25,"column":1,"endLine":30,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":25,"column":1,"endLine":30,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/MentorshipModule.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":117,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":117,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":117,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":117,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Account.styles/WelcomeSurvey.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":187,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":187,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":187,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":187,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableCellValue.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":24,"column":1,"endLine":39,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":24,"column":1,"endLine":39,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":24,"column":1,"endLine":39,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":24,"column":1,"endLine":39,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/components/OnboardingDialog.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":272,"column":1,"endLine":353,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":272,"column":1,"endLine":353,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":272,"column":1,"endLine":353,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":272,"column":1,"endLine":353,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Account.styles/WE18ExperimentV1.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/DataTableCellMentee.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":84,"column":1,"endLine":137,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":84,"column":1,"endLine":137,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":84,"column":1,"endLine":137,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":84,"column":1,"endLine":137,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableLimit.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":46,"column":1,"endLine":55,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":46,"column":1,"endLine":55,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":46,"column":1,"endLine":55,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":46,"column":1,"endLine":55,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingStepper.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":46,"column":1,"endLine":76,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":46,"column":1,"endLine":76,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":46,"column":1,"endLine":76,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":46,"column":1,"endLine":76,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.HelpPanel/HelpPanelPopup.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":54,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":54,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":54,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":54,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/common/mixins.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":98,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":98,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":98,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":98,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/component-demos/example-component/ExampleComponent.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":33,"column":1,"endLine":42,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":33,"column":1,"endLine":42,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":33,"column":1,"endLine":42,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":33,"column":1,"endLine":42,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageRejectionDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":25,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":25,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":25,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":25,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/TrendChart.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":88,"column":1,"endLine":103,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":88,"column":1,"endLine":103,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":88,"column":1,"endLine":103,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":88,"column":1,"endLine":103,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/StructuredTaskToolbarDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":65,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":65,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":65,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":65,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/ReviseToneOnboarding.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":158,"column":1,"endLine":164,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":158,"column":1,"endLine":164,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":158,"column":1,"endLine":164,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":158,"column":1,"endLine":164,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/vue-components/CSparkline.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":120,"column":1,"endLine":135,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":120,"column":1,"endLine":135,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":120,"column":1,"endLine":135,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":120,"column":1,"endLine":135,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/HorizontalDivider/HorizontalDivider.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":13,"column":1,"endLine":19,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":13,"column":1,"endLine":19,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":13,"column":1,"endLine":19,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":13,"column":1,"endLine":19,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/components/OnboardingStepper.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":43,"column":1,"endLine":73,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":43,"column":1,"endLine":73,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":43,"column":1,"endLine":73,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":43,"column":1,"endLine":73,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.SuggestedEdits/SuggestionGroupWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":26,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":26,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":26,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":26,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingDialog.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":288,"column":1,"endLine":367,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":288,"column":1,"endLine":367,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":288,"column":1,"endLine":367,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":288,"column":1,"endLine":367,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/component-demos/filter-dialog/FilterDialogDemo.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFilters.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":85,"column":1,"endLine":111,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":85,"column":1,"endLine":111,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":85,"column":1,"endLine":111,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":85,"column":1,"endLine":111,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/ImpactSummary.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/StructuredTaskMessageDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":33,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":33,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":33,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":33,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/components/LayoutWrapper.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":38,"column":1,"endLine":44,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":38,"column":1,"endLine":44,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":38,"column":1,"endLine":44,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":38,"column":1,"endLine":44,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTablePagination.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":66,"column":1,"endLine":79,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":66,"column":1,"endLine":79,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":66,"column":1,"endLine":79,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":66,"column":1,"endLine":79,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addlink/RecommendedLinkRejectionDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/ConfirmEmailNotice.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":46,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":46,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":46,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":46,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.HomepageDiscovery/HomepageDiscovery.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":55,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":55,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":55,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":55,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/CNumberInput/CNumberInput.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":150,"column":1,"endLine":243,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":150,"column":1,"endLine":243,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":150,"column":1,"endLine":243,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":150,"column":1,"endLine":243,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/SkipMenteeDialog.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":118,"column":1,"endLine":129,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":118,"column":1,"endLine":129,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":118,"column":1,"endLine":129,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":118,"column":1,"endLine":129,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.HelpPanel/SuggestedEditsGuidance.vector.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":9,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":9,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":9,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":9,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.Impact/App.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":96,"column":1,"endLine":106,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":96,"column":1,"endLine":106,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":96,"column":1,"endLine":106,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":96,"column":1,"endLine":106,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/MobileNoTasksWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":38,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":38,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":38,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":38,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeOverview.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":324,"column":1,"endLine":390,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":324,"column":1,"endLine":390,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":324,"column":1,"endLine":390,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":324,"column":1,"endLine":390,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/component-demos/onboarding-stepper-demo/OnboardingStepperDemo.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":77,"column":1,"endLine":91,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":77,"column":1,"endLine":91,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":77,"column":1,"endLine":91,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":77,"column":1,"endLine":91,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/addsectionimage/AddSectionImageOnboardingContent.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":36,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":36,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":36,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":36,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/component-demos/add-image-dialog/AddImageDialogDemo.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":298,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":298,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":298,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":298,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.styles/BaseModule.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":75,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":75,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":75,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":75,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Homepage.SuggestedEdits/MatchModeSelectWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":27,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":27,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":27,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":27,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettings.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":77,"column":1,"endLine":99,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":77,"column":1,"endLine":99,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":77,"column":1,"endLine":99,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":77,"column":1,"endLine":99,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageCaptionNode.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":56,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":56,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":56,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":56,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addlink/RecommendedLinkToolbarDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":156,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":156,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":156,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":156,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/components/AddLinkDialog.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":216,"column":1,"endLine":291,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":216,"column":1,"endLine":291,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":216,"column":1,"endLine":291,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":216,"column":1,"endLine":291,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/documentation/frontend/components/mixins.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":79,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":79,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":79,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":79,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/common/variables.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":16,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/UserCard.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":170,"column":1,"endLine":192,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":170,"column":1,"endLine":192,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":170,"column":1,"endLine":192,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":170,"column":1,"endLine":192,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraisePagination.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":65,"column":1,"endLine":78,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":65,"column":1,"endLine":78,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":65,"column":1,"endLine":78,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":65,"column":1,"endLine":78,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTable.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":146,"column":1,"endLine":239,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":146,"column":1,"endLine":239,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":146,"column":1,"endLine":239,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":146,"column":1,"endLine":239,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/LegendBox.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":45,"column":1,"endLine":65,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":45,"column":1,"endLine":65,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":45,"column":1,"endLine":65,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":45,"column":1,"endLine":65,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Help/AskHelpPanel.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":21,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":21,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":21,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":21,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addlink/ceRecommendedLinkAnnotation.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":121,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":121,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":121,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":121,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizPill.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":149,"column":1,"endLine":220,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":149,"column":1,"endLine":220,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":149,"column":1,"endLine":220,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":149,"column":1,"endLine":220,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/vue-components/CScoreCards.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":23,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.PostEdit/PostEditDrawer.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":52,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":52,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":52,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":52,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.Account.styles/SpecialContributions.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":11,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":11,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":11,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":11,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/addlink/AddLinkSaveDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":77,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":77,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":77,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":77,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]},{"source":"/src/repo/modules/ext.growthExperiments.StructuredTask/MachineSuggestionsMode.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":1,"column":1,"endLine":53,"endColumn":2,"rule":"property-no-deprecated","severity":"error","text":"Unknown rule property-no-deprecated."},{"line":1,"column":1,"endLine":53,"endColumn":2,"rule":"media-type-no-deprecated","severity":"error","text":"Unknown rule media-type-no-deprecated."},{"line":1,"column":1,"endLine":53,"endColumn":2,"rule":"nesting-selector-no-missing-scoping-root","severity":"error","text":"Unknown rule nesting-selector-no-missing-scoping-root."},{"line":1,"column":1,"endLine":53,"endColumn":2,"rule":"no-invalid-position-declaration","severity":"error","text":"Unknown rule no-invalid-position-declaration."}]}]
--- end ---
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: undefined,
npm WARN EBADENGINE   required: { npm: '>=10', node: '>=20' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-design-tokens@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'npm-run-all2@8.0.4',
npm WARN EBADENGINE   required: { node: '^20.5.0 || >=22.0.0', npm: '>= 10' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 1275 packages, and audited 1276 packages in 26s

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

25 vulnerabilities (2 low, 19 moderate, 3 high, 1 critical)

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

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

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

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
modules/ext.growthExperiments.Account.styles/DonorSignupCampaign.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Account.styles/SpecialContributions.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Account.styles/WE18ExperimentV1.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Account.styles/WelcomeSurvey.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Help/AskHelpPanel.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Help/HelpPanelHomeButtonWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Help/HelpPanelSearchWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.HelpPanel/HelpPanelCta.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.HelpPanel/HelpPanelPopup.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.HelpPanel/SuggestedEditsGuidance.minerva.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.HelpPanel/SuggestedEditsGuidance.vector.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/App.vue
  96:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  96:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  96:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  96:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/ArticleCountWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/MatchModeSelectWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/StartEditingDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/SuggestionGroupWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/SuggestionWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/TaskTypeSelectionWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.SuggestedEdits/TopicSelectionWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.mobile/index.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.HomepageDiscovery/HomepageDiscovery.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.HomepageDiscovery/HomepageDiscoveryMobile.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/BannerModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/BaseModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/CommunityUpdates.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/ConfirmEmailNotice.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/EllipsisMenu.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/HelpModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/Homepage.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/ImpactModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/MentorshipModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/MobileNoTasksWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/SmallTaskCard.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/StartEditingModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/StartEmailModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/SuggestedEditsModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/TaskExplanationWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/TaskPreviewWidget.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.styles/WelcomeSurveyReminderModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.LevelingUp.InviteToSuggestedEdits/InviteToSuggestedEdits.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.PostEdit/PostEditDrawer.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.PostEdit/PostEditPanel.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.PostEdit/PostEditToastMessage.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/EditModeConfirmationDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/MachineSuggestionsMode.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/StructuredTaskMessageDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/StructuredTaskSaveDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/StructuredTaskToolbarDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/StructuredTaskOnboardingContent.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/StructuredTaskOnboardingDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.desktop/MinimizedToolbarDialogButton.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ui-components/CollapsibleDrawer.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ui-components/HelpPanelButton.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ui-components/MultiPaneDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/utils/mixins.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/utils/variables.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/CList.vue
  37:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  37:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  37:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  37:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/CListItem.vue
  26:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  26:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  26:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  26:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/CScoreCard.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/CScoreCards.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/CSparkline.vue
  120:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  120:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  120:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  120:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/CText.vue
  82:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  82:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  82:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  82:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/MultiPane.vue
  156:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  156:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  156:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  156:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/Skeleton.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/vue-components/mixins.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/AddImageDialog.vue
  240:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  240:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  240:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  240:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/AddLinkDialog.vue
  216:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  216:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  216:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  216:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/FilterDialog.vue
  124:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  124:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  124:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  124:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/MultiPane.vue
  145:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  145:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  145:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  145:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/OnboardingDialog.vue
  272:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  272:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  272:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  272:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/OnboardingStepper.vue
  43:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  43:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  43:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  43:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/mixins.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/components/variables.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/styles/Impact.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/ArticlesListItem.vue
  128:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  128:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  128:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  128:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplay.vue
  58:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  58:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  58:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  58:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplaySummary.vue
  43:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  43:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  43:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  43:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/Impact.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/InfoBoxes.vue
  72:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  72:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  72:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  72:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/LayoutWrapper.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/LayoutWrapper.vue
  38:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  38:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  38:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  38:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/NoEditsDisplay.vue
  240:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  240:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  240:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  240:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/RecentActivity.vue
  119:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  119:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  119:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  119:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/StreakGraph.vue
  87:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  87:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  87:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  87:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.Homepage.Impact/components/TrendChart.vue
  88:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  88:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  88:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  88:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/MentorTools/MentorTools.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/BaseModule.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/Discovery.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/MenteeOverview.css
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/MenteeOverview.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/MentorDashboard.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/Resources.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/styles/variables.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/AddImageCaptionInfoDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/AddImageDetailsDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/AddImageSaveDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageRejectionDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageToolbarDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/RecommendedImageViewer.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageCaptionNode.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageNode.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addlink/AddLinkSaveDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addlink/RecommendedLinkRejectionDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addlink/RecommendedLinkToolbarDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addlink/ceRecommendedLinkAnnotation.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask/addsectionimage/ceRecommendedImagePlaceholderNode.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/addimage/AddImageOnboardingContent.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/addsectionimage/AddSectionImageOnboardingContent.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/addlink/AddLinkOnboardingContent.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingDialog.vue
  288:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  288:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  288:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  288:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingStepper.vue
  46:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  46:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  46:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  46:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/common/mixins.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/common/variables.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.desktop/addimage/AddImageDesktopSaveDialog.less
  1:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  1:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  1:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  1:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/NumberIcon.vue
  30:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  30:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  30:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  30:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizGame.vue
  72:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  72:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  72:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  72:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizPill.vue
  149:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  149:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  149:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  149:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/ReviseToneOnboarding.vue
  158:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  158:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  158:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  158:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/example-component/ExampleComponent.vue
  33:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  33:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  33:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  33:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/multi-pane/MultiPaneDemo.vue
  79:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  79:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  79:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  79:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/onboarding-simple-dialog/OnboardingSimpleDialogDemo.vue
  80:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  80:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  80:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  80:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/onboarding-dialog/OnboardingDialogDemo.vue
  160:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  160:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  160:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  160:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/onboarding-stepper-demo/OnboardingStepperDemo.vue
  77:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  77:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  77:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  77:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/post-edit-dialog/PostEditDialogDemo.vue
  68:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  68:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  68:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  68:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

documentation/frontend/component-demos/topic-selection-dialog/TopicSelectionDialog.vue
  25:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  25:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  25:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  25:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/CNumberInput/CNumberInput.vue
  150:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  150:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  150:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  150:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/HorizontalDivider/HorizontalDivider.vue
  13:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  13:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  13:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  13:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTable.vue
  146:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  146:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  146:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  146:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableCellValue.vue
  24:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  24:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  24:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  24:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableLimit.vue
  46:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  46:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  46:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  46:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTablePagination.vue
  66:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  66:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  66:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  66:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/DataTableCellMentee.vue
  84:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  84:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  84:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  84:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/LegendBox.vue
  45:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  45:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  45:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  45:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFilters.vue
  85:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  85:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  85:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  85:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFiltersForm.vue
  202:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  202:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  202:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  202:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeOverview.vue
  324:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  324:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  324:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  324:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/NoResults.vue
  37:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  37:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  37:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  37:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/NoResults.vue
  20:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  20:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  20:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  20:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraise.vue
  149:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  149:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  149:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  149:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraisePagination.vue
  65:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  65:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  65:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  65:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettings.vue
  77:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  77:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  77:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  77:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettingsForm.vue
  222:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  222:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  222:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  222:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/SkipMenteeDialog.vue
  118:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  118:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  118:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  118:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/UserCard.vue
  170:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  170:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  170:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  170:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/dev/demos/CommonComponentsDemo.vue
  80:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  80:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  80:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  80:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

modules/ext.growthExperiments.StructuredTask.PreEdit/dev/demos/ReviseToneQuizPillDemo.vue
  48:1  ✖  Unknown rule property-no-deprecated                    property-no-deprecated
  48:1  ✖  Unknown rule media-type-no-deprecated                  media-type-no-deprecated
  48:1  ✖  Unknown rule nesting-selector-no-missing-scoping-root  nesting-selector-no-missing-scoping-root
  48:1  ✖  Unknown rule no-invalid-position-declaration           no-invalid-position-declaration

✖ 588 problems (588 errors, 0 warnings)

ERROR: "test:stylelint" exited with 2.
--- stdout ---

> test
> npm-run-all test:*


> test:types
> tsc --noEmit && tsc --noEmit -p cypress/tsconfig.json


> test:eslint
> eslint --cache .


/src/repo/cypress/e2e/ReviseTone.cy.ts
  81:1  warning  This line has a length of 106. Maximum allowed is 100  max-len

/src/repo/modules/ext.growthExperiments.Homepage.SuggestedEdits/MatchModeSelectWidget.js
  23:20  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ext.growthExperiments.MentorDashboard/MentorTools/MentorTools.js
  55:4  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ext.growthExperiments.PostEdit/PostEditPanel.js
  50:20  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  54:20  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ext.growthExperiments.StructuredTask.desktop/addlink/RecommendedLinkToolbarDialogDesktop.js
  199:21  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageNode.js
  59:18  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ui-components/CollapsibleDrawer.js
  112:22  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

✖ 8 problems (0 errors, 8 warnings)


> test:stylelint
> stylelint --cache "**/*.{css,vue,less}"


--- end ---
$ node_modules/.bin/jest -u
--- stderr ---
PASS modules/ext.growthExperiments.MentorDashboard/store/modules/mentees.test.js
PASS modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingDialog.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/components/NoEditsDisplay.test.js
PASS modules/vue-components/MultiPane.test.js
PASS modules/ext.growthExperiments.DataStore/NewcomerTasksStore.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeOverview.test.js
PASS modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizPill.test.js
PASS modules/vue-components/CScoreCards.test.js
 › 2 snapshots updated.
PASS modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingStepper.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/components/ImpactVue.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/components/TrendChart.test.js
PASS modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/ReviseToneOnboarding.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraise.test.js
 › 2 snapshots updated.
PASS modules/vue-components/CScoreCard.test.js
 › 1 snapshot updated.
PASS modules/utils/SimpleLevenshtein.test.js
PASS modules/vue-components/CText.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplay.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableCellValue.test.js
PASS modules/ext.growthExperiments.Account/WE18ExperimentV1.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/composables/useUserImpact.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFiltersForm.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettingsForm.test.js
 › 1 snapshot updated.

Snapshot Summary
 › 6 snapshots updated from 4 test suites.

Test Suites: 22 passed, 22 total
Tests:       82 passed, 82 total
Snapshots:   6 updated, 8 passed, 14 total
Time:        10.304 s
Ran all test suites.
--- stdout ---
---------------------------------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------
File                                                                 | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                                                     
---------------------------------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------
All files                                                            |    44.5 |    34.83 |   33.58 |    44.7 |                                                                                       
 ext.growthExperiments.Account                                       |   12.63 |     8.82 |   16.66 |   12.76 |                                                                                       
  ConfirmEmail.js                                                    |       0 |        0 |       0 |       0 | 1-36                                                                                  
  ULSTagMultiselectWidget.js                                         |       0 |        0 |       0 |       0 | 1-115                                                                                 
  WE18ExperimentV1.js                                                |    92.3 |       75 |     100 |    92.3 | 5                                                                                     
  WelcomeSurvey.js                                                   |       0 |        0 |       0 |       0 | 1-47                                                                                  
  index.js                                                           |       0 |        0 |       0 |       0 | 1-14                                                                                  
 ext.growthExperiments.Homepage.Impact                               |       3 |        0 |       0 |    3.03 |                                                                                       
  App.vue                                                            |       0 |        0 |       0 |       0 | 3-105                                                                                 
  constants.js                                                       |     100 |      100 |     100 |     100 |                                                                                       
  init.js                                                            |       0 |        0 |       0 |       0 | 1-156                                                                                 
 ext.growthExperiments.Homepage.Impact/components                    |   71.38 |     67.9 |   67.39 |   71.88 |                                                                                       
  ArticlesList.vue                                                   |   77.77 |      100 |      20 |   77.77 | 18,41-46                                                                              
  ArticlesListItem.vue                                               |   46.15 |        0 |       0 |      50 | 43-46,76-158                                                                          
  ErrorDisplay.vue                                                   |     100 |      100 |     100 |     100 |                                                                                       
  ErrorDisplaySummary.vue                                            |       0 |      100 |       0 |       0 | 3-58                                                                                  
  Impact.vue                                                         |     100 |       85 |     100 |     100 | 106,125-131                                                                           
  ImpactSummary.vue                                                  |       0 |        0 |       0 |       0 | 1-48                                                                                  
  InfoBoxes.vue                                                      |       0 |        0 |       0 |       0 | 1-83                                                                                  
  LayoutWrapper.vue                                                  |       0 |      100 |       0 |       0 | 8-34                                                                                  
  NoEditsDisplay.vue                                                 |   96.07 |     86.2 |     100 |   96.07 | 60-61                                                                                 
  RecentActivity.vue                                                 |      95 |       50 |     100 |      95 | 41,73                                                                                 
  StreakGraph.vue                                                    |   95.23 |      100 |    87.5 |   95.23 | 25                                                                                    
  TrendChart.vue                                                     |     100 |      100 |     100 |     100 |                                                                                       
 ext.growthExperiments.Homepage.Impact/composables                   |   73.21 |    72.72 |   78.94 |   71.69 |                                                                                       
  useMWRestApi.js                                                    |       0 |        0 |       0 |       0 | 1-35                                                                                  
  useUserImpact.js                                                   |   97.61 |    88.88 |     100 |   97.43 | 93                                                                                    
 ext.growthExperiments.MentorDashboard                               |       0 |        0 |       0 |       0 |                                                                                       
  Discovery.js                                                       |       0 |        0 |       0 |       0 | 2-12                                                                                  
  PersonalizedPraisePostEdit.js                                      |       0 |        0 |       0 |       0 | 1-18                                                                                  
  init.js                                                            |       0 |        0 |       0 |       0 | 1-53                                                                                  
 ext.growthExperiments.MentorDashboard/MentorTools                   |       0 |        0 |       0 |       0 |                                                                                       
  AwaySettingsDialog.js                                              |       0 |        0 |       0 |       0 | 1-108                                                                                 
  MentorMessageChangeDialog.js                                       |       0 |        0 |       0 |       0 | 10-103                                                                                
  MentorTools.js                                                     |       0 |        0 |       0 |       0 | 2-223                                                                                 
  MentorToolsEllipsisMenu.js                                         |       0 |        0 |       0 |       0 | 1-66                                                                                  
 ext.growthExperiments.MentorDashboard/components/CNumberInput       |   66.66 |    55.55 |   23.07 |   65.51 |                                                                                       
  CNumberInput.vue                                                   |   66.66 |    55.55 |   23.07 |   65.51 | 99,102,105,108,129,148-164                                                            
 ext.growthExperiments.MentorDashboard/components/DataTable          |      47 |        0 |    5.26 |   52.38 |                                                                                       
  DataTable.vue                                                      |   32.25 |        0 |       0 |   39.21 | 37-89,100-103,121-164                                                                 
  DataTableCellLink.vue                                              |      75 |      100 |       0 |      75 | 36-41                                                                                 
  DataTableCellValue.vue                                             |     100 |      100 |     100 |     100 |                                                                                       
  DataTableLimit.vue                                                 |      50 |        0 |       0 |   53.33 | 24-31,49-55                                                                           
  DataTablePagination.vue                                            |      50 |        0 |       0 |      50 | 31-38,53-79                                                                           
 ext.growthExperiments.MentorDashboard/components/HorizontalDivider  |     100 |      100 |     100 |     100 |                                                                                       
  HorizontalDivider.vue                                              |     100 |      100 |     100 |     100 |                                                                                       
 ext.growthExperiments.MentorDashboard/components/MenteeOverview     |   66.52 |    41.46 |   37.36 |   66.81 |                                                                                       
  DataTableCellMentee.vue                                            |   60.86 |        0 |       0 |   60.86 | 27-45,74-82                                                                           
  LegendBox.vue                                                      |   73.33 |      100 |       0 |   73.33 | 21,43-45                                                                              
  MenteeFilters.vue                                                  |   40.74 |        0 |       0 |   40.74 | 28-64,82-89                                                                           
  MenteeFiltersForm.vue                                              |   75.47 |       50 |   56.52 |   75.47 | 85-103,158-173,189,204,217                                                            
  MenteeOverview.vue                                                 |    72.5 |    58.82 |    52.5 |   73.41 | 27-99,179-186,218-230,300-325                                                         
  MenteeSearch.vue                                                   |   45.45 |        0 |       0 |   45.45 | 22-43,60-66                                                                           
  NoResults.vue                                                      |   84.61 |        0 |       0 |   84.61 | 53-54                                                                                 
 ext.growthExperiments.MentorDashboard/components/PersonalizedPraise |   56.65 |    48.48 |   25.58 |   57.39 |                                                                                       
  NoResults.vue                                                      |     100 |      100 |     100 |     100 |                                                                                       
  PersonalizedPraise.vue                                             |   81.25 |    91.66 |   58.82 |   81.25 | 65-80,123,138-148                                                                     
  PersonalizedPraisePagination.vue                                   |   45.45 |        0 |       0 |   45.45 | 33-43,58-92                                                                           
  PersonalizedPraiseSettings.vue                                     |   68.96 |       50 |   33.33 |   68.96 | 44-54,78,90-100                                                                       
  PersonalizedPraiseSettingsForm.vue                                 |   70.73 |    68.18 |   44.44 |   70.73 | 67-70,88,144-164,180-185,200,218                                                      
  SkipMenteeDialog.vue                                               |   26.31 |        0 |       0 |   28.57 | 34-70,87-136                                                                          
  UserCard.vue                                                       |   34.04 |        0 |       0 |   34.04 | 33-123,147-172                                                                        
 ext.growthExperiments.MentorDashboard/logger                        |       0 |        0 |       0 |       0 |                                                                                       
  Logger.js                                                          |       0 |        0 |       0 |       0 | 5-41                                                                                  
 ext.growthExperiments.MentorDashboard/plugins                       |       0 |        0 |       0 |       0 |                                                                                       
  logger.js                                                          |       0 |        0 |       0 |       0 | 9-15                                                                                  
 ext.growthExperiments.MentorDashboard/store                         |   26.66 |        0 |    6.89 |   26.96 |                                                                                       
  MenteeOverviewApi.js                                               |   28.91 |        0 |    6.89 |   29.26 | 32,37-52,56-71,83,87,91,95,99,103-110,115-118,122-128,134-145,150-161,167-178,185-186 
  index.js                                                           |       0 |      100 |     100 |       0 | 1-16                                                                                  
 ext.growthExperiments.MentorDashboard/store/modules                 |   44.56 |    49.23 |   25.39 |      44 |                                                                                       
  mentees-search.js                                                  |       0 |        0 |       0 |       0 | 2-50                                                                                  
  mentees.js                                                         |   66.36 |    67.39 |   41.66 |   66.01 | 31,61-63,71-74,107,121,128,144,147,150,200-201,217,226,235-243,253-286                
  praiseworthy-mentees.js                                            |       0 |        0 |       0 |       0 | 1-101                                                                                 
  user-preferences.js                                                |   52.94 |       50 |      20 |   52.94 | 12,21,27-32,41                                                                        
 ext.growthExperiments.MentorDashboard/validators                    |     100 |      100 |     100 |     100 |                                                                                       
  align-text.validator.js                                            |     100 |      100 |     100 |     100 |                                                                                       
 ext.growthExperiments.StructuredTask.PreEdit                        |       0 |        0 |       0 |       0 |                                                                                       
  App.vue                                                            |       0 |      100 |       0 |       0 | 1-31                                                                                  
  StructuredTaskOnboardingContent.js                                 |       0 |        0 |       0 |       0 | 2-46                                                                                  
  StructuredTaskOnboardingDialog.js                                  |       0 |        0 |       0 |       0 | 1-237                                                                                 
  index.js                                                           |       0 |        0 |       0 |       0 | 1-282                                                                                 
 ext.growthExperiments.StructuredTask.PreEdit/addimage               |       0 |        0 |       0 |       0 |                                                                                       
  AddImageOnboardingContent.js                                       |       0 |        0 |       0 |       0 | 1-166                                                                                 
 ext.growthExperiments.StructuredTask.PreEdit/addlink                |       0 |        0 |       0 |       0 |                                                                                       
  AddLinkOnboardingContent.js                                        |       0 |        0 |       0 |       0 | 1-156                                                                                 
 ext.growthExperiments.StructuredTask.PreEdit/addsectionimage        |       0 |        0 |       0 |       0 |                                                                                       
  AddSectionImageOnboardingContent.js                                |       0 |        0 |       0 |       0 | 1-79                                                                                  
 ext.growthExperiments.StructuredTask.PreEdit/common                 |   82.56 |    62.31 |   78.37 |   90.62 |                                                                                       
  OnboardingDialog.vue                                               |    92.5 |    91.66 |   82.75 |    92.3 | 123,153-154,221-223,235                                                               
  OnboardingStepper.vue                                              |   55.17 |     30.3 |    62.5 |   83.33 | 40-41,44                                                                              
 ext.growthExperiments.StructuredTask.PreEdit/dev/demos              |       0 |        0 |       0 |       0 |                                                                                       
  CommonComponentsDemo.vue                                           |       0 |        0 |       0 |       0 | 1-93                                                                                  
  ReviseToneQuizPillDemo.vue                                         |       0 |        0 |       0 |       0 | 4-63                                                                                  
 ext.growthExperiments.StructuredTask.PreEdit/revisetone             |   64.89 |    59.32 |   41.86 |   65.36 |                                                                                       
  NumberIcon.vue                                                     |     100 |      100 |     100 |     100 |                                                                                       
  QuizGame.vue                                                       |   57.69 |      100 |       0 |   57.69 | 20-40,74-83                                                                           
  QuizPill.vue                                                       |   98.27 |    94.11 |   91.66 |   98.14 | 146                                                                                   
  ReviseToneOnboarding.vue                                           |   56.06 |    16.66 |      20 |   59.67 | 12-22,52,59,64,71,93-98,128-156                                                       
  ReviseToneQuizLauncher.js                                          |       0 |        0 |       0 |       0 | 1-60                                                                                  
 utils                                                               |   24.09 |    13.11 |   21.21 |   22.22 |                                                                                       
  HelpPanelLogger.js                                                 |       0 |        0 |       0 |       0 | 7-238                                                                                 
  IconUtils.js                                                       |       0 |        0 |       0 |       0 | 1-30                                                                                  
  SimpleLevenshtein.js                                               |     100 |      100 |     100 |     100 |                                                                                       
  Utils.js                                                           |   18.18 |    13.33 |      25 |   18.18 | 12-72,95-155,183-186                                                                  
  filters.js                                                         |       0 |      100 |       0 |       0 | 14-17                                                                                 
 vue-components                                                      |   77.49 |     67.5 |   68.91 |   78.24 |                                                                                       
  CList.vue                                                          |   53.33 |        0 |   33.33 |   53.33 | 22-30                                                                                 
  CListItem.vue                                                      |   85.71 |      100 |       0 |   85.71 | 21                                                                                    
  CScoreCard.vue                                                     |   93.33 |    78.57 |   77.77 |    93.1 | 139-141                                                                               
  CScoreCards.vue                                                    |   56.66 |    56.25 |   54.83 |   56.66 | 98-101,112,130-193,199,262-292,337-344                                                
  CSparkline.vue                                                     |   81.08 |       50 |      50 |    90.9 | 63-67,76                                                                              
  CText.vue                                                          |     100 |      100 |     100 |     100 |                                                                                       
  MultiPane.vue                                                      |   92.64 |    83.33 |     100 |   92.18 | 98,110,117,124,127                                                                    
 vue-components/directives                                           |       0 |        0 |       0 |       0 |                                                                                       
  click-outside.directive.js                                         |       0 |        0 |       0 |       0 | 1-25                                                                                  
 vue-components/plugins                                              |       0 |      100 |       0 |       0 |                                                                                       
  logger.js                                                          |       0 |      100 |       0 |       0 | 10-20                                                                                 
---------------------------------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------

--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeOverview.test.js
PASS modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingDialog.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/components/NoEditsDisplay.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraise.test.js
PASS modules/ext.growthExperiments.MentorDashboard/store/modules/mentees.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/components/ImpactVue.test.js
PASS modules/vue-components/CScoreCards.test.js
PASS modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/ReviseToneOnboarding.test.js
PASS modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizPill.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/components/TrendChart.test.js
PASS modules/ext.growthExperiments.DataStore/NewcomerTasksStore.test.js
PASS modules/vue-components/CScoreCard.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettingsForm.test.js
PASS modules/vue-components/MultiPane.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplay.test.js
PASS modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingStepper.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableCellValue.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFiltersForm.test.js
PASS modules/utils/SimpleLevenshtein.test.js
PASS modules/vue-components/CText.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/composables/useUserImpact.test.js
PASS modules/ext.growthExperiments.Account/WE18ExperimentV1.test.js

Test Suites: 22 passed, 22 total
Tests:       82 passed, 82 total
Snapshots:   14 passed, 14 total
Time:        6.036 s
Ran all test suites.
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @vue/server-renderer@3.3.4
npm WARN Found: vue@3.2.37
npm WARN node_modules/vue
npm WARN   dev vue@"3.2.37" from the root project
npm WARN   9 more (vue-demi, @vitejs/plugin-vue, @vue/server-renderer, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer vue@"3.3.4" from @vue/server-renderer@3.3.4
npm WARN node_modules/@vue/test-utils/node_modules/@vue/server-renderer
npm WARN   optional @vue/server-renderer@"^3.0.1" from @vue/test-utils@2.3.2
npm WARN   node_modules/@vue/test-utils
npm WARN 
npm WARN Conflicting peer dependency: vue@3.3.4
npm WARN node_modules/vue
npm WARN   peer vue@"3.3.4" from @vue/server-renderer@3.3.4
npm WARN   node_modules/@vue/test-utils/node_modules/@vue/server-renderer
npm WARN     optional @vue/server-renderer@"^3.0.1" from @vue/test-utils@2.3.2
npm WARN     node_modules/@vue/test-utils
npm WARN deprecated natives@1.1.6: This module relies on Node.js's internals and will break at some point. Do not use it, and update to graceful-fs@4.x.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
--- stdout ---

> test
> npm-run-all test:*


> test:types
> tsc --noEmit && tsc --noEmit -p cypress/tsconfig.json


> test:eslint
> eslint --cache .


/src/repo/cypress/e2e/ReviseTone.cy.ts
  81:1  warning  This line has a length of 106. Maximum allowed is 100  max-len

/src/repo/modules/ext.growthExperiments.Homepage.SuggestedEdits/MatchModeSelectWidget.js
  23:20  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ext.growthExperiments.MentorDashboard/MentorTools/MentorTools.js
  55:4  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ext.growthExperiments.PostEdit/PostEditPanel.js
  50:20  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  54:20  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ext.growthExperiments.StructuredTask.desktop/addlink/RecommendedLinkToolbarDialogDesktop.js
  199:21  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageNode.js
  59:18  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ui-components/CollapsibleDrawer.js
  112:22  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

✖ 8 problems (0 errors, 8 warnings)


> test:stylelint
> stylelint --cache "**/*.{css,vue,less}"


> test:i18n
> node tests/banana-checker.js


> test:jest
> jest

---------------------------------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------
File                                                                 | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                                                     
---------------------------------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------
All files                                                            |    44.5 |    34.83 |   33.58 |    44.7 |                                                                                       
 ext.growthExperiments.Account                                       |   12.63 |     8.82 |   16.66 |   12.76 |                                                                                       
  ConfirmEmail.js                                                    |       0 |        0 |       0 |       0 | 1-36                                                                                  
  ULSTagMultiselectWidget.js                                         |       0 |        0 |       0 |       0 | 1-115                                                                                 
  WE18ExperimentV1.js                                                |    92.3 |       75 |     100 |    92.3 | 5                                                                                     
  WelcomeSurvey.js                                                   |       0 |        0 |       0 |       0 | 1-47                                                                                  
  index.js                                                           |       0 |        0 |       0 |       0 | 1-14                                                                                  
 ext.growthExperiments.Homepage.Impact                               |       3 |        0 |       0 |    3.03 |                                                                                       
  App.vue                                                            |       0 |        0 |       0 |       0 | 3-105                                                                                 
  constants.js                                                       |     100 |      100 |     100 |     100 |                                                                                       
  init.js                                                            |       0 |        0 |       0 |       0 | 1-156                                                                                 
 ext.growthExperiments.Homepage.Impact/components                    |   71.38 |     67.9 |   67.39 |   71.88 |                                                                                       
  ArticlesList.vue                                                   |   77.77 |      100 |      20 |   77.77 | 18,41-46                                                                              
  ArticlesListItem.vue                                               |   46.15 |        0 |       0 |      50 | 43-46,76-158                                                                          
  ErrorDisplay.vue                                                   |     100 |      100 |     100 |     100 |                                                                                       
  ErrorDisplaySummary.vue                                            |       0 |      100 |       0 |       0 | 3-58                                                                                  
  Impact.vue                                                         |     100 |       85 |     100 |     100 | 106,125-131                                                                           
  ImpactSummary.vue                                                  |       0 |        0 |       0 |       0 | 1-48                                                                                  
  InfoBoxes.vue                                                      |       0 |        0 |       0 |       0 | 1-83                                                                                  
  LayoutWrapper.vue                                                  |       0 |      100 |       0 |       0 | 8-34                                                                                  
  NoEditsDisplay.vue                                                 |   96.07 |     86.2 |     100 |   96.07 | 60-61                                                                                 
  RecentActivity.vue                                                 |      95 |       50 |     100 |      95 | 41,73                                                                                 
  StreakGraph.vue                                                    |   95.23 |      100 |    87.5 |   95.23 | 25                                                                                    
  TrendChart.vue                                                     |     100 |      100 |     100 |     100 |                                                                                       
 ext.growthExperiments.Homepage.Impact/composables                   |   73.21 |    72.72 |   78.94 |   71.69 |                                                                                       
  useMWRestApi.js                                                    |       0 |        0 |       0 |       0 | 1-35                                                                                  
  useUserImpact.js                                                   |   97.61 |    88.88 |     100 |   97.43 | 93                                                                                    
 ext.growthExperiments.MentorDashboard                               |       0 |        0 |       0 |       0 |                                                                                       
  Discovery.js                                                       |       0 |        0 |       0 |       0 | 2-12                                                                                  
  PersonalizedPraisePostEdit.js                                      |       0 |        0 |       0 |       0 | 1-18                                                                                  
  init.js                                                            |       0 |        0 |       0 |       0 | 1-53                                                                                  
 ext.growthExperiments.MentorDashboard/MentorTools                   |       0 |        0 |       0 |       0 |                                                                                       
  AwaySettingsDialog.js                                              |       0 |        0 |       0 |       0 | 1-108                                                                                 
  MentorMessageChangeDialog.js                                       |       0 |        0 |       0 |       0 | 10-103                                                                                
  MentorTools.js                                                     |       0 |        0 |       0 |       0 | 2-223                                                                                 
  MentorToolsEllipsisMenu.js                                         |       0 |        0 |       0 |       0 | 1-66                                                                                  
 ext.growthExperiments.MentorDashboard/components/CNumberInput       |   66.66 |    55.55 |   23.07 |   65.51 |                                                                                       
  CNumberInput.vue                                                   |   66.66 |    55.55 |   23.07 |   65.51 | 99,102,105,108,129,148-164                                                            
 ext.growthExperiments.MentorDashboard/components/DataTable          |      47 |        0 |    5.26 |   52.38 |                                                                                       
  DataTable.vue                                                      |   32.25 |        0 |       0 |   39.21 | 37-89,100-103,121-164                                                                 
  DataTableCellLink.vue                                              |      75 |      100 |       0 |      75 | 36-41                                                                                 
  DataTableCellValue.vue                                             |     100 |      100 |     100 |     100 |                                                                                       
  DataTableLimit.vue                                                 |      50 |        0 |       0 |   53.33 | 24-31,49-55                                                                           
  DataTablePagination.vue                                            |      50 |        0 |       0 |      50 | 31-38,53-79                                                                           
 ext.growthExperiments.MentorDashboard/components/HorizontalDivider  |     100 |      100 |     100 |     100 |                                                                                       
  HorizontalDivider.vue                                              |     100 |      100 |     100 |     100 |                                                                                       
 ext.growthExperiments.MentorDashboard/components/MenteeOverview     |   66.52 |    41.46 |   37.36 |   66.81 |                                                                                       
  DataTableCellMentee.vue                                            |   60.86 |        0 |       0 |   60.86 | 27-45,74-82                                                                           
  LegendBox.vue                                                      |   73.33 |      100 |       0 |   73.33 | 21,43-45                                                                              
  MenteeFilters.vue                                                  |   40.74 |        0 |       0 |   40.74 | 28-64,82-89                                                                           
  MenteeFiltersForm.vue                                              |   75.47 |       50 |   56.52 |   75.47 | 85-103,158-173,189,204,217                                                            
  MenteeOverview.vue                                                 |    72.5 |    58.82 |    52.5 |   73.41 | 27-99,179-186,218-230,300-325                                                         
  MenteeSearch.vue                                                   |   45.45 |        0 |       0 |   45.45 | 22-43,60-66                                                                           
  NoResults.vue                                                      |   84.61 |        0 |       0 |   84.61 | 53-54                                                                                 
 ext.growthExperiments.MentorDashboard/components/PersonalizedPraise |   56.65 |    48.48 |   25.58 |   57.39 |                                                                                       
  NoResults.vue                                                      |     100 |      100 |     100 |     100 |                                                                                       
  PersonalizedPraise.vue                                             |   81.25 |    91.66 |   58.82 |   81.25 | 65-80,123,138-148                                                                     
  PersonalizedPraisePagination.vue                                   |   45.45 |        0 |       0 |   45.45 | 33-43,58-92                                                                           
  PersonalizedPraiseSettings.vue                                     |   68.96 |       50 |   33.33 |   68.96 | 44-54,78,90-100                                                                       
  PersonalizedPraiseSettingsForm.vue                                 |   70.73 |    68.18 |   44.44 |   70.73 | 67-70,88,144-164,180-185,200,218                                                      
  SkipMenteeDialog.vue                                               |   26.31 |        0 |       0 |   28.57 | 34-70,87-136                                                                          
  UserCard.vue                                                       |   34.04 |        0 |       0 |   34.04 | 33-123,147-172                                                                        
 ext.growthExperiments.MentorDashboard/logger                        |       0 |        0 |       0 |       0 |                                                                                       
  Logger.js                                                          |       0 |        0 |       0 |       0 | 5-41                                                                                  
 ext.growthExperiments.MentorDashboard/plugins                       |       0 |        0 |       0 |       0 |                                                                                       
  logger.js                                                          |       0 |        0 |       0 |       0 | 9-15                                                                                  
 ext.growthExperiments.MentorDashboard/store                         |   26.66 |        0 |    6.89 |   26.96 |                                                                                       
  MenteeOverviewApi.js                                               |   28.91 |        0 |    6.89 |   29.26 | 32,37-52,56-71,83,87,91,95,99,103-110,115-118,122-128,134-145,150-161,167-178,185-186 
  index.js                                                           |       0 |      100 |     100 |       0 | 1-16                                                                                  
 ext.growthExperiments.MentorDashboard/store/modules                 |   44.56 |    49.23 |   25.39 |      44 |                                                                                       
  mentees-search.js                                                  |       0 |        0 |       0 |       0 | 2-50                                                                                  
  mentees.js                                                         |   66.36 |    67.39 |   41.66 |   66.01 | 31,61-63,71-74,107,121,128,144,147,150,200-201,217,226,235-243,253-286                
  praiseworthy-mentees.js                                            |       0 |        0 |       0 |       0 | 1-101                                                                                 
  user-preferences.js                                                |   52.94 |       50 |      20 |   52.94 | 12,21,27-32,41                                                                        
 ext.growthExperiments.MentorDashboard/validators                    |     100 |      100 |     100 |     100 |                                                                                       
  align-text.validator.js                                            |     100 |      100 |     100 |     100 |                                                                                       
 ext.growthExperiments.StructuredTask.PreEdit                        |       0 |        0 |       0 |       0 |                                                                                       
  App.vue                                                            |       0 |      100 |       0 |       0 | 1-31                                                                                  
  StructuredTaskOnboardingContent.js                                 |       0 |        0 |       0 |       0 | 2-46                                                                                  
  StructuredTaskOnboardingDialog.js                                  |       0 |        0 |       0 |       0 | 1-237                                                                                 
  index.js                                                           |       0 |        0 |       0 |       0 | 1-282                                                                                 
 ext.growthExperiments.StructuredTask.PreEdit/addimage               |       0 |        0 |       0 |       0 |                                                                                       
  AddImageOnboardingContent.js                                       |       0 |        0 |       0 |       0 | 1-166                                                                                 
 ext.growthExperiments.StructuredTask.PreEdit/addlink                |       0 |        0 |       0 |       0 |                                                                                       
  AddLinkOnboardingContent.js                                        |       0 |        0 |       0 |       0 | 1-156                                                                                 
 ext.growthExperiments.StructuredTask.PreEdit/addsectionimage        |       0 |        0 |       0 |       0 |                                                                                       
  AddSectionImageOnboardingContent.js                                |       0 |        0 |       0 |       0 | 1-79                                                                                  
 ext.growthExperiments.StructuredTask.PreEdit/common                 |   82.56 |    62.31 |   78.37 |   90.62 |                                                                                       
  OnboardingDialog.vue                                               |    92.5 |    91.66 |   82.75 |    92.3 | 123,153-154,221-223,235                                                               
  OnboardingStepper.vue                                              |   55.17 |     30.3 |    62.5 |   83.33 | 40-41,44                                                                              
 ext.growthExperiments.StructuredTask.PreEdit/dev/demos              |       0 |        0 |       0 |       0 |                                                                                       
  CommonComponentsDemo.vue                                           |       0 |        0 |       0 |       0 | 1-93                                                                                  
  ReviseToneQuizPillDemo.vue                                         |       0 |        0 |       0 |       0 | 4-63                                                                                  
 ext.growthExperiments.StructuredTask.PreEdit/revisetone             |   64.89 |    59.32 |   41.86 |   65.36 |                                                                                       
  NumberIcon.vue                                                     |     100 |      100 |     100 |     100 |                                                                                       
  QuizGame.vue                                                       |   57.69 |      100 |       0 |   57.69 | 20-40,74-83                                                                           
  QuizPill.vue                                                       |   98.27 |    94.11 |   91.66 |   98.14 | 146                                                                                   
  ReviseToneOnboarding.vue                                           |   56.06 |    16.66 |      20 |   59.67 | 12-22,52,59,64,71,93-98,128-156                                                       
  ReviseToneQuizLauncher.js                                          |       0 |        0 |       0 |       0 | 1-60                                                                                  
 utils                                                               |   24.09 |    13.11 |   21.21 |   22.22 |                                                                                       
  HelpPanelLogger.js                                                 |       0 |        0 |       0 |       0 | 7-238                                                                                 
  IconUtils.js                                                       |       0 |        0 |       0 |       0 | 1-30                                                                                  
  SimpleLevenshtein.js                                               |     100 |      100 |     100 |     100 |                                                                                       
  Utils.js                                                           |   18.18 |    13.33 |      25 |   18.18 | 12-72,95-155,183-186                                                                  
  filters.js                                                         |       0 |      100 |       0 |       0 | 14-17                                                                                 
 vue-components                                                      |   77.49 |     67.5 |   68.91 |   78.24 |                                                                                       
  CList.vue                                                          |   53.33 |        0 |   33.33 |   53.33 | 22-30                                                                                 
  CListItem.vue                                                      |   85.71 |      100 |       0 |   85.71 | 21                                                                                    
  CScoreCard.vue                                                     |   93.33 |    78.57 |   77.77 |    93.1 | 139-141                                                                               
  CScoreCards.vue                                                    |   56.66 |    56.25 |   54.83 |   56.66 | 98-101,112,130-193,199,262-292,337-344                                                
  CSparkline.vue                                                     |   81.08 |       50 |      50 |    90.9 | 63-67,76                                                                              
  CText.vue                                                          |     100 |      100 |     100 |     100 |                                                                                       
  MultiPane.vue                                                      |   92.64 |    83.33 |     100 |   92.18 | 98,110,117,124,127                                                                    
 vue-components/directives                                           |       0 |        0 |       0 |       0 |                                                                                       
  click-outside.directive.js                                         |       0 |        0 |       0 |       0 | 1-25                                                                                  
 vue-components/plugins                                              |       0 |      100 |       0 |       0 |                                                                                       
  logger.js                                                          |       0 |      100 |       0 |       0 | 10-20                                                                                 
---------------------------------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------

> test:doc
> cd documentation/frontend && npm ci && npm run test


added 319 packages, and audited 320 packages in 4s

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

22 vulnerabilities (1 low, 10 moderate, 7 high, 4 critical)

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

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

Run `npm audit` for details.

> growthexperiments-docs@1.0.0 test
> npm run lint && vitest run --coverage


> growthexperiments-docs@1.0.0 lint
> eslint .


 RUN  v0.32.0 /src/repo/documentation/frontend
      Coverage enabled with v8

 ✓ components/MultiPane.test.js  (10 tests) 202ms
 ✓ components/FilterDialog.test.js  (5 tests) 238ms
 ✓ components/OnboardingDialog.test.js  (14 tests) 416ms
 ✓ component-demos/example-component/ExampleComponent.test.js  (2 tests) 76ms
 ✓ components/OnboardingStepper.test.js  (5 tests) 61ms
 ✓ components/AddLinkDialog.test.js  (4 tests) 240ms
 ✓ store/example-store/counter.test.js  (1 test) 9ms

 Test Files  7 passed (7)
      Tests  41 passed (41)
   Start at  15:19:07
   Duration  5.29s (transform 244ms, setup 283ms, collect 2.69s, tests 1.24s, environment 4.17s, prepare 878ms)

 % Coverage report from v8
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   78.16 |    91.17 |   63.88 |   78.16 |                   
 ...mageDialog.vue |       0 |        0 |       0 |       0 | 1-291             
 AddLinkDialog.vue |     100 |      100 |      20 |     100 |                   
 FilterDialog.vue  |     100 |      100 |      60 |     100 |                   
 MultiPane.vue     |   97.79 |    87.87 |     100 |   97.79 | 105,112,120-121   
 ...dingDialog.vue |   98.58 |    95.45 |   57.14 |   98.58 | 215-216,247-249   
 ...ingStepper.vue |     100 |      100 |     100 |     100 |                   
-------------------|---------|----------|---------|---------|-------------------

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@babel/core": {
      "name": "@babel/core",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1120793,
          "name": "@babel/core",
          "dependency": "@babel/core",
          "title": "@babel/core: Arbitrary File Read via sourceMappingURL Comment",
          "url": "https://github.com/advisories/GHSA-4x5r-pxfx-6jf8",
          "severity": "low",
          "cwe": [
            "CWE-22",
            "CWE-200"
          ],
          "cvss": {
            "score": 3.2,
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N"
          },
          "range": "<=7.29.0"
        }
      ],
      "effects": [],
      "range": "<=7.29.0",
      "nodes": [
        "node_modules/@babel/core"
      ],
      "fixAvailable": true
    },
    "@istanbuljs/load-nyc-config": {
      "name": "@istanbuljs/load-nyc-config",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "js-yaml"
      ],
      "effects": [
        "babel-plugin-istanbul"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@istanbuljs/load-nyc-config"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/core": {
      "name": "@jest/core",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/reporters",
        "@jest/transform",
        "jest-config",
        "jest-resolve-dependencies",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot"
      ],
      "effects": [
        "jest",
        "jest-cli"
      ],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/@jest/core"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@jest/expect": {
      "name": "@jest/expect",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-snapshot"
      ],
      "effects": [
        "@jest/globals",
        "jest-circus"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@jest/expect"
      ],
      "fixAvailable": true
    },
    "@jest/globals": {
      "name": "@jest/globals",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/expect"
      ],
      "effects": [
        "jest-runtime"
      ],
      "range": ">=28.0.0-alpha.0",
      "nodes": [
        "node_modules/@jest/globals"
      ],
      "fixAvailable": true
    },
    "@jest/reporters": {
      "name": "@jest/reporters",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/transform"
      ],
      "effects": [],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/@jest/reporters"
      ],
      "fixAvailable": true
    },
    "@jest/transform": {
      "name": "@jest/transform",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "babel-plugin-istanbul"
      ],
      "effects": [
        "@jest/core",
        "@jest/reporters",
        "jest-runner",
        "jest-runtime",
        "jest-snapshot"
      ],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/@jest/transform"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "@vue/vue3-jest": {
      "name": "@vue/vue3-jest",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "babel-jest",
        "jest"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@vue/vue3-jest"
      ],
      "fixAvailable": false
    },
    "babel-jest": {
      "name": "babel-jest",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/transform",
        "babel-plugin-istanbul"
      ],
      "effects": [
        "@vue/vue3-jest",
        "jest-config"
      ],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/babel-jest"
      ],
      "fixAvailable": false
    },
    "babel-plugin-istanbul": {
      "name": "babel-plugin-istanbul",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@istanbuljs/load-nyc-config"
      ],
      "effects": [
        "@jest/transform",
        "babel-jest"
      ],
      "range": ">=6.0.0-beta.0",
      "nodes": [
        "node_modules/babel-plugin-istanbul"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "create-jest": {
      "name": "create-jest",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-config"
      ],
      "effects": [
        "jest-cli"
      ],
      "range": ">=29.7.0",
      "nodes": [
        "node_modules/create-jest"
      ],
      "fixAvailable": true
    },
    "esbuild": {
      "name": "esbuild",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1120680,
          "name": "esbuild",
          "dependency": "esbuild",
          "title": "esbuild allows arbitrary file read when running the development server on Windows",
          "url": "https://github.com/advisories/GHSA-g7r4-m6w7-qqqr",
          "severity": "low",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 2.5,
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": ">=0.27.3 <0.28.1"
        }
      ],
      "effects": [],
      "range": "0.27.3 - 0.28.0",
      "nodes": [
        "node_modules/esbuild"
      ],
      "fixAvailable": true
    },
    "form-data": {
      "name": "form-data",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1120743,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
          "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
          "severity": "high",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=4.0.0 <4.0.6"
        }
      ],
      "effects": [],
      "range": "4.0.0 - 4.0.5",
      "nodes": [
        "node_modules/form-data"
      ],
      "fixAvailable": true
    },
    "jest": {
      "name": "jest",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "@jest/core",
        "jest-cli"
      ],
      "effects": [],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/jest"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "jest-circus": {
      "name": "jest-circus",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/expect",
        "jest-runtime",
        "jest-snapshot"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=25.2.4",
      "nodes": [
        "node_modules/jest-circus"
      ],
      "fixAvailable": true
    },
    "jest-cli": {
      "name": "jest-cli",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/core",
        "create-jest",
        "jest-config"
      ],
      "effects": [],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/jest-cli"
      ],
      "fixAvailable": true
    },
    "jest-config": {
      "name": "jest-config",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "babel-jest",
        "jest-circus",
        "jest-runner"
      ],
      "effects": [
        "create-jest"
      ],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/jest-config"
      ],
      "fixAvailable": true
    },
    "jest-resolve-dependencies": {
      "name": "jest-resolve-dependencies",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "jest-snapshot"
      ],
      "effects": [],
      "range": ">=27.0.0-next.0",
      "nodes": [
        "node_modules/jest-resolve-dependencies"
      ],
      "fixAvailable": true
    },
    "jest-runner": {
      "name": "jest-runner",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/transform",
        "jest-runtime"
      ],
      "effects": [
        "jest-config"
      ],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/jest-runner"
      ],
      "fixAvailable": true
    },
    "jest-runtime": {
      "name": "jest-runtime",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/globals",
        "@jest/transform",
        "jest-snapshot"
      ],
      "effects": [
        "jest-circus",
        "jest-runner"
      ],
      "range": ">=25.1.0",
      "nodes": [
        "node_modules/jest-runtime"
      ],
      "fixAvailable": true
    },
    "jest-snapshot": {
      "name": "jest-snapshot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@jest/transform"
      ],
      "effects": [
        "@jest/core",
        "@jest/expect",
        "jest-circus",
        "jest-resolve-dependencies",
        "jest-runtime"
      ],
      "range": ">=27.0.0-next.0",
      "nodes": [
        "node_modules/jest-snapshot"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "js-yaml": {
      "name": "js-yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1120792,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
          "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
          "severity": "moderate",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<=4.1.1"
        }
      ],
      "effects": [
        "@istanbuljs/load-nyc-config"
      ],
      "range": "<=4.1.1",
      "nodes": [
        "node_modules/@eslint/eslintrc/node_modules/js-yaml",
        "node_modules/cosmiconfig/node_modules/js-yaml",
        "node_modules/eslint/node_modules/js-yaml",
        "node_modules/js-yaml"
      ],
      "fixAvailable": {
        "name": "jest",
        "version": "25.0.0",
        "isSemVerMajor": true
      }
    },
    "shell-quote": {
      "name": "shell-quote",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1120422,
          "name": "shell-quote",
          "dependency": "shell-quote",
          "title": "shell-quote quote() does not escape newlines in object .op values",
          "url": "https://github.com/advisories/GHSA-w7jw-789q-3m8p",
          "severity": "critical",
          "cwe": [
            "CWE-77",
            "CWE-78"
          ],
          "cvss": {
            "score": 8.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": ">=1.1.0 <=1.8.3"
        }
      ],
      "effects": [],
      "range": "1.1.0 - 1.8.3",
      "nodes": [
        "node_modules/shell-quote"
      ],
      "fixAvailable": true
    },
    "vite": {
      "name": "vite",
      "severity": "high",
      "isDirect": true,
      "via": [
        {
          "source": 1120785,
          "name": "vite",
          "dependency": "vite",
          "title": "launch-editor: NTLMv2 hash disclosure via UNC path handling on Windows",
          "url": "https://github.com/advisories/GHSA-v6wh-96g9-6wx3",
          "severity": "moderate",
          "cwe": [
            "CWE-73",
            "CWE-522"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=7.0.0 <=7.3.4"
        },
        {
          "source": 1120790,
          "name": "vite",
          "dependency": "vite",
          "title": "vite: `server.fs.deny` bypass on Windows alternate paths",
          "url": "https://github.com/advisories/GHSA-fx2h-pf6j-xcff",
          "severity": "high",
          "cwe": [
            "CWE-22",
            "CWE-200"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=7.0.0 <=7.3.4"
        }
      ],
      "effects": [],
      "range": "7.0.0 - 7.3.3",
      "nodes": [
        "node_modules/vite"
      ],
      "fixAvailable": true
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1120730,
          "name": "ws",
          "dependency": "ws",
          "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks",
          "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-770"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.21.0"
        }
      ],
      "effects": [],
      "range": "8.0.0 - 8.20.1",
      "nodes": [
        "node_modules/ws"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 2,
      "moderate": 19,
      "high": 3,
      "critical": 1,
      "total": 25
    },
    "dependencies": {
      "prod": 1,
      "dev": 1324,
      "optional": 65,
      "peer": 7,
      "peerOptional": 0,
      "total": 1324
    }
  }
}

--- end ---
Attempting to npm audit fix
$ /usr/bin/npm audit fix --dry-run --only=dev --json
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: undefined,
npm WARN EBADENGINE   required: { npm: '>=10', node: '>=20' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-design-tokens@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'npm-run-all2@8.0.4',
npm WARN EBADENGINE   required: { node: '^20.5.0 || >=22.0.0', npm: '>= 10' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
{
  "added": 50,
  "removed": 1,
  "changed": 24,
  "audited": 1325,
  "funding": 227,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@babel/core": {
        "name": "@babel/core",
        "severity": "low",
        "isDirect": false,
        "via": [
          {
            "source": 1120793,
            "name": "@babel/core",
            "dependency": "@babel/core",
            "title": "@babel/core: Arbitrary File Read via sourceMappingURL Comment",
            "url": "https://github.com/advisories/GHSA-4x5r-pxfx-6jf8",
            "severity": "low",
            "cwe": [
              "CWE-22",
              "CWE-200"
            ],
            "cvss": {
              "score": 3.2,
              "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N"
            },
            "range": "<=7.29.0"
          }
        ],
        "effects": [],
        "range": "<=7.29.0",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "@istanbuljs/load-nyc-config": {
        "name": "@istanbuljs/load-nyc-config",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "js-yaml"
        ],
        "effects": [
          "babel-plugin-istanbul"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@istanbuljs/load-nyc-config"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/core": {
        "name": "@jest/core",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/reporters",
          "@jest/transform",
          "jest-config",
          "jest-resolve-dependencies",
          "jest-runner",
          "jest-runtime",
          "jest-snapshot"
        ],
        "effects": [
          "jest",
          "jest-cli"
        ],
        "range": ">=25.1.0",
        "nodes": [
          "node_modules/@jest/core"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@jest/expect": {
        "name": "@jest/expect",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "jest-snapshot"
        ],
        "effects": [
          "@jest/globals",
          "jest-circus"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@jest/expect"
        ],
        "fixAvailable": true
      },
      "@jest/globals": {
        "name": "@jest/globals",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/expect"
        ],
        "effects": [
          "jest-runtime"
        ],
        "range": ">=28.0.0-alpha.0",
        "nodes": [
          "node_modules/@jest/globals"
        ],
        "fixAvailable": true
      },
      "@jest/reporters": {
        "name": "@jest/reporters",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/transform"
        ],
        "effects": [],
        "range": ">=25.1.0",
        "nodes": [
          "node_modules/@jest/reporters"
        ],
        "fixAvailable": true
      },
      "@jest/transform": {
        "name": "@jest/transform",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "babel-plugin-istanbul"
        ],
        "effects": [
          "@jest/core",
          "@jest/reporters",
          "jest-runner",
          "jest-runtime",
          "jest-snapshot"
        ],
        "range": ">=25.1.0",
        "nodes": [
          "node_modules/@jest/transform"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "@vue/vue3-jest": {
        "name": "@vue/vue3-jest",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "babel-jest",
          "jest"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/@vue/vue3-jest"
        ],
        "fixAvailable": false
      },
      "babel-jest": {
        "name": "babel-jest",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/transform",
          "babel-plugin-istanbul"
        ],
        "effects": [
          "@vue/vue3-jest",
          "jest-config"
        ],
        "range": ">=25.1.0",
        "nodes": [
          "node_modules/babel-jest"
        ],
        "fixAvailable": false
      },
      "babel-plugin-istanbul": {
        "name": "babel-plugin-istanbul",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@istanbuljs/load-nyc-config"
        ],
        "effects": [
          "@jest/transform",
          "babel-jest"
        ],
        "range": ">=6.0.0-beta.0",
        "nodes": [
          "node_modules/babel-plugin-istanbul"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "create-jest": {
        "name": "create-jest",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "jest-config"
        ],
        "effects": [
          "jest-cli"
        ],
        "range": ">=29.7.0",
        "nodes": [
          "node_modules/create-jest"
        ],
        "fixAvailable": true
      },
      "esbuild": {
        "name": "esbuild",
        "severity": "low",
        "isDirect": false,
        "via": [
          {
            "source": 1120680,
            "name": "esbuild",
            "dependency": "esbuild",
            "title": "esbuild allows arbitrary file read when running the development server on Windows",
            "url": "https://github.com/advisories/GHSA-g7r4-m6w7-qqqr",
            "severity": "low",
            "cwe": [
              "CWE-22"
            ],
            "cvss": {
              "score": 2.5,
              "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": ">=0.27.3 <0.28.1"
          }
        ],
        "effects": [],
        "range": "0.27.3 - 0.28.0",
        "nodes": [
          "node_modules/esbuild"
        ],
        "fixAvailable": true
      },
      "form-data": {
        "name": "form-data",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1120743,
            "name": "form-data",
            "dependency": "form-data",
            "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
            "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
            "severity": "high",
            "cwe": [
              "CWE-93"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
            },
            "range": ">=4.0.0 <4.0.6"
          }
        ],
        "effects": [],
        "range": "4.0.0 - 4.0.5",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "jest": {
        "name": "jest",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "@jest/core",
          "jest-cli"
        ],
        "effects": [],
        "range": ">=25.1.0",
        "nodes": [
          "node_modules/jest"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "jest-circus": {
        "name": "jest-circus",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/expect",
          "jest-runtime",
          "jest-snapshot"
        ],
        "effects": [
          "jest-config"
        ],
        "range": ">=25.2.4",
        "nodes": [
          "node_modules/jest-circus"
        ],
        "fixAvailable": true
      },
      "jest-cli": {
        "name": "jest-cli",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/core",
          "create-jest",
          "jest-config"
        ],
        "effects": [],
        "range": ">=25.1.0",
        "nodes": [
          "node_modules/jest-cli"
        ],
        "fixAvailable": true
      },
      "jest-config": {
        "name": "jest-config",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "babel-jest",
          "jest-circus",
          "jest-runner"
        ],
        "effects": [
          "create-jest"
        ],
        "range": ">=25.1.0",
        "nodes": [
          "node_modules/jest-config"
        ],
        "fixAvailable": true
      },
      "jest-resolve-dependencies": {
        "name": "jest-resolve-dependencies",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "jest-snapshot"
        ],
        "effects": [],
        "range": ">=27.0.0-next.0",
        "nodes": [
          "node_modules/jest-resolve-dependencies"
        ],
        "fixAvailable": true
      },
      "jest-runner": {
        "name": "jest-runner",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/transform",
          "jest-runtime"
        ],
        "effects": [
          "jest-config"
        ],
        "range": ">=25.1.0",
        "nodes": [
          "node_modules/jest-runner"
        ],
        "fixAvailable": true
      },
      "jest-runtime": {
        "name": "jest-runtime",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/globals",
          "@jest/transform",
          "jest-snapshot"
        ],
        "effects": [
          "jest-circus",
          "jest-runner"
        ],
        "range": ">=25.1.0",
        "nodes": [
          "node_modules/jest-runtime"
        ],
        "fixAvailable": true
      },
      "jest-snapshot": {
        "name": "jest-snapshot",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@jest/transform"
        ],
        "effects": [
          "@jest/core",
          "@jest/expect",
          "jest-circus",
          "jest-resolve-dependencies",
          "jest-runtime"
        ],
        "range": ">=27.0.0-next.0",
        "nodes": [
          "node_modules/jest-snapshot"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "js-yaml": {
        "name": "js-yaml",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1120792,
            "name": "js-yaml",
            "dependency": "js-yaml",
            "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
            "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
            "severity": "moderate",
            "cwe": [
              "CWE-407"
            ],
            "cvss": {
              "score": 5.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": "<=4.1.1"
          }
        ],
        "effects": [
          "@istanbuljs/load-nyc-config"
        ],
        "range": "<=4.1.1",
        "nodes": [
          "",
          "",
          "",
          "node_modules/js-yaml"
        ],
        "fixAvailable": {
          "name": "jest",
          "version": "25.0.0",
          "isSemVerMajor": true
        }
      },
      "shell-quote": {
        "name": "shell-quote",
        "severity": "critical",
        "isDirect": false,
        "via": [
          {
            "source": 1120422,
            "name": "shell-quote",
            "dependency": "shell-quote",
            "title": "shell-quote quote() does not escape newlines in object .op values",
            "url": "https://github.com/advisories/GHSA-w7jw-789q-3m8p",
            "severity": "critical",
            "cwe": [
              "CWE-77",
              "CWE-78"
            ],
            "cvss": {
              "score": 8.1,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
            },
            "range": ">=1.1.0 <=1.8.3"
          }
        ],
        "effects": [],
        "range": "1.1.0 - 1.8.3",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "vite": {
        "name": "vite",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1120785,
            "name": "vite",
            "dependency": "vite",
            "title": "launch-editor: NTLMv2 hash disclosure via UNC path handling on Windows",
            "url": "https://github.com/advisories/GHSA-v6wh-96g9-6wx3",
            "severity": "moderate",
            "cwe": [
              "CWE-73",
              "CWE-522"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": ">=7.0.0 <=7.3.4"
          },
          {
            "source": 1120790,
            "name": "vite",
            "dependency": "vite",
            "title": "vite: `server.fs.deny` bypass on Windows alternate paths",
            "url": "https://github.com/advisories/GHSA-fx2h-pf6j-xcff",
            "severity": "high",
            "cwe": [
              "CWE-22",
              "CWE-200"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": ">=7.0.0 <=7.3.4"
          }
        ],
        "effects": [],
        "range": "7.0.0 - 7.3.3",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "ws": {
        "name": "ws",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1120730,
            "name": "ws",
            "dependency": "ws",
            "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks",
            "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p",
            "severity": "high",
            "cwe": [
              "CWE-400",
              "CWE-770"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": ">=8.0.0 <8.21.0"
          }
        ],
        "effects": [],
        "range": "8.0.0 - 8.20.1",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 2,
        "moderate": 19,
        "high": 3,
        "critical": 1,
        "total": 25
      },
      "dependencies": {
        "prod": 1,
        "dev": 1324,
        "optional": 65,
        "peer": 7,
        "peerOptional": 0,
        "total": 1324
      }
    }
  }
}

--- end ---
{"added": 50, "removed": 1, "changed": 24, "audited": 1325, "funding": 227, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@babel/core": {"name": "@babel/core", "severity": "low", "isDirect": false, "via": [{"source": 1120793, "name": "@babel/core", "dependency": "@babel/core", "title": "@babel/core: Arbitrary File Read via sourceMappingURL Comment", "url": "https://github.com/advisories/GHSA-4x5r-pxfx-6jf8", "severity": "low", "cwe": ["CWE-22", "CWE-200"], "cvss": {"score": 3.2, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N"}, "range": "<=7.29.0"}], "effects": [], "range": "<=7.29.0", "nodes": [""], "fixAvailable": true}, "@istanbuljs/load-nyc-config": {"name": "@istanbuljs/load-nyc-config", "severity": "moderate", "isDirect": false, "via": ["js-yaml"], "effects": ["babel-plugin-istanbul"], "range": "*", "nodes": ["node_modules/@istanbuljs/load-nyc-config"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/core": {"name": "@jest/core", "severity": "moderate", "isDirect": false, "via": ["@jest/reporters", "@jest/transform", "jest-config", "jest-resolve-dependencies", "jest-runner", "jest-runtime", "jest-snapshot"], "effects": ["jest", "jest-cli"], "range": ">=25.1.0", "nodes": ["node_modules/@jest/core"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/expect": {"name": "@jest/expect", "severity": "moderate", "isDirect": false, "via": ["jest-snapshot"], "effects": ["@jest/globals", "jest-circus"], "range": "*", "nodes": ["node_modules/@jest/expect"], "fixAvailable": true}, "@jest/globals": {"name": "@jest/globals", "severity": "moderate", "isDirect": false, "via": ["@jest/expect"], "effects": ["jest-runtime"], "range": ">=28.0.0-alpha.0", "nodes": ["node_modules/@jest/globals"], "fixAvailable": true}, "@jest/reporters": {"name": "@jest/reporters", "severity": "moderate", "isDirect": false, "via": ["@jest/transform"], "effects": [], "range": ">=25.1.0", "nodes": ["node_modules/@jest/reporters"], "fixAvailable": true}, "@jest/transform": {"name": "@jest/transform", "severity": "moderate", "isDirect": false, "via": ["babel-plugin-istanbul"], "effects": ["@jest/core", "@jest/reporters", "jest-runner", "jest-runtime", "jest-snapshot"], "range": ">=25.1.0", "nodes": ["node_modules/@jest/transform"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@vue/vue3-jest": {"name": "@vue/vue3-jest", "severity": "moderate", "isDirect": true, "via": ["babel-jest", "jest"], "effects": [], "range": "*", "nodes": ["node_modules/@vue/vue3-jest"], "fixAvailable": false}, "babel-jest": {"name": "babel-jest", "severity": "moderate", "isDirect": false, "via": ["@jest/transform", "babel-plugin-istanbul"], "effects": ["@vue/vue3-jest", "jest-config"], "range": ">=25.1.0", "nodes": ["node_modules/babel-jest"], "fixAvailable": false}, "babel-plugin-istanbul": {"name": "babel-plugin-istanbul", "severity": "moderate", "isDirect": false, "via": ["@istanbuljs/load-nyc-config"], "effects": ["@jest/transform", "babel-jest"], "range": ">=6.0.0-beta.0", "nodes": ["node_modules/babel-plugin-istanbul"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "create-jest": {"name": "create-jest", "severity": "moderate", "isDirect": false, "via": ["jest-config"], "effects": ["jest-cli"], "range": ">=29.7.0", "nodes": ["node_modules/create-jest"], "fixAvailable": true}, "esbuild": {"name": "esbuild", "severity": "low", "isDirect": false, "via": [{"source": 1120680, "name": "esbuild", "dependency": "esbuild", "title": "esbuild allows arbitrary file read when running the development server on Windows", "url": "https://github.com/advisories/GHSA-g7r4-m6w7-qqqr", "severity": "low", "cwe": ["CWE-22"], "cvss": {"score": 2.5, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"}, "range": ">=0.27.3 <0.28.1"}], "effects": [], "range": "0.27.3 - 0.28.0", "nodes": ["node_modules/esbuild"], "fixAvailable": true}, "form-data": {"name": "form-data", "severity": "high", "isDirect": false, "via": [{"source": 1120743, "name": "form-data", "dependency": "form-data", "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames", "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx", "severity": "high", "cwe": ["CWE-93"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=4.0.0 <4.0.6"}], "effects": [], "range": "4.0.0 - 4.0.5", "nodes": [""], "fixAvailable": true}, "jest": {"name": "jest", "severity": "moderate", "isDirect": true, "via": ["@jest/core", "jest-cli"], "effects": [], "range": ">=25.1.0", "nodes": ["node_modules/jest"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-circus": {"name": "jest-circus", "severity": "moderate", "isDirect": false, "via": ["@jest/expect", "jest-runtime", "jest-snapshot"], "effects": ["jest-config"], "range": ">=25.2.4", "nodes": ["node_modules/jest-circus"], "fixAvailable": true}, "jest-cli": {"name": "jest-cli", "severity": "moderate", "isDirect": false, "via": ["@jest/core", "create-jest", "jest-config"], "effects": [], "range": ">=25.1.0", "nodes": ["node_modules/jest-cli"], "fixAvailable": true}, "jest-config": {"name": "jest-config", "severity": "moderate", "isDirect": false, "via": ["babel-jest", "jest-circus", "jest-runner"], "effects": ["create-jest"], "range": ">=25.1.0", "nodes": ["node_modules/jest-config"], "fixAvailable": true}, "jest-resolve-dependencies": {"name": "jest-resolve-dependencies", "severity": "moderate", "isDirect": false, "via": ["jest-snapshot"], "effects": [], "range": ">=27.0.0-next.0", "nodes": ["node_modules/jest-resolve-dependencies"], "fixAvailable": true}, "jest-runner": {"name": "jest-runner", "severity": "moderate", "isDirect": false, "via": ["@jest/transform", "jest-runtime"], "effects": ["jest-config"], "range": ">=25.1.0", "nodes": ["node_modules/jest-runner"], "fixAvailable": true}, "jest-runtime": {"name": "jest-runtime", "severity": "moderate", "isDirect": false, "via": ["@jest/globals", "@jest/transform", "jest-snapshot"], "effects": ["jest-circus", "jest-runner"], "range": ">=25.1.0", "nodes": ["node_modules/jest-runtime"], "fixAvailable": true}, "jest-snapshot": {"name": "jest-snapshot", "severity": "moderate", "isDirect": false, "via": ["@jest/transform"], "effects": ["@jest/core", "@jest/expect", "jest-circus", "jest-resolve-dependencies", "jest-runtime"], "range": ">=27.0.0-next.0", "nodes": ["node_modules/jest-snapshot"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "js-yaml": {"name": "js-yaml", "severity": "moderate", "isDirect": false, "via": [{"source": 1120792, "name": "js-yaml", "dependency": "js-yaml", "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases", "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68", "severity": "moderate", "cwe": ["CWE-407"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<=4.1.1"}], "effects": ["@istanbuljs/load-nyc-config"], "range": "<=4.1.1", "nodes": ["", "", "", "node_modules/js-yaml"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "shell-quote": {"name": "shell-quote", "severity": "critical", "isDirect": false, "via": [{"source": 1120422, "name": "shell-quote", "dependency": "shell-quote", "title": "shell-quote quote() does not escape newlines in object .op values", "url": "https://github.com/advisories/GHSA-w7jw-789q-3m8p", "severity": "critical", "cwe": ["CWE-77", "CWE-78"], "cvss": {"score": 8.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"}, "range": ">=1.1.0 <=1.8.3"}], "effects": [], "range": "1.1.0 - 1.8.3", "nodes": [""], "fixAvailable": true}, "vite": {"name": "vite", "severity": "high", "isDirect": false, "via": [{"source": 1120785, "name": "vite", "dependency": "vite", "title": "launch-editor: NTLMv2 hash disclosure via UNC path handling on Windows", "url": "https://github.com/advisories/GHSA-v6wh-96g9-6wx3", "severity": "moderate", "cwe": ["CWE-73", "CWE-522"], "cvss": {"score": 0, "vectorString": null}, "range": ">=7.0.0 <=7.3.4"}, {"source": 1120790, "name": "vite", "dependency": "vite", "title": "vite: `server.fs.deny` bypass on Windows alternate paths", "url": "https://github.com/advisories/GHSA-fx2h-pf6j-xcff", "severity": "high", "cwe": ["CWE-22", "CWE-200"], "cvss": {"score": 0, "vectorString": null}, "range": ">=7.0.0 <=7.3.4"}], "effects": [], "range": "7.0.0 - 7.3.3", "nodes": [""], "fixAvailable": true}, "ws": {"name": "ws", "severity": "high", "isDirect": false, "via": [{"source": 1120730, "name": "ws", "dependency": "ws", "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks", "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p", "severity": "high", "cwe": ["CWE-400", "CWE-770"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=8.0.0 <8.21.0"}], "effects": [], "range": "8.0.0 - 8.20.1", "nodes": [""], "fixAvailable": true}}, "metadata": {"vulnerabilities": {"info": 0, "low": 2, "moderate": 19, "high": 3, "critical": 1, "total": 25}, "dependencies": {"prod": 1, "dev": 1324, "optional": 65, "peer": 7, "peerOptional": 0, "total": 1324}}}}
$ /usr/bin/npm audit fix --only=dev
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: undefined,
npm WARN EBADENGINE   required: { npm: '>=10', node: '>=20' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-design-tokens@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'npm-run-all2@8.0.4',
npm WARN EBADENGINE   required: { node: '^20.5.0 || >=22.0.0', npm: '>= 10' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---

added 1 package, removed 1 package, changed 24 packages, and audited 1276 packages in 9s

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

# npm audit report

esbuild  0.27.3 - 0.28.0
esbuild allows arbitrary file read when running the development server on Windows - https://github.com/advisories/GHSA-g7r4-m6w7-qqqr
fix available via `npm audit fix`
node_modules/esbuild

js-yaml  <=4.1.1
Severity: moderate
JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases - https://github.com/advisories/GHSA-h67p-54hq-rp68
fix available via `npm audit fix --force`
Will install jest@25.0.0, which is a breaking change
node_modules/js-yaml
  @istanbuljs/load-nyc-config  *
  Depends on vulnerable versions of js-yaml
  node_modules/@istanbuljs/load-nyc-config
    babel-plugin-istanbul  >=6.0.0-beta.0
    Depends on vulnerable versions of @istanbuljs/load-nyc-config
    node_modules/babel-plugin-istanbul
      @jest/transform  >=25.1.0
      Depends on vulnerable versions of babel-plugin-istanbul
      node_modules/@jest/transform
        @jest/core  >=25.1.0
        Depends on vulnerable versions of @jest/reporters
        Depends on vulnerable versions of @jest/transform
        Depends on vulnerable versions of jest-config
        Depends on vulnerable versions of jest-resolve-dependencies
        Depends on vulnerable versions of jest-runner
        Depends on vulnerable versions of jest-runtime
        Depends on vulnerable versions of jest-snapshot
        node_modules/@jest/core
          jest  >=25.1.0
          Depends on vulnerable versions of @jest/core
          Depends on vulnerable versions of jest-cli
          node_modules/jest
          jest-cli  >=25.1.0
          Depends on vulnerable versions of @jest/core
          Depends on vulnerable versions of create-jest
          Depends on vulnerable versions of jest-config
          node_modules/jest-cli
        @jest/reporters  >=25.1.0
        Depends on vulnerable versions of @jest/transform
        node_modules/@jest/reporters
        jest-runner  >=25.1.0
        Depends on vulnerable versions of @jest/transform
        Depends on vulnerable versions of jest-runtime
        node_modules/jest-runner
          jest-config  >=25.1.0
          Depends on vulnerable versions of babel-jest
          Depends on vulnerable versions of jest-circus
          Depends on vulnerable versions of jest-runner
          node_modules/jest-config
            create-jest  >=29.7.0
            Depends on vulnerable versions of jest-config
            node_modules/create-jest
        jest-runtime  >=25.1.0
        Depends on vulnerable versions of @jest/globals
        Depends on vulnerable versions of @jest/transform
        Depends on vulnerable versions of jest-snapshot
        node_modules/jest-runtime
          jest-circus  >=25.2.4
          Depends on vulnerable versions of @jest/expect
          Depends on vulnerable versions of jest-runtime
          Depends on vulnerable versions of jest-snapshot
          node_modules/jest-circus
        jest-snapshot  >=27.0.0-next.0
        Depends on vulnerable versions of @jest/transform
        node_modules/jest-snapshot
          @jest/expect  *
          Depends on vulnerable versions of jest-snapshot
          node_modules/@jest/expect
            @jest/globals  >=28.0.0-alpha.0
            Depends on vulnerable versions of @jest/expect
            node_modules/@jest/globals
          jest-resolve-dependencies  >=27.0.0-next.0
          Depends on vulnerable versions of jest-snapshot
          node_modules/jest-resolve-dependencies
      babel-jest  >=25.1.0
      Depends on vulnerable versions of @jest/transform
      Depends on vulnerable versions of babel-plugin-istanbul
      node_modules/babel-jest
        @vue/vue3-jest  *
        Depends on vulnerable versions of babel-jest
        Depends on vulnerable versions of jest
        node_modules/@vue/vue3-jest

20 vulnerabilities (1 low, 19 moderate)

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

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

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

--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: undefined,
npm WARN EBADENGINE   required: { npm: '>=10', node: '>=20' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-design-tokens@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.6.0',
npm WARN EBADENGINE   required: { node: '>=20.20.2', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'npm-run-all2@8.0.4',
npm WARN EBADENGINE   required: { node: '^20.5.0 || >=22.0.0', npm: '>= 10' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 1275 packages, and audited 1276 packages in 23s

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

20 vulnerabilities (1 low, 19 moderate)

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

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

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

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeOverview.test.js
PASS modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingDialog.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/components/NoEditsDisplay.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/components/ImpactVue.test.js
PASS modules/vue-components/CScoreCard.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraise.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/PersonalizedPraiseSettingsForm.test.js
PASS modules/vue-components/CScoreCards.test.js
PASS modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/ReviseToneOnboarding.test.js
PASS modules/ext.growthExperiments.StructuredTask.PreEdit/revisetone/QuizPill.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/components/TrendChart.test.js
PASS modules/ext.growthExperiments.DataStore/NewcomerTasksStore.test.js
PASS modules/ext.growthExperiments.MentorDashboard/store/modules/mentees.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/components/ErrorDisplay.test.js
PASS modules/vue-components/MultiPane.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/MenteeOverview/MenteeFiltersForm.test.js
PASS modules/vue-components/CText.test.js
PASS modules/utils/SimpleLevenshtein.test.js
PASS modules/ext.growthExperiments.StructuredTask.PreEdit/common/OnboardingStepper.test.js
PASS modules/ext.growthExperiments.MentorDashboard/components/DataTable/DataTableCellValue.test.js
PASS modules/ext.growthExperiments.Account/WE18ExperimentV1.test.js
PASS modules/ext.growthExperiments.Homepage.Impact/composables/useUserImpact.test.js

Test Suites: 22 passed, 22 total
Tests:       82 passed, 82 total
Snapshots:   14 passed, 14 total
Time:        7.368 s
Ran all test suites.
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @vue/server-renderer@3.3.4
npm WARN Found: vue@3.2.37
npm WARN node_modules/vue
npm WARN   dev vue@"3.2.37" from the root project
npm WARN   9 more (vue-demi, @vitejs/plugin-vue, @vue/server-renderer, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer vue@"3.3.4" from @vue/server-renderer@3.3.4
npm WARN node_modules/@vue/test-utils/node_modules/@vue/server-renderer
npm WARN   optional @vue/server-renderer@"^3.0.1" from @vue/test-utils@2.3.2
npm WARN   node_modules/@vue/test-utils
npm WARN 
npm WARN Conflicting peer dependency: vue@3.3.4
npm WARN node_modules/vue
npm WARN   peer vue@"3.3.4" from @vue/server-renderer@3.3.4
npm WARN   node_modules/@vue/test-utils/node_modules/@vue/server-renderer
npm WARN     optional @vue/server-renderer@"^3.0.1" from @vue/test-utils@2.3.2
npm WARN     node_modules/@vue/test-utils
npm WARN deprecated natives@1.1.6: This module relies on Node.js's internals and will break at some point. Do not use it, and update to graceful-fs@4.x.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
--- stdout ---

> test
> npm-run-all test:*


> test:types
> tsc --noEmit && tsc --noEmit -p cypress/tsconfig.json


> test:eslint
> eslint --cache .


/src/repo/cypress/e2e/ReviseTone.cy.ts
  81:1  warning  This line has a length of 106. Maximum allowed is 100  max-len

/src/repo/modules/ext.growthExperiments.Homepage.SuggestedEdits/MatchModeSelectWidget.js
  23:20  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ext.growthExperiments.MentorDashboard/MentorTools/MentorTools.js
  55:4  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ext.growthExperiments.PostEdit/PostEditPanel.js
  50:20  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  54:20  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ext.growthExperiments.StructuredTask.desktop/addlink/RecommendedLinkToolbarDialogDesktop.js
  199:21  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ext.growthExperiments.StructuredTask/addimage/ceRecommendedImageNode.js
  59:18  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

/src/repo/modules/ui-components/CollapsibleDrawer.js
  112:22  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget

✖ 8 problems (0 errors, 8 warnings)


> test:stylelint
> stylelint --cache "**/*.{css,vue,less}"


> test:i18n
> node tests/banana-checker.js


> test:jest
> jest

---------------------------------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------
File                                                                 | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                                                     
---------------------------------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------
All files                                                            |    44.5 |    34.83 |   33.58 |    44.7 |                                                                                       
 ext.growthExperiments.Account                                       |   12.63 |     8.82 |   16.66 |   12.76 |                                                                                       
  ConfirmEmail.js                                                    |       0 |        0 |       0 |       0 | 1-36                                                                                  
  ULSTagMultiselectWidget.js                                         |       0 |        0 |       0 |       0 | 1-115                                                                                 
  WE18ExperimentV1.js                                                |    92.3 |       75 |     100 |    92.3 | 5                                                                                     
  WelcomeSurvey.js                                                   |       0 |        0 |       0 |       0 | 1-47                                                                                  
  index.js                                                           |       0 |        0 |       0 |       0 | 1-14                                                                                  
 ext.growthExperiments.Homepage.Impact                               |       3 |        0 |       0 |    3.03 |                                                                                       
  App.vue                                                            |       0 |        0 |       0 |       0 | 3-105                                                                                 
  constants.js                                                       |     100 |      100 |     100 |     100 |                                                                                       
  init.js                                                            |       0 |        0 |       0 |       0 | 1-156                                                                                 
 ext.growthExperiments.Homepage.Impact/components                    |   71.38 |     67.9 |   67.39 |   71.88 |                                                                                       
  ArticlesList.vue                                                   |   77.77 |      100 |      20 |   77.77 | 18,41-46                                                                              
  ArticlesListItem.vue                                               |   46.15 |        0 |       0 |      50 | 43-46,76-158                                                                          
  ErrorDisplay.vue                                                   |     100 |      100 |     100 |     100 |                                                                                       
  ErrorDisplaySummary.vue                                            |       0 |      100 |       0 |       0 | 3-58                                                                                  
  Impact.vue                                                         |     100 |       85 |     100 |     100 | 106,125-131                                                                           
  ImpactSummary.vue                                                  |       0 |        0 |       0 |       0 | 1-48                                                                                  
  InfoBoxes.vue                                                      |       0 |        0 |       0 |       0 | 1-83                                                                                  
  LayoutWrapper.vue                                                  |       0 |      100 |       0 |       0 | 8-34                                                                                  
  NoEditsDisplay.vue                                                 |   96.07 |     86.2 |     100 |   96.07 | 60-61                                                                                 
  RecentActivity.vue                                                 |      95 |       50 |     100 |      95 | 41,73                                                                                 
  StreakGraph.vue                                                    |   95.23 |      100 |    87.5 |   95.23 | 25                                                                                    
  TrendChart.vue                                                     |     100 |      100 |     100 |     100 |                                                                                       
 ext.growthExperiments.Homepage.Impact/composables                   |   73.21 |    72.72 |   78.94 |   71.69 |                                                                                       
  useMWRestApi.js                                                    |       0 |        0 |       0 |       0 | 1-35                                                                                  
  useUserImpact.js                                                   |   97.61 |    88.88 |     100 |   97.43 | 93                                                                                    
 ext.growthExperiments.MentorDashboard                               |       0 |        0 |       0 |       0 |                                                                                       
  Discovery.js                                                       |       0 |        0 |       0 |       0 | 2-12                                                                                  
  PersonalizedPraisePostEdit.js                                      |       0 |        0 |       0 |       0 | 1-18                                                                                  
  init.js                                                            |       0 |        0 |       0 |       0 | 1-53                                                                                  
 ext.growthExperiments.MentorDashboard/MentorTools                   |       0 |        0 |       0 |       0 |                                                                                       
  AwaySettingsDialog.js                                              |       0 |        0 |       0 |       0 | 1-108                                                                                 
  MentorMessageChangeDialog.js                                       |       0 |        0 |       0 |       0 | 10-103                                                                                
  MentorTools.js                                                     |       0 |        0 |       0 |       0 | 2-223                                                                                 
  MentorToolsEllipsisMenu.js                                         |       0 |        0 |       0 |       0 | 1-66                                                                                  
 ext.growthExperiments.MentorDashboard/components/CNumberInput       |   66.66 |    55.55 |   23.07 |   65.51 |                                                                                       
  CNumberInput.vue                                                   |   66.66 |    55.55 |   23.07 |   65.51 | 99,102,105,108,129,148-164                                                            
 ext.growthExperiments.MentorDashboard/components/DataTable          |      47 |        0 |    5.26 |   52.38 |                                                                                       
  DataTable.vue                                                      |   32.25 |        0 |       0 |   39.21 | 37-89,100-103,121-164                                                                 
  DataTableCellLink.vue                                              |      75 |      100 |       0 |      75 | 36-41                                                                                 
  DataTableCellValue.vue                                             |     100 |      100 |     100 |     100 |                                                                                       
  DataTableLimit.vue                                                 |      50 |        0 |       0 |   53.33 | 24-31,49-55                                                                           
  DataTablePagination.vue                                            |      50 |        0 |       0 |      50 | 31-38,53-79                                                                           
 ext.growthExperiments.MentorDashboard/components/HorizontalDivider  |     100 |      100 |     100 |     100 |                                                                                       
  HorizontalDivider.vue                                              |     100 |      100 |     100 |     100 |                                                                                       
 ext.growthExperiments.MentorDashboard/components/MenteeOverview     |   66.52 |    41.46 |   37.36 |   66.81 |                                                                                       
  DataTableCellMentee.vue                                            |   60.86 |        0 |       0 |   60.86 | 27-45,74-82                                                                           
  LegendBox.vue                                                      |   73.33 |      100 |       0 |   73.33 | 21,43-45                                                                              
  MenteeFilters.vue                                                  |   40.74 |        0 |       0 |   40.74 | 28-64,82-89                                                                           
  MenteeFiltersForm.vue                                              |   75.47 |       50 |   56.52 |   75.47 | 85-103,158-173,189,204,217                                                            
  MenteeOverview.vue                                                 |    72.5 |    58.82 |    52.5 |   73.41 | 27-99,179-186,218-230,300-325                                                         
  MenteeSearch.vue                                                   |   45.45 |        0 |       0 |   45.45 | 22-43,60-66                                                                           
  NoResults.vue                                                      |   84.61 |        0 |       0 |   84.61 | 53-54                                                                                 
 ext.growthExperiments.MentorDashboard/components/PersonalizedPraise |   56.65 |    48.48 |   25.58 |   57.39 |                                                                                       
  NoResults.vue                                                      |     100 |      100 |     100 |     100 |                                                                                       
  PersonalizedPraise.vue                                             |   81.25 |    91.66 |   58.82 |   81.25 | 65-80,123,138-148                                                                     
  PersonalizedPraisePagination.vue                                   |   45.45 |        0 |       0 |   45.45 | 33-43,58-92                                                                           
  PersonalizedPraiseSettings.vue                                     |   68.96 |       50 |   33.33 |   68.96 | 44-54,78,90-100                                                                       
  PersonalizedPraiseSettingsForm.vue                                 |   70.73 |    68.18 |   44.44 |   70.73 | 67-70,88,144-164,180-185,200,218                                                      
  SkipMenteeDialog.vue                                               |   26.31 |        0 |       0 |   28.57 | 34-70,87-136                                                                          
  UserCard.vue                                                       |   34.04 |        0 |       0 |   34.04 | 33-123,147-172                                                                        
 ext.growthExperiments.MentorDashboard/logger                        |       0 |        0 |       0 |       0 |                                                                                       
  Logger.js                                                          |       0 |        0 |       0 |       0 | 5-41                                                                                  
 ext.growthExperiments.MentorDashboard/plugins                       |       0 |        0 |       0 |       0 |                                                                                       
  logger.js                                                          |       0 |        0 |       0 |       0 | 9-15                                                                                  
 ext.growthExperiments.MentorDashboard/store                         |   26.66 |        0 |    6.89 |   26.96 |                                                                                       
  MenteeOverviewApi.js                                               |   28.91 |        0 |    6.89 |   29.26 | 32,37-52,56-71,83,87,91,95,99,103-110,115-118,122-128,134-145,150-161,167-178,185-186 
  index.js                                                           |       0 |      100 |     100 |       0 | 1-16                                                                                  
 ext.growthExperiments.MentorDashboard/store/modules                 |   44.56 |    49.23 |   25.39 |      44 |                                                                                       
  mentees-search.js                                                  |       0 |        0 |       0 |       0 | 2-50                                                                                  
  mentees.js                                                         |   66.36 |    67.39 |   41.66 |   66.01 | 31,61-63,71-74,107,121,128,144,147,150,200-201,217,226,235-243,253-286                
  praiseworthy-mentees.js                                            |       0 |        0 |       0 |       0 | 1-101                                                                                 
  user-preferences.js                                                |   52.94 |       50 |      20 |   52.94 | 12,21,27-32,41                                                                        
 ext.growthExperiments.MentorDashboard/validators                    |     100 |      100 |     100 |     100 |                                                                                       
  align-text.validator.js                                            |     100 |      100 |     100 |     100 |                                                                                       
 ext.growthExperiments.StructuredTask.PreEdit                        |       0 |        0 |       0 |       0 |                                                                                       
  App.vue                                                            |       0 |      100 |       0 |       0 | 1-31                                                                                  
  StructuredTaskOnboardingContent.js                                 |       0 |        0 |       0 |       0 | 2-46                                                                                  
  StructuredTaskOnboardingDialog.js                                  |       0 |        0 |       0 |       0 | 1-237                                                                                 
  index.js                                                           |       0 |        0 |       0 |       0 | 1-282                                                                                 
 ext.growthExperiments.StructuredTask.PreEdit/addimage               |       0 |        0 |       0 |       0 |                                                                                       
  AddImageOnboardingContent.js                                       |       0 |        0 |       0 |       0 | 1-166                                                                                 
 ext.growthExperiments.StructuredTask.PreEdit/addlink                |       0 |        0 |       0 |       0 |                                                                                       
  AddLinkOnboardingContent.js                                        |       0 |        0 |       0 |       0 | 1-156                                                                                 
 ext.growthExperiments.StructuredTask.PreEdit/addsectionimage        |       0 |        0 |       0 |       0 |                                                                                       
  AddSectionImageOnboardingContent.js                                |       0 |        0 |       0 |       0 | 1-79                                                                                  
 ext.growthExperiments.StructuredTask.PreEdit/common                 |   82.56 |    62.31 |   78.37 |   90.62 |                                                                                       
  OnboardingDialog.vue                                               |    92.5 |    91.66 |   82.75 |    92.3 | 123,153-154,221-223,235                                                               
  OnboardingStepper.vue                                              |   55.17 |     30.3 |    62.5 |   83.33 | 40-41,44                                                                              
 ext.growthExperiments.StructuredTask.PreEdit/dev/demos              |       0 |        0 |       0 |       0 |                                                                                       
  CommonComponentsDemo.vue                                           |       0 |        0 |       0 |       0 | 1-93                                                                                  
  ReviseToneQuizPillDemo.vue                                         |       0 |        0 |       0 |       0 | 4-63                                                                                  
 ext.growthExperiments.StructuredTask.PreEdit/revisetone             |   64.89 |    59.32 |   41.86 |   65.36 |                                                                                       
  NumberIcon.vue                                                     |     100 |      100 |     100 |     100 |                                                                                       
  QuizGame.vue                                                       |   57.69 |      100 |       0 |   57.69 | 20-40,74-83                                                                           
  QuizPill.vue                                                       |   98.27 |    94.11 |   91.66 |   98.14 | 146                                                                                   
  ReviseToneOnboarding.vue                                           |   56.06 |    16.66 |      20 |   59.67 | 12-22,52,59,64,71,93-98,128-156                                                       
  ReviseToneQuizLauncher.js                                          |       0 |        0 |       0 |       0 | 1-60                                                                                  
 utils                                                               |   24.09 |    13.11 |   21.21 |   22.22 |                                                                                       
  HelpPanelLogger.js                                                 |       0 |        0 |       0 |       0 | 7-238                                                                                 
  IconUtils.js                                                       |       0 |        0 |       0 |       0 | 1-30                                                                                  
  SimpleLevenshtein.js                                               |     100 |      100 |     100 |     100 |                                                                                       
  Utils.js                                                           |   18.18 |    13.33 |      25 |   18.18 | 12-72,95-155,183-186                                                                  
  filters.js                                                         |       0 |      100 |       0 |       0 | 14-17                                                                                 
 vue-components                                                      |   77.49 |     67.5 |   68.91 |   78.24 |                                                                                       
  CList.vue                                                          |   53.33 |        0 |   33.33 |   53.33 | 22-30                                                                                 
  CListItem.vue                                                      |   85.71 |      100 |       0 |   85.71 | 21                                                                                    
  CScoreCard.vue                                                     |   93.33 |    78.57 |   77.77 |    93.1 | 139-141                                                                               
  CScoreCards.vue                                                    |   56.66 |    56.25 |   54.83 |   56.66 | 98-101,112,130-193,199,262-292,337-344                                                
  CSparkline.vue                                                     |   81.08 |       50 |      50 |    90.9 | 63-67,76                                                                              
  CText.vue                                                          |     100 |      100 |     100 |     100 |                                                                                       
  MultiPane.vue                                                      |   92.64 |    83.33 |     100 |   92.18 | 98,110,117,124,127                                                                    
 vue-components/directives                                           |       0 |        0 |       0 |       0 |                                                                                       
  click-outside.directive.js                                         |       0 |        0 |       0 |       0 | 1-25                                                                                  
 vue-components/plugins                                              |       0 |      100 |       0 |       0 |                                                                                       
  logger.js                                                          |       0 |      100 |       0 |       0 | 10-20                                                                                 
---------------------------------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------

> test:doc
> cd documentation/frontend && npm ci && npm run test


added 319 packages, and audited 320 packages in 5s

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

22 vulnerabilities (1 low, 10 moderate, 7 high, 4 critical)

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

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

Run `npm audit` for details.

> growthexperiments-docs@1.0.0 test
> npm run lint && vitest run --coverage


> growthexperiments-docs@1.0.0 lint
> eslint .


 RUN  v0.32.0 /src/repo/documentation/frontend
      Coverage enabled with v8

 ✓ components/FilterDialog.test.js  (5 tests) 395ms
 ✓ components/MultiPane.test.js  (10 tests) 319ms
 ✓ components/OnboardingDialog.test.js  (14 tests) 769ms
 ✓ components/OnboardingStepper.test.js  (5 tests) 77ms
 ✓ components/AddLinkDialog.test.js  (4 tests) 291ms
 ✓ component-demos/example-component/ExampleComponent.test.js  (2 tests) 75ms
 ✓ store/example-store/counter.test.js  (1 test) 8ms

 Test Files  7 passed (7)
      Tests  41 passed (41)
   Start at  15:20:48
   Duration  7.05s (transform 455ms, setup 416ms, collect 2.44s, tests 1.93s, environment 4.86s, prepare 1.01s)

 % Coverage report from v8
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   78.16 |    91.17 |   63.88 |   78.16 |                   
 ...mageDialog.vue |       0 |        0 |       0 |       0 | 1-291             
 AddLinkDialog.vue |     100 |      100 |      20 |     100 |                   
 FilterDialog.vue  |     100 |      100 |      60 |     100 |                   
 MultiPane.vue     |   97.79 |    87.87 |     100 |   97.79 | 105,112,120-121   
 ...dingDialog.vue |   98.58 |    95.45 |   57.14 |   98.58 | 215-216,247-249   
 ...ingStepper.vue |     100 |      100 |     100 |     100 |                   
-------------------|---------|----------|---------|---------|-------------------

--- end ---
{"1120793": {"source": 1120793, "name": "@babel/core", "dependency": "@babel/core", "title": "@babel/core: Arbitrary File Read via sourceMappingURL Comment", "url": "https://github.com/advisories/GHSA-4x5r-pxfx-6jf8", "severity": "low", "cwe": ["CWE-22", "CWE-200"], "cvss": {"score": 3.2, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N"}, "range": "<=7.29.0"}}
Upgrading n:@babel/core from 7.25.2 -> 7.29.7
{}
{}
{}
{}
{"1120680": {"source": 1120680, "name": "esbuild", "dependency": "esbuild", "title": "esbuild allows arbitrary file read when running the development server on Windows", "url": "https://github.com/advisories/GHSA-g7r4-m6w7-qqqr", "severity": "low", "cwe": ["CWE-22"], "cvss": {"score": 2.5, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"}, "range": ">=0.27.3 <0.28.1"}}
{"1120743": {"source": 1120743, "name": "form-data", "dependency": "form-data", "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames", "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx", "severity": "high", "cwe": ["CWE-93"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=4.0.0 <4.0.6"}}
Upgrading n:form-data from 4.0.5 -> 4.0.6
{}
{}
{}
{}
{}
{}
{"1120422": {"source": 1120422, "name": "shell-quote", "dependency": "shell-quote", "title": "shell-quote quote() does not escape newlines in object .op values", "url": "https://github.com/advisories/GHSA-w7jw-789q-3m8p", "severity": "critical", "cwe": ["CWE-77", "CWE-78"], "cvss": {"score": 8.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"}, "range": ">=1.1.0 <=1.8.3"}}
Upgrading n:shell-quote from 1.8.2 -> 1.8.4
{"1120785": {"source": 1120785, "name": "vite", "dependency": "vite", "title": "launch-editor: NTLMv2 hash disclosure via UNC path handling on Windows", "url": "https://github.com/advisories/GHSA-v6wh-96g9-6wx3", "severity": "moderate", "cwe": ["CWE-73", "CWE-522"], "cvss": {"score": 0, "vectorString": null}, "range": ">=7.0.0 <=7.3.4"}, "1120790": {"source": 1120790, "name": "vite", "dependency": "vite", "title": "vite: `server.fs.deny` bypass on Windows alternate paths", "url": "https://github.com/advisories/GHSA-fx2h-pf6j-xcff", "severity": "high", "cwe": ["CWE-22", "CWE-200"], "cvss": {"score": 0, "vectorString": null}, "range": ">=7.0.0 <=7.3.4"}}
Upgrading n:vite from 7.3.2, ^7.1.6 -> 7.3.5, ^7.1.6
{"1120730": {"source": 1120730, "name": "ws", "dependency": "ws", "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks", "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p", "severity": "high", "cwe": ["CWE-400", "CWE-770"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=8.0.0 <8.21.0"}}
Upgrading n:ws from 8.20.1 -> 8.21.0
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json

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

* stylelint-config-wikimedia: 0.18.0 → 0.19.2
  The following rules are failing and were disabled:
  * declaration-property-value-keyword-no-deprecated
  * media-type-no-deprecated
  * nesting-selector-no-missing-scoping-root
  * no-invalid-position-declaration
  * property-no-deprecated
  The following rules no longer exist and were removed:
  * media-type-no-deprecated
  * nesting-selector-no-missing-scoping-root
  * no-invalid-position-declaration
  * property-no-deprecated

* @wikimedia/codex: 2.4.0 → 2.6.0
* @wikimedia/codex-design-tokens: 2.4.0 → 2.6.0
* @babel/core: 7.25.2 → 7.29.7
  * https://github.com/advisories/GHSA-4x5r-pxfx-6jf8
* form-data: 4.0.5 → 4.0.6
  * https://github.com/advisories/GHSA-hmw2-7cc7-3qxx
* shell-quote: 1.8.2 → 1.8.4
  * https://github.com/advisories/GHSA-w7jw-789q-3m8p
* vite: 7.3.2, ^7.1.6 → 7.3.5, ^7.1.6
  * https://github.com/advisories/GHSA-fx2h-pf6j-xcff
  * https://github.com/advisories/GHSA-v6wh-96g9-6wx3
* ws: 8.20.1 → 8.21.0
  * https://github.com/advisories/GHSA-96hv-2xvq-fx4p

$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmpfb4hij_u
--- stdout ---
[master 283da33] build: Updating npm dependencies
 8 files changed, 940 insertions(+), 574 deletions(-)

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

* stylelint-config-wikimedia: 0.18.0 → 0.19.2
  The following rules are failing and were disabled:
  * declaration-property-value-keyword-no-deprecated
  * media-type-no-deprecated
  * nesting-selector-no-missing-scoping-root
  * no-invalid-position-declaration
  * property-no-deprecated
  The following rules no longer exist and were removed:
  * media-type-no-deprecated
  * nesting-selector-no-missing-scoping-root
  * no-invalid-position-declaration
  * property-no-deprecated

* @wikimedia/codex: 2.4.0 → 2.6.0
* @wikimedia/codex-design-tokens: 2.4.0 → 2.6.0
* @babel/core: 7.25.2 → 7.29.7
  * https://github.com/advisories/GHSA-4x5r-pxfx-6jf8
* form-data: 4.0.5 → 4.0.6
  * https://github.com/advisories/GHSA-hmw2-7cc7-3qxx
* shell-quote: 1.8.2 → 1.8.4
  * https://github.com/advisories/GHSA-w7jw-789q-3m8p
* vite: 7.3.2, ^7.1.6 → 7.3.5, ^7.1.6
  * https://github.com/advisories/GHSA-fx2h-pf6j-xcff
  * https://github.com/advisories/GHSA-v6wh-96g9-6wx3
* ws: 8.20.1 → 8.21.0
  * https://github.com/advisories/GHSA-96hv-2xvq-fx4p

Change-Id: I9c470cb03c2b7b4730841863e700202b0d656ec6
---
 .stylelintrc.json                             |    3 +-
 .../HelpPanelProcessDialog.less               |    2 +-
 .../PersonalizedPraise.test.js.snap           |    7 +-
 ...ersonalizedPraiseSettingsForm.test.js.snap |    2 +-
 .../__snapshots__/CScoreCard.test.js.snap     |   11 +-
 .../__snapshots__/CScoreCards.test.js.snap    |   44 +-
 package-lock.json                             | 1439 ++++++++++-------
 package.json                                  |    6 +-
 8 files changed, 940 insertions(+), 574 deletions(-)

diff --git a/.stylelintrc.json b/.stylelintrc.json
index 95c5826..d009932 100644
--- a/.stylelintrc.json
+++ b/.stylelintrc.json
@@ -7,6 +7,7 @@
 		"declaration-property-unit-disallowed-list": null,
 		"@stylistic/declaration-colon-space-after": null,
 		"@stylistic/indentation": null,
-		"declaration-no-important": null
+		"declaration-no-important": null,
+		"declaration-property-value-keyword-no-deprecated": null
 	}
 }
diff --git a/modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less b/modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less
index fbefede..a38d9be 100644
--- a/modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less
+++ b/modules/ext.growthExperiments.Help/HelpPanelProcessDialog.less
@@ -108,7 +108,7 @@
 
 		body.rtl & {
 			background:
- linear-gradient( @headBgColor, @headBgColor ) -200% ~'/' 50% 100%  no-repeat,linear-gradient( @headBgColor, @headBgColor ) -100% ~'/' 50% 100% no-repeat;
+ linear-gradient( @headBgColor, @headBgColor ) -200% ~'/' 50% 100% no-repeat,linear-gradient( @headBgColor, @headBgColor ) -100% ~'/' 50% 100% no-repeat;
 		}
 	}
 
diff --git a/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraise.test.js.snap b/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraise.test.js.snap
index c231301..226347d 100644
--- a/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraise.test.js.snap
+++ b/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraise.test.js.snap
@@ -15,7 +15,7 @@ exports[`PersonalizedPraise NoResult when no mentees 1`] = `
     <button
       aria-label="growthexperiments-mentor-dashboard-personalized-praise-info-icon-label"
       aria-pressed="false"
-      class="cdx-toggle-button cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-PersonalizedPraise__info-button"
+      class="cdx-toggle-button cdx-toggle-button--size-medium cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-PersonalizedPraise__info-button"
       type="button"
     >
       
@@ -46,12 +46,14 @@ exports[`PersonalizedPraise NoResult when no mentees 1`] = `
 			-->
     <cdx-popover-stub
       closebuttonlabel="Close"
+      hidebackdrop="false"
       icon="info-icon"
       open="false"
       placement="bottom-start"
       renderinplace="true"
       stackedactions="false"
       title="growthexperiments-mentor-dashboard-personalized-praise-info-headline"
+      usebottomsheet="false"
       useclosebutton="true"
     />
   </div>
@@ -120,6 +122,7 @@ exports[`PersonalizedPraise full data when has mentees 1`] = `
       disabled="false"
       modelvalue="false"
       quiet="true"
+      size="medium"
     />
     <!--
 				CdxPopover uses the floating-ui library in a way that causes infinite recursion when
@@ -130,12 +133,14 @@ exports[`PersonalizedPraise full data when has mentees 1`] = `
 			-->
     <cdx-popover-stub
       closebuttonlabel="Close"
+      hidebackdrop="false"
       icon="info-icon"
       open="false"
       placement="bottom-start"
       renderinplace="true"
       stackedactions="false"
       title="growthexperiments-mentor-dashboard-personalized-praise-info-headline"
+      usebottomsheet="false"
       useclosebutton="true"
     />
   </div>
diff --git a/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraiseSettingsForm.test.js.snap b/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraiseSettingsForm.test.js.snap
index 6e2aa01..a7affde 100644
--- a/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraiseSettingsForm.test.js.snap
+++ b/modules/ext.growthExperiments.MentorDashboard/components/PersonalizedPraise/__snapshots__/PersonalizedPraiseSettingsForm.test.js.snap
@@ -57,7 +57,7 @@ exports[`PersonalizedPraiseSettingsForm it renders with correct defaults 1`] = `
               <!--v-if-->
               <g>
                 <path
-                  d="m17.5 4.75-7.5 7.5-7.5-7.5L1 6.25l9 9 9-9z"
+                  d="m16.707 8.017-6 5.983H9.293l-6-5.983 1.414-1.414L10 11.896l5.293-5.293z"
                 />
               </g>
             </svg>
diff --git a/modules/vue-components/__snapshots__/CScoreCard.test.js.snap b/modules/vue-components/__snapshots__/CScoreCard.test.js.snap
index 8a05a06..9e31cf6 100644
--- a/modules/vue-components/__snapshots__/CScoreCard.test.js.snap
+++ b/modules/vue-components/__snapshots__/CScoreCard.test.js.snap
@@ -85,7 +85,7 @@ exports[`ScoreCard renders correctly info slot 1`] = `
       <button
         aria-label="the label for the info icon"
         aria-pressed="false"
-        class="cdx-toggle-button cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
+        class="cdx-toggle-button cdx-toggle-button--size-medium cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
         type="button"
       >
         
@@ -116,6 +116,15 @@ exports[`ScoreCard renders correctly info slot 1`] = `
 				-->
       <!--teleport start-->
       <!--v-if-->
+      <transition-stub
+        appear="true"
+        css="true"
+        name="cdx-popover-floating"
+        persisted="false"
+      >
+        <!--v-if-->
+      </transition-stub>
+      <!--v-if-->
       <!--teleport end-->
     </span>
   </div>
diff --git a/modules/vue-components/__snapshots__/CScoreCards.test.js.snap b/modules/vue-components/__snapshots__/CScoreCards.test.js.snap
index dff7d5b..b7471fc 100644
--- a/modules/vue-components/__snapshots__/CScoreCards.test.js.snap
+++ b/modules/vue-components/__snapshots__/CScoreCards.test.js.snap
@@ -110,7 +110,7 @@ exports[`ScoreCards renders correctly with data 1`] = `
         <button
           aria-label="growthexperiments-homepage-impact-scores-thanks-info-label"
           aria-pressed="false"
-          class="cdx-toggle-button cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
+          class="cdx-toggle-button cdx-toggle-button--size-medium cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
           type="button"
         >
           
@@ -141,6 +141,15 @@ exports[`ScoreCards renders correctly with data 1`] = `
 				-->
         <!--teleport start-->
         <!--v-if-->
+        <transition-stub
+          appear="true"
+          css="true"
+          name="cdx-popover-floating"
+          persisted="false"
+        >
+          <!--v-if-->
+        </transition-stub>
+        <!--v-if-->
         <!--teleport end-->
       </span>
     </div>
@@ -238,7 +247,7 @@ exports[`ScoreCards renders correctly with data 1`] = `
         <button
           aria-label="growthexperiments-homepage-impact-scores-streak-info-label"
           aria-pressed="false"
-          class="cdx-toggle-button cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
+          class="cdx-toggle-button cdx-toggle-button--size-medium cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
           type="button"
         >
           
@@ -269,6 +278,15 @@ exports[`ScoreCards renders correctly with data 1`] = `
 				-->
         <!--teleport start-->
         <!--v-if-->
+        <transition-stub
+          appear="true"
+          css="true"
+          name="cdx-popover-floating"
+          persisted="false"
+        >
+          <!--v-if-->
+        </transition-stub>
+        <!--v-if-->
         <!--teleport end-->
       </span>
     </div>
@@ -386,7 +404,7 @@ exports[`ScoreCards renders correctly without data 1`] = `
         <button
           aria-label="growthexperiments-homepage-impact-scores-thanks-info-label"
           aria-pressed="false"
-          class="cdx-toggle-button cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
+          class="cdx-toggle-button cdx-toggle-button--size-medium cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
           type="button"
         >
           
@@ -417,6 +435,15 @@ exports[`ScoreCards renders correctly without data 1`] = `
 				-->
         <!--teleport start-->
         <!--v-if-->
+        <transition-stub
+          appear="true"
+          css="true"
+          name="cdx-popover-floating"
+          persisted="false"
+        >
+          <!--v-if-->
+        </transition-stub>
+        <!--v-if-->
         <!--teleport end-->
       </span>
     </div>
@@ -514,7 +541,7 @@ exports[`ScoreCards renders correctly without data 1`] = `
         <button
           aria-label="growthexperiments-homepage-impact-scores-streak-info-label"
           aria-pressed="false"
-          class="cdx-toggle-button cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
+          class="cdx-toggle-button cdx-toggle-button--size-medium cdx-toggle-button--quiet cdx-toggle-button--toggled-off cdx-toggle-button--icon-only ext-growthExperiments-ScoreCards__info-button"
           type="button"
         >
           
@@ -545,6 +572,15 @@ exports[`ScoreCards renders correctly without data 1`] = `
 				-->
         <!--teleport start-->
         <!--v-if-->
+        <transition-stub
+          appear="true"
+          css="true"
+          name="cdx-popover-floating"
+          persisted="false"
+        >
+          <!--v-if-->
+        </transition-stub>
+        <!--v-if-->
         <!--teleport end-->
       </span>
     </div>
diff --git a/package-lock.json b/package-lock.json
index d0191e4..95716e1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,8 +15,8 @@
 				"@vitejs/plugin-vue": "^6.0.1",
 				"@vue/test-utils": "^2.4.6",
 				"@vue/vue3-jest": "^29.2.6",
-				"@wikimedia/codex": "2.4.0",
-				"@wikimedia/codex-design-tokens": "2.4.0",
+				"@wikimedia/codex": "2.6.0",
+				"@wikimedia/codex-design-tokens": "2.6.0",
 				"@wikimedia/types-wikimedia": "^0.4.4",
 				"api-testing": "1.7.3",
 				"cypress": "^15.14.0",
@@ -45,7 +45,7 @@
 				"rollup": "3.30.0",
 				"stylelint": "^16.19.1",
 				"stylelint-config-recommended-vue": "1.4.0",
-				"stylelint-config-wikimedia": "0.18.0",
+				"stylelint-config-wikimedia": "0.19.2",
 				"svgo": "4.0.1",
 				"typescript": "^4.9.5",
 				"vite": "^7.1.6",
@@ -57,26 +57,13 @@
 				"npm": ">=10"
 			}
 		},
-		"node_modules/@ampproject/remapping": {
-			"version": "2.3.0",
-			"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
-			"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
-			"dev": true,
-			"dependencies": {
-				"@jridgewell/gen-mapping": "^0.3.5",
-				"@jridgewell/trace-mapping": "^0.3.24"
-			},
-			"engines": {
-				"node": ">=6.0.0"
-			}
-		},
 		"node_modules/@babel/code-frame": {
-			"version": "7.29.0",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
-			"integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
+			"integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-validator-identifier": "^7.28.5",
+				"@babel/helper-validator-identifier": "^7.29.7",
 				"js-tokens": "^4.0.0",
 				"picocolors": "^1.1.1"
 			},
@@ -85,31 +72,30 @@
 			}
 		},
 		"node_modules/@babel/compat-data": {
-			"version": "7.28.4",
-			"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz",
-			"integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz",
+			"integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/core": {
-			"version": "7.25.2",
-			"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz",
-			"integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==",
-			"dev": true,
-			"dependencies": {
-				"@ampproject/remapping": "^2.2.0",
-				"@babel/code-frame": "^7.24.7",
-				"@babel/generator": "^7.25.0",
-				"@babel/helper-compilation-targets": "^7.25.2",
-				"@babel/helper-module-transforms": "^7.25.2",
-				"@babel/helpers": "^7.25.0",
-				"@babel/parser": "^7.25.0",
-				"@babel/template": "^7.25.0",
-				"@babel/traverse": "^7.25.2",
-				"@babel/types": "^7.25.2",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz",
+			"integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==",
+			"dev": true,
+			"dependencies": {
+				"@babel/code-frame": "^7.29.7",
+				"@babel/generator": "^7.29.7",
+				"@babel/helper-compilation-targets": "^7.29.7",
+				"@babel/helper-module-transforms": "^7.29.7",
+				"@babel/helpers": "^7.29.7",
+				"@babel/parser": "^7.29.7",
+				"@babel/template": "^7.29.7",
+				"@babel/traverse": "^7.29.7",
+				"@babel/types": "^7.29.7",
+				"@jridgewell/remapping": "^2.3.5",
 				"convert-source-map": "^2.0.0",
 				"debug": "^4.1.0",
 				"gensync": "^1.0.0-beta.2",
@@ -125,13 +111,13 @@
 			}
 		},
 		"node_modules/@babel/generator": {
-			"version": "7.29.1",
-			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
-			"integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz",
+			"integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==",
 			"dev": true,
 			"dependencies": {
-				"@babel/parser": "^7.29.0",
-				"@babel/types": "^7.29.0",
+				"@babel/parser": "^7.29.7",
+				"@babel/types": "^7.29.7",
 				"@jridgewell/gen-mapping": "^0.3.12",
 				"@jridgewell/trace-mapping": "^0.3.28",
 				"jsesc": "^3.0.2"
@@ -154,14 +140,13 @@
 			}
 		},
 		"node_modules/@babel/helper-compilation-targets": {
-			"version": "7.27.2",
-			"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz",
-			"integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz",
+			"integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@babel/compat-data": "^7.27.2",
-				"@babel/helper-validator-option": "^7.27.1",
+				"@babel/compat-data": "^7.29.7",
+				"@babel/helper-validator-option": "^7.29.7",
 				"browserslist": "^4.24.0",
 				"lru-cache": "^5.1.1",
 				"semver": "^6.3.1"
@@ -228,11 +213,10 @@
 			}
 		},
 		"node_modules/@babel/helper-globals": {
-			"version": "7.28.0",
-			"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
-			"integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz",
+			"integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=6.9.0"
 			}
@@ -252,27 +236,27 @@
 			}
 		},
 		"node_modules/@babel/helper-module-imports": {
-			"version": "7.28.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
-			"integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz",
+			"integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==",
 			"dev": true,
 			"dependencies": {
-				"@babel/traverse": "^7.28.6",
-				"@babel/types": "^7.28.6"
+				"@babel/traverse": "^7.29.7",
+				"@babel/types": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-module-transforms": {
-			"version": "7.28.6",
-			"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
-			"integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz",
+			"integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-module-imports": "^7.28.6",
-				"@babel/helper-validator-identifier": "^7.28.5",
-				"@babel/traverse": "^7.28.6"
+				"@babel/helper-module-imports": "^7.29.7",
+				"@babel/helper-validator-identifier": "^7.29.7",
+				"@babel/traverse": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -354,29 +338,28 @@
 			}
 		},
 		"node_modules/@babel/helper-string-parser": {
-			"version": "7.27.1",
-			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
-			"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz",
+			"integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-validator-identifier": {
-			"version": "7.28.5",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
-			"integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
+			"integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
 			"dev": true,
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-validator-option": {
-			"version": "7.27.1",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
-			"integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz",
+			"integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=6.9.0"
 			}
@@ -397,25 +380,25 @@
 			}
 		},
 		"node_modules/@babel/helpers": {
-			"version": "7.27.1",
-			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz",
-			"integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz",
+			"integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/template": "^7.27.1",
-				"@babel/types": "^7.27.1"
+				"@babel/template": "^7.29.7",
+				"@babel/types": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/parser": {
-			"version": "7.29.3",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz",
-			"integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz",
+			"integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/types": "^7.29.0"
+				"@babel/types": "^7.29.7"
 			},
 			"bin": {
 				"parser": "bin/babel-parser.js"
@@ -1733,31 +1716,31 @@
 			}
 		},
 		"node_modules/@babel/template": {
-			"version": "7.28.6",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
-			"integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz",
+			"integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.28.6",
-				"@babel/parser": "^7.28.6",
-				"@babel/types": "^7.28.6"
+				"@babel/code-frame": "^7.29.7",
+				"@babel/parser": "^7.29.7",
+				"@babel/types": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/traverse": {
-			"version": "7.29.0",
-			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
-			"integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz",
+			"integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==",
 			"dev": true,
 			"dependencies": {
-				"@babel/code-frame": "^7.29.0",
-				"@babel/generator": "^7.29.0",
-				"@babel/helper-globals": "^7.28.0",
-				"@babel/parser": "^7.29.0",
-				"@babel/template": "^7.28.6",
-				"@babel/types": "^7.29.0",
+				"@babel/code-frame": "^7.29.7",
+				"@babel/generator": "^7.29.7",
+				"@babel/helper-globals": "^7.29.7",
+				"@babel/parser": "^7.29.7",
+				"@babel/template": "^7.29.7",
+				"@babel/types": "^7.29.7",
 				"debug": "^4.3.1"
 			},
 			"engines": {
@@ -1765,13 +1748,13 @@
 			}
 		},
 		"node_modules/@babel/types": {
-			"version": "7.29.0",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
-			"integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+			"version": "7.29.7",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz",
+			"integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==",
 			"dev": true,
 			"dependencies": {
-				"@babel/helper-string-parser": "^7.27.1",
-				"@babel/helper-validator-identifier": "^7.28.5"
+				"@babel/helper-string-parser": "^7.29.7",
+				"@babel/helper-validator-identifier": "^7.29.7"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -1783,6 +1766,62 @@
 			"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
 			"dev": true
 		},
+		"node_modules/@cacheable/memory": {
+			"version": "2.0.9",
+			"resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.9.tgz",
+			"integrity": "sha512-HdMx6DoGywB30vacDbBsITbIX4pgFqj1zsrV58jZBUw3klzkNoXhj7qOqAgledhxG7YZI5rBSJg7Zp8/VG0DuA==",
+			"dev": true,
+			"dependencies": {
+				"@cacheable/utils": "^2.4.1",
+				"@keyv/bigmap": "^1.3.1",
+				"hookified": "^1.15.1",
+				"keyv": "^5.6.0"
+			}
+		},
+		"node_modules/@cacheable/memory/node_modules/@keyv/bigmap": {
+			"version": "1.3.1",
+			"resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz",
+			"integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==",
+			"dev": true,
+			"dependencies": {
+				"hashery": "^1.4.0",
+				"hookified": "^1.15.0"
+			},
+			"engines": {
+				"node": ">= 18"
+			},
+			"peerDependencies": {
+				"keyv": "^5.6.0"
+			}
+		},
+		"node_modules/@cacheable/memory/node_modules/keyv": {
+			"version": "5.6.0",
+			"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz",
+			"integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==",
+			"dev": true,
+			"dependencies": {
+				"@keyv/serialize": "^1.1.1"
+			}
+		},
+		"node_modules/@cacheable/utils": {
+			"version": "2.4.1",
+			"resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.4.1.tgz",
+			"integrity": "sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==",
+			"dev": true,
+			"dependencies": {
+				"hashery": "^1.5.1",
+				"keyv": "^5.6.0"
+			}
+		},
+		"node_modules/@cacheable/utils/node_modules/keyv": {
+			"version": "5.6.0",
+			"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz",
+			"integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==",
+			"dev": true,
+			"dependencies": {
+				"@keyv/serialize": "^1.1.1"
+			}
+		},
 		"node_modules/@csstools/css-parser-algorithms": {
 			"version": "3.0.4",
 			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
@@ -1826,30 +1865,6 @@
 				"node": ">=18"
 			}
 		},
-		"node_modules/@csstools/media-query-list-parser": {
-			"version": "3.0.1",
-			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz",
-			"integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/csstools"
-				},
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/csstools"
-				}
-			],
-			"license": "MIT",
-			"engines": {
-				"node": ">=18"
-			},
-			"peerDependencies": {
-				"@csstools/css-parser-algorithms": "^3.0.1",
-				"@csstools/css-tokenizer": "^3.0.1"
-			}
-		},
 		"node_modules/@cypress/request": {
 			"version": "4.0.1",
 			"resolved": "https://registry.npmjs.org/@cypress/request/-/request-4.0.1.tgz",
@@ -2434,10 +2449,20 @@
 			}
 		},
 		"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz",
+			"integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -3692,6 +3717,16 @@
 				"@jridgewell/trace-mapping": "^0.3.24"
 			}
 		},
+		"node_modules/@jridgewell/remapping": {
+			"version": "2.3.5",
+			"resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+			"integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+			"dev": true,
+			"dependencies": {
+				"@jridgewell/gen-mapping": "^0.3.5",
+				"@jridgewell/trace-mapping": "^0.3.24"
+			}
+		},
 		"node_modules/@jridgewell/resolve-uri": {
 			"version": "3.1.2",
 			"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
@@ -3729,39 +3764,10 @@
 			}
 		},
 		"node_modules/@keyv/serialize": {
-			"version": "1.0.3",
-			"resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.0.3.tgz",
-			"integrity": "sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"buffer": "^6.0.3"
-			}
-		},
-		"node_modules/@keyv/serialize/node_modules/buffer": {
-			"version": "6.0.3",
-			"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
-			"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/feross"
-				},
-				{
-					"type": "patreon",
-					"url": "https://www.patreon.com/feross"
-				},
-				{
-					"type": "consulting",
-					"url": "https://feross.org/support"
-				}
-			],
-			"license": "MIT",
-			"dependencies": {
-				"base64-js": "^1.3.1",
-				"ieee754": "^1.2.1"
-			}
+			"version": "1.1.1",
+			"resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz",
+			"integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==",
+			"dev": true
 		},
 		"node_modules/@mdn/browser-compat-data": {
 			"version": "6.1.5",
@@ -4252,6 +4258,18 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
+		"node_modules/@sindresorhus/merge-streams": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
+			"integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=18"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
 		"node_modules/@sinonjs/commons": {
 			"version": "3.0.1",
 			"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
@@ -4342,55 +4360,6 @@
 				"url": "https://github.com/sponsors/jonschlinkert"
 			}
 		},
-		"node_modules/@stylistic/stylelint-config": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-2.0.0.tgz",
-			"integrity": "sha512-8J4YAxggy2Nzkb8KJIOLbtMXTPZ5gpKVmyhiiuKEUgCl9XFND5lM0e/ZZBMGEYZ68h5qcsS/jgg1wh235erRAw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@stylistic/stylelint-plugin": "^3.0.0"
-			},
-			"engines": {
-				"node": "^18.12 || >=20.9"
-			},
-			"peerDependencies": {
-				"stylelint": "^16.8.0"
-			}
-		},
-		"node_modules/@stylistic/stylelint-plugin": {
-			"version": "3.1.1",
-			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.1.tgz",
-			"integrity": "sha512-XagAHHIa528EvyGybv8EEYGK5zrVW74cHpsjhtovVATbhDRuJYfE+X4HCaAieW9lCkwbX6L+X0I4CiUG3w/hFw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@csstools/css-parser-algorithms": "^3.0.1",
-				"@csstools/css-tokenizer": "^3.0.1",
-				"@csstools/media-query-list-parser": "^3.0.1",
-				"is-plain-object": "^5.0.0",
-				"postcss-selector-parser": "^6.1.2",
-				"postcss-value-parser": "^4.2.0",
-				"style-search": "^0.1.0",
-				"stylelint": "^16.8.2"
-			},
-			"engines": {
-				"node": "^18.12 || >=20.9"
-			},
-			"peerDependencies": {
-				"stylelint": "^16.8.0"
-			}
-		},
-		"node_modules/@stylistic/stylelint-plugin/node_modules/is-plain-object": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
-			"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
 		"node_modules/@tootallnate/once": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.1.tgz",
@@ -4506,8 +4475,7 @@
 			"version": "3.0.5",
 			"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
 			"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/@types/node": {
 			"version": "22.18.1",
@@ -5499,16 +5467,16 @@
 			"dev": true
 		},
 		"node_modules/@wikimedia/codex": {
-			"version": "2.4.0",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.4.0.tgz",
-			"integrity": "sha512-j/I1gGbTo6pttjmwyYw9/3CeInK6mpBm2FVfABJk+B1Ylw5DskX+TqeCdKghwxSkxBt0ODbUTBYdFyafk+7ajg==",
+			"version": "2.6.0",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.6.0.tgz",
+			"integrity": "sha512-ul/WXyxZbMV3PrWd0tGATuhTwUijRhHQxEJ+k+NukzcbY4MTItU3zEiw0Ye3wgNGQBMcCDt34pRGF3tXQwwDgA==",
 			"dev": true,
 			"dependencies": {
 				"@floating-ui/vue": "1.0.6",
-				"@wikimedia/codex-icons": "2.4.0"
+				"@wikimedia/codex-icons": "2.6.0"
 			},
 			"engines": {
-				"node": ">=20.19.1",
+				"node": ">=20.20.2",
 				"npm": ">=10.8.2"
 			},
 			"peerDependencies": {
@@ -5516,22 +5484,22 @@
 			}
 		},
 		"node_modules/@wikimedia/codex-design-tokens": {
-			"version": "2.4.0",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex-design-tokens/-/codex-design-tokens-2.4.0.tgz",
-			"integrity": "sha512-VXCIdnDuoXryltFXCz7pEydAa87eOtWA0RAsrE4DFNa01ln0LyrPirdkJ8N/tqFpxX3uACTa4Gzi6r95GKru5w==",
+			"version": "2.6.0",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex-design-tokens/-/codex-design-tokens-2.6.0.tgz",
+			"integrity": "sha512-Y7q5Ef1Vw6KWBO4UPqUgZTMIvmi0DlhU/YNram01F78AaSMWiBrIHCjk7ygNVTH18MsZiI+YUNH9VGtiWz62vA==",
 			"dev": true,
 			"engines": {
-				"node": ">=20.19.1",
+				"node": ">=20.20.2",
 				"npm": ">=10.8.1"
 			}
 		},
 		"node_modules/@wikimedia/codex-icons": {
-			"version": "2.4.0",
-			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.4.0.tgz",
-			"integrity": "sha512-BBtrzLR7r9ShxCMYfsx9XaKJu/peqt5Y/jtvWx3E2G5aL/Y/pIWAkv8NIvU+ztKklbHySLH5jSvVZVKxxvU0Ew==",
+			"version": "2.6.0",
+			"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.6.0.tgz",
+			"integrity": "sha512-U0FK8kxhIrX5hAkFGZ0uWsR4arYjWw6GLCMZmrG1qvbX7+CFoVrhJQL7alogRdCrBiQBr8CUQOquOP5fUXPIBQ==",
 			"dev": true,
 			"engines": {
-				"node": ">=20.19.1",
+				"node": ">=20.20.2",
 				"npm": ">=10.8.2"
 			}
 		},
@@ -5725,7 +5693,6 @@
 			"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
 			"integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=8"
 			}
@@ -5744,7 +5711,6 @@
 			"resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
 			"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">=8"
 			}
@@ -6773,9 +6739,9 @@
 			"dev": true
 		},
 		"node_modules/cosmiconfig": {
-			"version": "9.0.0",
-			"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
-			"integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
+			"version": "9.0.2",
+			"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz",
+			"integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==",
 			"dev": true,
 			"dependencies": {
 				"env-paths": "^2.2.1",
@@ -6805,10 +6771,20 @@
 			"dev": true
 		},
 		"node_modules/cosmiconfig/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz",
+			"integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -6913,13 +6889,12 @@
 			}
 		},
 		"node_modules/css-functions-list": {
-			"version": "3.2.3",
-			"resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz",
-			"integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==",
+			"version": "3.3.3",
+			"resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz",
+			"integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
-				"node": ">=12 || >=16"
+				"node": ">=12"
 			}
 		},
 		"node_modules/css-select": {
@@ -6998,32 +6973,11 @@
 			"resolved": "https://registry.npmjs.org/css-tokenize/-/css-tokenize-1.0.1.tgz",
 			"integrity": "sha512-gLmmbJdwH9HLY4bcA17lnZ8GgPwEXRbvxBJGHnkiB6gLhRpTzjkjtMIvz7YORGW/Ptv2oMk8b5g+u7mRD6Dd7A==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"inherits": "^2.0.1",
 				"readable-stream": "^1.0.33"
 			}
 		},
-		"node_modules/css-tokenize/node_modules/readable-stream": {
-			"version": "1.1.14",
-			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
-			"integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"core-util-is": "~1.0.0",
-				"inherits": "~2.0.1",
-				"isarray": "0.0.1",
-				"string_decoder": "~0.10.x"
-			}
-		},
-		"node_modules/css-tokenize/node_modules/string_decoder": {
-			"version": "0.10.31",
-			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-			"integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
-			"dev": true,
-			"license": "MIT"
-		},
 		"node_modules/css-tree": {
 			"version": "2.3.1",
 			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
@@ -7852,7 +7806,6 @@
 			"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
 			"integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"end-of-stream": "^1.4.1",
 				"inherits": "^2.0.3",
@@ -7860,6 +7813,29 @@
 				"stream-shift": "^1.0.2"
 			}
 		},
+		"node_modules/duplexify/node_modules/readable-stream": {
+			"version": "3.6.2",
+			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+			"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+			"dev": true,
+			"dependencies": {
+				"inherits": "^2.0.3",
+				"string_decoder": "^1.1.1",
+				"util-deprecate": "^1.0.1"
+			},
+			"engines": {
+				"node": ">= 6"
+			}
+		},
+		"node_modules/duplexify/node_modules/string_decoder": {
+			"version": "1.3.0",
+			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+			"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+			"dev": true,
+			"dependencies": {
+				"safe-buffer": "~5.2.0"
+			}
+		},
 		"node_modules/eastasianwidth": {
 			"version": "0.2.0",
 			"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
@@ -9234,10 +9210,20 @@
 			}
 		},
 		"node_modules/eslint/node_modules/js-yaml": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-			"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz",
+			"integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/puzrin"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/nodeca"
+				}
+			],
 			"dependencies": {
 				"argparse": "^2.0.1"
 			},
@@ -9678,16 +9664,16 @@
 			}
 		},
 		"node_modules/form-data": {
-			"version": "4.0.5",
-			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
-			"integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
+			"version": "4.0.6",
+			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz",
+			"integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==",
 			"dev": true,
 			"dependencies": {
 				"asynckit": "^0.4.0",
 				"combined-stream": "^1.0.8",
 				"es-set-tostringtag": "^2.1.0",
-				"hasown": "^2.0.2",
-				"mime-types": "^2.1.12"
+				"hasown": "^2.0.4",
+				"mime-types": "^2.1.35"
 			},
 			"engines": {
 				"node": ">= 6"
@@ -9895,23 +9881,61 @@
 				"node": ">= 6"
 			}
 		},
-		"node_modules/globals": {
-			"version": "15.15.0",
-			"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
-			"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
+		"node_modules/global-modules": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+			"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
 			"dev": true,
-			"engines": {
-				"node": ">=18"
+			"dependencies": {
+				"global-prefix": "^3.0.0"
 			},
-			"funding": {
-				"url": "https://github.com/sponsors/sindresorhus"
+			"engines": {
+				"node": ">=6"
 			}
 		},
-		"node_modules/globby": {
-			"version": "11.1.0",
-			"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
-			"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
-			"dev": true,
+		"node_modules/global-prefix": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+			"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+			"dev": true,
+			"dependencies": {
+				"ini": "^1.3.5",
+				"kind-of": "^6.0.2",
+				"which": "^1.3.1"
+			},
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/global-prefix/node_modules/which": {
+			"version": "1.3.1",
+			"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+			"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+			"dev": true,
+			"dependencies": {
+				"isexe": "^2.0.0"
+			},
+			"bin": {
+				"which": "bin/which"
+			}
+		},
+		"node_modules/globals": {
+			"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"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/globby": {
+			"version": "11.1.0",
+			"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+			"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+			"dev": true,
 			"dependencies": {
 				"array-union": "^2.1.0",
 				"dir-glob": "^3.0.1",
@@ -10114,10 +10138,22 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/hashery": {
+			"version": "1.5.1",
+			"resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz",
+			"integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==",
+			"dev": true,
+			"dependencies": {
+				"hookified": "^1.15.0"
+			},
+			"engines": {
+				"node": ">=20"
+			}
+		},
 		"node_modules/hasown": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
-			"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+			"version": "2.0.4",
+			"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
+			"integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
 			"dev": true,
 			"dependencies": {
 				"function-bind": "^1.1.2"
@@ -10127,11 +10163,10 @@
 			}
 		},
 		"node_modules/hookified": {
-			"version": "1.8.2",
-			"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.8.2.tgz",
-			"integrity": "sha512-5nZbBNP44sFCDjSoB//0N7m508APCgbQ4mGGo1KJGBYyCKNHfry1Pvd0JVHZIxjdnqn8nFRBAN/eFB6Rk/4w5w==",
-			"dev": true,
-			"license": "MIT"
+			"version": "1.15.1",
+			"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz",
+			"integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==",
+			"dev": true
 		},
 		"node_modules/hosted-git-info": {
 			"version": "2.8.9",
@@ -10353,6 +10388,16 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
+		"node_modules/import-meta-resolve": {
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz",
+			"integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==",
+			"dev": true,
+			"funding": {
+				"type": "github",
+				"url": "https://github.com/sponsors/wooorm"
+			}
+		},
 		"node_modules/imurmurhash": {
 			"version": "0.1.4",
 			"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
@@ -10503,6 +10548,15 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/is-plain-object": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+			"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.10.0"
+			}
+		},
 		"node_modules/is-potential-custom-element-name": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
@@ -10550,8 +10604,7 @@
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
 			"integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/isexe": {
 			"version": "2.0.0",
@@ -13305,7 +13358,6 @@
 			"resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
 			"integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"@types/minimatch": "^3.0.3",
 				"array-differ": "^3.0.0",
@@ -14107,6 +14159,24 @@
 				}
 			]
 		},
+		"node_modules/qified": {
+			"version": "0.10.1",
+			"resolved": "https://registry.npmjs.org/qified/-/qified-0.10.1.tgz",
+			"integrity": "sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==",
+			"dev": true,
+			"dependencies": {
+				"hookified": "^2.1.1"
+			},
+			"engines": {
+				"node": ">=20"
+			}
+		},
+		"node_modules/qified/node_modules/hookified": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/hookified/-/hookified-2.2.0.tgz",
+			"integrity": "sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==",
+			"dev": true
+		},
 		"node_modules/qs": {
 			"version": "6.15.2",
 			"resolved": "https://registry.npmjs.org/qs/-/qs-6.15.2.tgz",
@@ -14235,17 +14305,15 @@
 			}
 		},
 		"node_modules/readable-stream": {
-			"version": "3.6.2",
-			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
-			"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+			"version": "1.1.14",
+			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+			"integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
 			"dev": true,
 			"dependencies": {
-				"inherits": "^2.0.3",
-				"string_decoder": "^1.1.1",
-				"util-deprecate": "^1.0.1"
-			},
-			"engines": {
-				"node": ">= 6"
+				"core-util-is": "~1.0.0",
+				"inherits": "~2.0.1",
+				"isarray": "0.0.1",
+				"string_decoder": "~0.10.x"
 			}
 		},
 		"node_modules/regenerate": {
@@ -14653,11 +14721,10 @@
 			}
 		},
 		"node_modules/shell-quote": {
-			"version": "1.8.2",
-			"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz",
-			"integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==",
+			"version": "1.8.4",
+			"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.4.tgz",
+			"integrity": "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">= 0.4"
 			},
@@ -14753,6 +14820,18 @@
 			"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
 			"dev": true
 		},
+		"node_modules/slash": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
+			"integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
+			"dev": true,
+			"engines": {
+				"node": ">=14.16"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
 		"node_modules/slice-ansi": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
@@ -14920,17 +14999,13 @@
 			"version": "1.0.3",
 			"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
 			"integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==",
-			"dev": true,
-			"license": "MIT"
+			"dev": true
 		},
 		"node_modules/string_decoder": {
-			"version": "1.3.0",
-			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
-			"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
-			"dev": true,
-			"dependencies": {
-				"safe-buffer": "~5.2.0"
-			}
+			"version": "0.10.31",
+			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+			"integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
+			"dev": true
 		},
 		"node_modules/string-length": {
 			"version": "4.0.2",
@@ -15045,8 +15120,7 @@
 			"version": "0.1.0",
 			"resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
 			"integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
-			"dev": true,
-			"license": "ISC"
+			"dev": true
 		},
 		"node_modules/stylelint": {
 			"version": "16.19.1",
@@ -15183,29 +15257,31 @@
 			}
 		},
 		"node_modules/stylelint-config-wikimedia": {
-			"version": "0.18.0",
-			"resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.18.0.tgz",
-			"integrity": "sha512-Lr45NIe7pG8i7BPcMc6EddO1pRK8/KNG8gp4o/oOG1Ez10hglJuJb/QT17BlzX8NPkhtP2KdY63NS2f/Wcj6Ww==",
+			"version": "0.19.2",
+			"resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.19.2.tgz",
+			"integrity": "sha512-GTz6SmNbbrjXJpEVussRBtsE2703BSUo5R4PRR3f+o1j1h6ngyyH3/qKJ7oZzlkRMHpJHVtAS9h1emIAvc/XWw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"@stylistic/stylelint-config": "2.0.0",
-				"@stylistic/stylelint-plugin": "3.1.1",
+				"@stylistic/stylelint-config": "5.0.0",
+				"@stylistic/stylelint-plugin": "5.1.0",
 				"browserslist-config-wikimedia": "0.7.0",
-				"postcss-html": "1.7.0",
+				"postcss-html": "1.8.1",
 				"postcss-less": "6.0.0",
-				"stylelint": "16.12.0",
-				"stylelint-config-recommended": "14.0.1",
-				"stylelint-no-unsupported-browser-features": "8.0.2"
+				"stylelint": "17.6.0",
+				"stylelint-config-recommended": "18.0.0",
+				"stylelint-no-unsupported-browser-features": "8.1.1"
+			},
+			"engines": {
+				"node": ">=20.19.0"
 			},
 			"peerDependencies": {
 				"postcss-less": "^6.0.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/media-query-list-parser": {
-			"version": "4.0.2",
-			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz",
-			"integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/css-calc": {
+			"version": "3.2.1",
+			"resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz",
+			"integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==",
 			"dev": true,
 			"funding": [
 				{
@@ -15217,19 +15293,18 @@
 					"url": "https://opencollective.com/csstools"
 				}
 			],
-			"license": "MIT",
 			"engines": {
-				"node": ">=18"
+				"node": ">=20.19.0"
 			},
 			"peerDependencies": {
-				"@csstools/css-parser-algorithms": "^3.0.4",
-				"@csstools/css-tokenizer": "^3.0.3"
+				"@csstools/css-parser-algorithms": "^4.0.0",
+				"@csstools/css-tokenizer": "^4.0.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/selector-specificity": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
-			"integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/css-parser-algorithms": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz",
+			"integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==",
 			"dev": true,
 			"funding": [
 				{
@@ -15241,147 +15316,314 @@
 					"url": "https://opencollective.com/csstools"
 				}
 			],
-			"license": "MIT-0",
 			"engines": {
-				"node": ">=18"
+				"node": ">=20.19.0"
 			},
 			"peerDependencies": {
-				"postcss-selector-parser": "^7.0.0"
+				"@csstools/css-tokenizer": "^4.0.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/balanced-match": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
-			"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/stylelint-config-wikimedia/node_modules/css-tree": {
-			"version": "3.1.0",
-			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
-			"integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/css-syntax-patches-for-csstree": {
+			"version": "1.1.5",
+			"resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.5.tgz",
+			"integrity": "sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==",
 			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"mdn-data": "2.12.2",
-				"source-map-js": "^1.0.1"
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/csstools"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/csstools"
+				}
+			],
+			"peerDependencies": {
+				"css-tree": "^3.2.1"
 			},
-			"engines": {
-				"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+			"peerDependenciesMeta": {
+				"css-tree": {
+					"optional": true
+				}
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/dom-serializer": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
-			"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/css-tokenizer": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz",
+			"integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==",
 			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"domelementtype": "^2.3.0",
-				"domhandler": "^5.0.2",
-				"entities": "^4.2.0"
-			},
-			"funding": {
-				"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/csstools"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/csstools"
+				}
+			],
+			"engines": {
+				"node": ">=20.19.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/domhandler": {
-			"version": "5.0.3",
-			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
-			"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/media-query-list-parser": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-5.0.0.tgz",
+			"integrity": "sha512-T9lXmZOfnam3eMERPsszjY5NK0jX8RmThmmm99FZ8b7z8yMaFZWKwLWGZuTwdO3ddRY5fy13GmmEYZXB4I98Eg==",
 			"dev": true,
-			"license": "BSD-2-Clause",
-			"dependencies": {
-				"domelementtype": "^2.3.0"
-			},
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/csstools"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/csstools"
+				}
+			],
 			"engines": {
-				"node": ">= 4"
+				"node": ">=20.19.0"
 			},
-			"funding": {
-				"url": "https://github.com/fb55/domhandler?sponsor=1"
+			"peerDependencies": {
+				"@csstools/css-parser-algorithms": "^4.0.0",
+				"@csstools/css-tokenizer": "^4.0.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/domutils": {
-			"version": "3.2.2",
-			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
-			"integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/selector-resolve-nested": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.0.tgz",
+			"integrity": "sha512-9vAPxmp+Dx3wQBIUwc1v7Mdisw1kbbaGqXUM8QLTgWg7SoPGYtXBsMXvsFs/0Bn5yoFhcktzxNZGNaUt0VjgjA==",
 			"dev": true,
-			"license": "BSD-2-Clause",
-			"dependencies": {
-				"dom-serializer": "^2.0.0",
-				"domelementtype": "^2.3.0",
-				"domhandler": "^5.0.3"
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/csstools"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/csstools"
+				}
+			],
+			"engines": {
+				"node": ">=20.19.0"
 			},
-			"funding": {
-				"url": "https://github.com/fb55/domutils?sponsor=1"
+			"peerDependencies": {
+				"postcss-selector-parser": "^7.1.1"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/entities": {
-			"version": "4.5.0",
-			"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
-			"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@csstools/selector-specificity": {
+			"version": "6.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-6.0.0.tgz",
+			"integrity": "sha512-4sSgl78OtOXEX/2d++8A83zHNTgwCJMaR24FvsYL7Uf/VS8HZk9PTwR51elTbGqMuwH3szLvvOXEaVnqn0Z3zA==",
 			"dev": true,
-			"license": "BSD-2-Clause",
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/csstools"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/csstools"
+				}
+			],
 			"engines": {
-				"node": ">=0.12"
+				"node": ">=20.19.0"
 			},
-			"funding": {
-				"url": "https://github.com/fb55/entities?sponsor=1"
+			"peerDependencies": {
+				"postcss-selector-parser": "^7.1.1"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/file-entry-cache": {
-			"version": "9.1.0",
-			"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz",
-			"integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@stylistic/stylelint-config": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-5.0.0.tgz",
+			"integrity": "sha512-AW6S27wEm4DzB+uOZMvRkONIu0ba50VRbFte7qYJgGP4dacS8kAuj8HZJ+s+8kE4GK3XXBcSKLb75a+NfJlbiQ==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"flat-cache": "^5.0.0"
+				"@stylistic/stylelint-plugin": "^5.1.0"
 			},
 			"engines": {
-				"node": ">=18"
+				"node": ">=20.19.0"
+			},
+			"peerDependencies": {
+				"stylelint": "^17.6.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/flat-cache": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz",
-			"integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==",
+		"node_modules/stylelint-config-wikimedia/node_modules/@stylistic/stylelint-plugin": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-5.1.0.tgz",
+			"integrity": "sha512-TFvKCbJUEWUYCD+rDv45qhnStO6nRtbBngaCblS2JGh8c95S3jJi3fIotfF6EDo4IVM15UPa65WP+kp6GNvXRA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"flatted": "^3.3.1",
-				"keyv": "^4.5.4"
+				"@csstools/css-parser-algorithms": "^4.0.0",
+				"@csstools/css-tokenizer": "^4.0.0",
+				"@csstools/media-query-list-parser": "^5.0.0",
+				"postcss": "^8.5.8",
+				"postcss-selector-parser": "^7.1.1",
+				"postcss-value-parser": "^4.2.0",
+				"style-search": "^0.1.0"
 			},
 			"engines": {
-				"node": ">=18"
+				"node": ">=20.19.0"
+			},
+			"peerDependencies": {
+				"stylelint": "^17.6.0"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/ansi-regex": {
+			"version": "6.2.2",
+			"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+			"integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/ansi-regex?sponsor=1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/cacheable": {
+			"version": "2.3.5",
+			"resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.5.tgz",
+			"integrity": "sha512-EQfaKe09tl615iNvq/TBRWTFf1AKJNXYQSsMx0Z3EI0nA+pVsVPS8wJhnRlkbdacKPh1d0qVIhwTc2zsQNFEEg==",
+			"dev": true,
+			"dependencies": {
+				"@cacheable/memory": "^2.0.8",
+				"@cacheable/utils": "^2.4.1",
+				"hookified": "^1.15.0",
+				"keyv": "^5.6.0",
+				"qified": "^0.10.1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/css-tree": {
+			"version": "3.2.1",
+			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz",
+			"integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
+			"dev": true,
+			"dependencies": {
+				"mdn-data": "2.27.1",
+				"source-map-js": "^1.2.1"
+			},
+			"engines": {
+				"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/global-modules": {
+		"node_modules/stylelint-config-wikimedia/node_modules/dom-serializer": {
 			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
-			"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+			"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"global-prefix": "^3.0.0"
+				"domelementtype": "^2.3.0",
+				"domhandler": "^5.0.2",
+				"entities": "^4.2.0"
+			},
+			"funding": {
+				"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/domhandler": {
+			"version": "5.0.3",
+			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+			"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.3.0"
 			},
 			"engines": {
-				"node": ">=6"
+				"node": ">= 4"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domhandler?sponsor=1"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/global-prefix": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
-			"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+		"node_modules/stylelint-config-wikimedia/node_modules/domutils": {
+			"version": "3.2.2",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
+			"integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"ini": "^1.3.5",
-				"kind-of": "^6.0.2",
-				"which": "^1.3.1"
+				"dom-serializer": "^2.0.0",
+				"domelementtype": "^2.3.0",
+				"domhandler": "^5.0.3"
 			},
+			"funding": {
+				"url": "https://github.com/fb55/domutils?sponsor=1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/entities": {
+			"version": "4.5.0",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+			"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+			"dev": true,
 			"engines": {
-				"node": ">=6"
+				"node": ">=0.12"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/file-entry-cache": {
+			"version": "11.1.3",
+			"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.3.tgz",
+			"integrity": "sha512-oMbq0PD6VIiIwMF6LIa7MEwd/l9huKwmqRKXqmrkqIZv8CvRbfowL+L0ryAl8h//HfAS0zS+4SbYoRyAoA6BJA==",
+			"dev": true,
+			"dependencies": {
+				"flat-cache": "^6.1.22"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/flat-cache": {
+			"version": "6.1.22",
+			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.22.tgz",
+			"integrity": "sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==",
+			"dev": true,
+			"dependencies": {
+				"cacheable": "^2.3.4",
+				"flatted": "^3.4.2",
+				"hookified": "^1.15.0"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/globby": {
+			"version": "16.2.0",
+			"resolved": "https://registry.npmjs.org/globby/-/globby-16.2.0.tgz",
+			"integrity": "sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==",
+			"dev": true,
+			"dependencies": {
+				"@sindresorhus/merge-streams": "^4.0.0",
+				"fast-glob": "^3.3.3",
+				"ignore": "^7.0.5",
+				"is-path-inside": "^4.0.0",
+				"slash": "^5.1.0",
+				"unicorn-magic": "^0.4.0"
+			},
+			"engines": {
+				"node": ">=20"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/has-flag": {
+			"version": "5.0.1",
+			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz",
+			"integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/html-tags": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-5.1.0.tgz",
+			"integrity": "sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=20.10"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/htmlparser2": {
@@ -15396,7 +15638,6 @@
 					"url": "https://github.com/sponsors/fb55"
 				}
 			],
-			"license": "MIT",
 			"dependencies": {
 				"domelementtype": "^2.3.0",
 				"domhandler": "^5.0.3",
@@ -15405,56 +15646,78 @@
 			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/ignore": {
-			"version": "6.0.2",
-			"resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz",
-			"integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==",
+			"version": "7.0.5",
+			"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+			"integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
 				"node": ">= 4"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/is-plain-object": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
-			"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+		"node_modules/stylelint-config-wikimedia/node_modules/is-path-inside": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz",
+			"integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==",
 			"dev": true,
-			"license": "MIT",
 			"engines": {
-				"node": ">=0.10.0"
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/js-tokens": {
 			"version": "9.0.1",
 			"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
 			"integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
+			"dev": true
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/keyv": {
+			"version": "5.6.0",
+			"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz",
+			"integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==",
 			"dev": true,
-			"license": "MIT"
+			"dependencies": {
+				"@keyv/serialize": "^1.1.1"
+			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/known-css-properties": {
-			"version": "0.35.0",
-			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz",
-			"integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==",
+		"node_modules/stylelint-config-wikimedia/node_modules/mathml-tag-names": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-4.0.0.tgz",
+			"integrity": "sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==",
 			"dev": true,
-			"license": "MIT"
+			"funding": {
+				"type": "github",
+				"url": "https://github.com/sponsors/wooorm"
+			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/mdn-data": {
-			"version": "2.12.2",
-			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
-			"integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+			"version": "2.27.1",
+			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
+			"integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
+			"dev": true
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/meow": {
+			"version": "14.1.0",
+			"resolved": "https://registry.npmjs.org/meow/-/meow-14.1.0.tgz",
+			"integrity": "sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==",
 			"dev": true,
-			"license": "CC0-1.0"
+			"engines": {
+				"node": ">=20"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/postcss-html": {
-			"version": "1.7.0",
-			"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.7.0.tgz",
-			"integrity": "sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==",
+			"version": "1.8.1",
+			"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.8.1.tgz",
+			"integrity": "sha512-OLF6P7qctfAWayOhLpcVnTGqVeJzu2W3WpIYelfz2+JV5oGxfkcEvweN9U4XpeqE0P98dcD9ssusGwlF0TK0uQ==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"htmlparser2": "^8.0.0",
 				"js-tokens": "^9.0.0",
-				"postcss": "^8.4.0",
+				"postcss": "^8.5.0",
 				"postcss-safe-parser": "^6.0.0"
 			},
 			"engines": {
@@ -15462,11 +15725,10 @@
 			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/postcss-selector-parser": {
-			"version": "7.1.0",
-			"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
-			"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
+			"version": "7.1.4",
+			"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz",
+			"integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"cssesc": "^3.0.0",
 				"util-deprecate": "^1.0.2"
@@ -15475,10 +15737,53 @@
 				"node": ">=4"
 			}
 		},
+		"node_modules/stylelint-config-wikimedia/node_modules/signal-exit": {
+			"version": "4.1.0",
+			"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+			"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+			"dev": true,
+			"engines": {
+				"node": ">=14"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/isaacs"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/string-width": {
+			"version": "8.2.1",
+			"resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz",
+			"integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==",
+			"dev": true,
+			"dependencies": {
+				"get-east-asian-width": "^1.5.0",
+				"strip-ansi": "^7.1.2"
+			},
+			"engines": {
+				"node": ">=20"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/strip-ansi": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+			"integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
+			"dev": true,
+			"dependencies": {
+				"ansi-regex": "^6.2.2"
+			},
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/strip-ansi?sponsor=1"
+			}
+		},
 		"node_modules/stylelint-config-wikimedia/node_modules/stylelint": {
-			"version": "16.12.0",
-			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.12.0.tgz",
-			"integrity": "sha512-F8zZ3L/rBpuoBZRvI4JVT20ZanPLXfQLzMOZg1tzPflRVh9mKpOZ8qcSIhh1my3FjAjZWG4T2POwGnmn6a6hbg==",
+			"version": "17.6.0",
+			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.6.0.tgz",
+			"integrity": "sha512-tokrsMIVAR9vAQ/q3UVEr7S0dGXCi7zkCezPRnS2kqPUulvUh5Vgfwngrk4EoAoW7wnrThqTdnTFN5Ra7CaxIg==",
 			"dev": true,
 			"funding": [
 				{
@@ -15490,52 +15795,71 @@
 					"url": "https://github.com/sponsors/stylelint"
 				}
 			],
-			"license": "MIT",
 			"dependencies": {
-				"@csstools/css-parser-algorithms": "^3.0.4",
-				"@csstools/css-tokenizer": "^3.0.3",
-				"@csstools/media-query-list-parser": "^4.0.2",
-				"@csstools/selector-specificity": "^5.0.0",
-				"@dual-bundle/import-meta-resolve": "^4.1.0",
-				"balanced-match": "^2.0.0",
+				"@csstools/css-calc": "^3.1.1",
+				"@csstools/css-parser-algorithms": "^4.0.0",
+				"@csstools/css-syntax-patches-for-csstree": "^1.1.1",
+				"@csstools/css-tokenizer": "^4.0.0",
+				"@csstools/media-query-list-parser": "^5.0.0",
+				"@csstools/selector-resolve-nested": "^4.0.0",
+				"@csstools/selector-specificity": "^6.0.0",
 				"colord": "^2.9.3",
-				"cosmiconfig": "^9.0.0",
-				"css-functions-list": "^3.2.3",
-				"css-tree": "^3.0.1",
-				"debug": "^4.3.7",
-				"fast-glob": "^3.3.2",
+				"cosmiconfig": "^9.0.1",
+				"css-functions-list": "^3.3.3",
+				"css-tree": "^3.2.1",
+				"debug": "^4.4.3",
+				"fast-glob": "^3.3.3",
 				"fastest-levenshtein": "^1.0.16",
-				"file-entry-cache": "^9.1.0",
+				"file-entry-cache": "^11.1.2",
 				"global-modules": "^2.0.0",
-				"globby": "^11.1.0",
+				"globby": "^16.1.1",
 				"globjoin": "^0.1.4",
-				"html-tags": "^3.3.1",
-				"ignore": "^6.0.2",
-				"imurmurhash": "^0.1.4",
+				"html-tags": "^5.1.0",
+				"ignore": "^7.0.5",
+				"import-meta-resolve": "^4.2.0",
 				"is-plain-object": "^5.0.0",
-				"known-css-properties": "^0.35.0",
-				"mathml-tag-names": "^2.1.3",
-				"meow": "^13.2.0",
+				"mathml-tag-names": "^4.0.0",
+				"meow": "^14.1.0",
 				"micromatch": "^4.0.8",
 				"normalize-path": "^3.0.0",
 				"picocolors": "^1.1.1",
-				"postcss": "^8.4.49",
-				"postcss-resolve-nested-selector": "^0.1.6",
+				"postcss": "^8.5.8",
 				"postcss-safe-parser": "^7.0.1",
-				"postcss-selector-parser": "^7.0.0",
+				"postcss-selector-parser": "^7.1.1",
 				"postcss-value-parser": "^4.2.0",
-				"resolve-from": "^5.0.0",
-				"string-width": "^4.2.3",
-				"supports-hyperlinks": "^3.1.0",
+				"string-width": "^8.2.0",
+				"supports-hyperlinks": "^4.4.0",
 				"svg-tags": "^1.0.0",
 				"table": "^6.9.0",
-				"write-file-atomic": "^5.0.1"
+				"write-file-atomic": "^7.0.1"
 			},
 			"bin": {
 				"stylelint": "bin/stylelint.mjs"
 			},
 			"engines": {
-				"node": ">=18.12.0"
+				"node": ">=20.19.0"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/stylelint-config-recommended": {
+			"version": "18.0.0",
+			"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-18.0.0.tgz",
+			"integrity": "sha512-mxgT2XY6YZ3HWWe3Di8umG6aBmWmHTblTgu/f10rqFXnyWxjKWwNdjSWkgkwCtxIKnqjSJzvFmPT5yabVIRxZg==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/stylelint"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/stylelint"
+				}
+			],
+			"engines": {
+				"node": ">=20.19.0"
+			},
+			"peerDependencies": {
+				"stylelint": "^17.0.0"
 			}
 		},
 		"node_modules/stylelint-config-wikimedia/node_modules/stylelint/node_modules/postcss-safe-parser": {
@@ -15557,7 +15881,6 @@
 					"url": "https://github.com/sponsors/ai"
 				}
 			],
-			"license": "MIT",
 			"engines": {
 				"node": ">=18.0"
 			},
@@ -15565,34 +15888,61 @@
 				"postcss": "^8.4.31"
 			}
 		},
-		"node_modules/stylelint-config-wikimedia/node_modules/which": {
-			"version": "1.3.1",
-			"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-			"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+		"node_modules/stylelint-config-wikimedia/node_modules/supports-color": {
+			"version": "10.2.2",
+			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz",
+			"integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==",
+			"dev": true,
+			"engines": {
+				"node": ">=18"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/supports-color?sponsor=1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/supports-hyperlinks": {
+			"version": "4.4.0",
+			"resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-4.4.0.tgz",
+			"integrity": "sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==",
 			"dev": true,
-			"license": "ISC",
 			"dependencies": {
-				"isexe": "^2.0.0"
+				"has-flag": "^5.0.1",
+				"supports-color": "^10.2.2"
 			},
-			"bin": {
-				"which": "bin/which"
+			"engines": {
+				"node": ">=20"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/supports-hyperlinks?sponsor=1"
+			}
+		},
+		"node_modules/stylelint-config-wikimedia/node_modules/write-file-atomic": {
+			"version": "7.0.1",
+			"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-7.0.1.tgz",
+			"integrity": "sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==",
+			"dev": true,
+			"dependencies": {
+				"signal-exit": "^4.0.1"
+			},
+			"engines": {
+				"node": "^20.17.0 || >=22.9.0"
 			}
 		},
 		"node_modules/stylelint-no-unsupported-browser-features": {
-			"version": "8.0.2",
-			"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-8.0.2.tgz",
-			"integrity": "sha512-4PY2qJ3ZTEje9RgGfaQ82eJoPioXxs6hazeKpji/wzLNVzTX2wd4b0Ds3ewdLkH3ID+o63IInuTquU2MNJO3YQ==",
+			"version": "8.1.1",
+			"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-8.1.1.tgz",
+			"integrity": "sha512-sLEe6NUFoWL2vGt6IKKllQEKfKgVxmvTBFs1JVMHKKLWzxtWAXaqSxJvH+j0URM4vLQQqzC/wXc9Kp3XBNKdBw==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"doiuse": "^6.0.5",
+				"browserslist": "^4.26.3",
+				"doiuse": "^6.0.6",
 				"postcss": "^8.4.32"
 			},
 			"engines": {
 				"node": ">=18.12.0"
 			},
 			"peerDependencies": {
-				"stylelint": "^16.0.2"
+				"stylelint": ">=16.0.2"
 			}
 		},
 		"node_modules/stylelint/node_modules/@csstools/media-query-list-parser": {
@@ -15684,32 +16034,6 @@
 				"hookified": "^1.8.1"
 			}
 		},
-		"node_modules/stylelint/node_modules/global-modules": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
-			"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
-			"dev": true,
-			"dependencies": {
-				"global-prefix": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=6"
-			}
-		},
-		"node_modules/stylelint/node_modules/global-prefix": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
-			"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
-			"dev": true,
-			"dependencies": {
-				"ini": "^1.3.5",
-				"kind-of": "^6.0.2",
-				"which": "^1.3.1"
-			},
-			"engines": {
-				"node": ">=6"
-			}
-		},
 		"node_modules/stylelint/node_modules/ignore": {
 			"version": "7.0.4",
 			"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz",
@@ -15720,15 +16044,6 @@
 				"node": ">= 4"
 			}
 		},
-		"node_modules/stylelint/node_modules/is-plain-object": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
-			"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
-			"dev": true,
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
 		"node_modules/stylelint/node_modules/mdn-data": {
 			"version": "2.12.2",
 			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
@@ -15777,18 +16092,6 @@
 				"node": ">=4"
 			}
 		},
-		"node_modules/stylelint/node_modules/which": {
-			"version": "1.3.1",
-			"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-			"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-			"dev": true,
-			"dependencies": {
-				"isexe": "^2.0.0"
-			},
-			"bin": {
-				"which": "bin/which"
-			}
-		},
 		"node_modules/superagent": {
 			"version": "10.3.0",
 			"resolved": "https://registry.npmjs.org/superagent/-/superagent-10.3.0.tgz",
@@ -16447,6 +16750,18 @@
 				"node": ">=4"
 			}
 		},
+		"node_modules/unicorn-magic": {
+			"version": "0.4.0",
+			"resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz",
+			"integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==",
+			"dev": true,
+			"engines": {
+				"node": ">=20"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
 		"node_modules/universalify": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
@@ -16580,9 +16895,9 @@
 			}
 		},
 		"node_modules/vite": {
-			"version": "7.3.2",
-			"resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz",
-			"integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==",
+			"version": "7.3.5",
+			"resolved": "https://registry.npmjs.org/vite/-/vite-7.3.5.tgz",
+			"integrity": "sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww==",
 			"dev": true,
 			"dependencies": {
 				"esbuild": "^0.27.0",
@@ -17026,9 +17341,9 @@
 			}
 		},
 		"node_modules/ws": {
-			"version": "8.20.1",
-			"resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz",
-			"integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==",
+			"version": "8.21.0",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
+			"integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
 			"dev": true,
 			"engines": {
 				"node": ">=10.0.0"
diff --git a/package.json b/package.json
index 874a16a..ac79327 100644
--- a/package.json
+++ b/package.json
@@ -30,8 +30,8 @@
 		"@vitejs/plugin-vue": "^6.0.1",
 		"@vue/test-utils": "^2.4.6",
 		"@vue/vue3-jest": "^29.2.6",
-		"@wikimedia/codex": "2.4.0",
-		"@wikimedia/codex-design-tokens": "2.4.0",
+		"@wikimedia/codex": "2.6.0",
+		"@wikimedia/codex-design-tokens": "2.6.0",
 		"@wikimedia/types-wikimedia": "^0.4.4",
 		"api-testing": "1.7.3",
 		"cypress": "^15.14.0",
@@ -60,7 +60,7 @@
 		"rollup": "3.30.0",
 		"stylelint": "^16.19.1",
 		"stylelint-config-recommended-vue": "1.4.0",
-		"stylelint-config-wikimedia": "0.18.0",
+		"stylelint-config-wikimedia": "0.19.2",
 		"svgo": "4.0.1",
 		"typescript": "^4.9.5",
 		"vite": "^7.1.6",
-- 
2.47.3


--- end ---

composer dependencies

Development dependencies

npm dependencies

Development dependencies

Logs

Source code is licensed under the AGPL.