mediawiki/extensions/ContentTranslation: main (log #2514567)

sourcepatches

This run took 103 seconds.

$ date
--- stdout ---
Fri Jul  3 16:44:24 UTC 2026

--- end ---
$ git clone file:///srv/git/mediawiki-extensions-ContentTranslation.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 ---
44fd6e5a4e9f60585eeeeb10a0ea7da1dab6df14 refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@wdio/mocha-framework": {
      "name": "@wdio/mocha-framework",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mocha"
      ],
      "effects": [],
      "range": ">=7.7.4",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.7.3",
        "isSemVerMajor": true
      }
    },
    "cross-spawn": {
      "name": "cross-spawn",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1104663,
          "name": "cross-spawn",
          "dependency": "cross-spawn",
          "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
          "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "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": "<6.0.6"
        }
      ],
      "effects": [
        "pre-commit"
      ],
      "range": "<6.0.6",
      "nodes": [
        "node_modules/pre-commit/node_modules/cross-spawn"
      ],
      "fixAvailable": {
        "name": "pre-commit",
        "version": "2.0.0",
        "isSemVerMajor": true
      }
    },
    "form-data": {
      "name": "form-data",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1109540,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data uses unsafe random function in form-data for choosing boundary",
          "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
          "severity": "critical",
          "cwe": [
            "CWE-330"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<2.5.4"
        },
        {
          "source": 1120745,
          "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": "<2.5.6"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<=2.5.5",
      "nodes": [
        "node_modules/form-data"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.5.2",
        "isSemVerMajor": true
      }
    },
    "js-yaml": {
      "name": "js-yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1121860,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
          "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
          "severity": "moderate",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=4.0.0 <=4.1.1"
        }
      ],
      "effects": [],
      "range": "4.0.0 - 4.1.1",
      "nodes": [
        "node_modules/js-yaml"
      ],
      "fixAvailable": true
    },
    "mocha": {
      "name": "mocha",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "serialize-javascript"
      ],
      "effects": [
        "@wdio/mocha-framework"
      ],
      "range": "8.2.0 - 12.0.0-beta-2",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.7.3",
        "isSemVerMajor": true
      }
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki"
      ],
      "range": "0.1.6 - 2.1.3",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.5.2",
        "isSemVerMajor": true
      }
    },
    "pre-commit": {
      "name": "pre-commit",
      "severity": "high",
      "isDirect": true,
      "via": [
        "cross-spawn"
      ],
      "effects": [],
      "range": "1.1.0 - 1.2.2",
      "nodes": [
        "node_modules/pre-commit"
      ],
      "fixAvailable": {
        "name": "pre-commit",
        "version": "2.0.0",
        "isSemVerMajor": true
      }
    },
    "qs": {
      "name": "qs",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1113719,
          "name": "qs",
          "dependency": "qs",
          "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
          "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
          "severity": "moderate",
          "cwe": [
            "CWE-20"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<6.14.1"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<6.14.1",
      "nodes": [
        "node_modules/qs"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.5.2",
        "isSemVerMajor": true
      }
    },
    "request": {
      "name": "request",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "form-data",
        "qs",
        "tough-cookie",
        "uuid"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.5.2",
        "isSemVerMajor": true
      }
    },
    "serialize-javascript": {
      "name": "serialize-javascript",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113686,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()",
          "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq",
          "severity": "high",
          "cwe": [
            "CWE-96"
          ],
          "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": "<=7.0.2"
        },
        {
          "source": 1119440,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects",
          "url": "https://github.com/advisories/GHSA-qj8w-gfj5-8c6v",
          "severity": "moderate",
          "cwe": [
            "CWE-400",
            "CWE-834"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=5.0.0 <7.0.5"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<=7.0.4",
      "nodes": [
        "node_modules/serialize-javascript"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.7.3",
        "isSemVerMajor": true
      }
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097682,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/tough-cookie"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.5.2",
        "isSemVerMajor": true
      }
    },
    "undici": {
      "name": "undici",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1121242,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to HTTP header injection via Set-Cookie percent-decoding",
          "url": "https://github.com/advisories/GHSA-p88m-4jfj-68fv",
          "severity": "moderate",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": "<6.27.0"
        },
        {
          "source": 1121245,
          "name": "undici",
          "dependency": "undici",
          "title": "undici WebSocket client vulnerable to denial of service via fragment count bypass",
          "url": "https://github.com/advisories/GHSA-vxpw-j846-p89q",
          "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": "<6.27.0"
        },
        {
          "source": 1121250,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse",
          "url": "https://github.com/advisories/GHSA-35p6-xmwp-9g52",
          "severity": "low",
          "cwe": [
            "CWE-367"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<6.27.0"
        },
        {
          "source": 1121255,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to Set-Cookie SameSite attribute downgrade via permissive substring matching",
          "url": "https://github.com/advisories/GHSA-g8m3-5g58-fq7m",
          "severity": "low",
          "cwe": [
            "CWE-183"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<6.27.0"
        }
      ],
      "effects": [],
      "range": "<=6.26.0",
      "nodes": [
        "node_modules/undici"
      ],
      "fixAvailable": true
    },
    "uuid": {
      "name": "uuid",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1119441,
          "name": "uuid",
          "dependency": "uuid",
          "title": "uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided",
          "url": "https://github.com/advisories/GHSA-w5hq-g745-h8pq",
          "severity": "moderate",
          "cwe": [
            "CWE-787",
            "CWE-1285"
          ],
          "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": "<11.1.1"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<11.1.1",
      "nodes": [
        "node_modules/uuid"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.5.2",
        "isSemVerMajor": true
      }
    },
    "wdio-mediawiki": {
      "name": "wdio-mediawiki",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot"
      ],
      "effects": [],
      "range": "<=5.1.0",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.5.2",
        "isSemVerMajor": true
      }
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1120730,
          "name": "ws",
          "dependency": "ws",
          "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks",
          "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-770"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.21.0"
        }
      ],
      "effects": [],
      "range": "8.0.0 - 8.20.1",
      "nodes": [
        "node_modules/ws"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 8,
      "high": 5,
      "critical": 2,
      "total": 15
    },
    "dependencies": {
      "prod": 1,
      "dev": 911,
      "optional": 43,
      "peer": 32,
      "peerOptional": 0,
      "total": 911
    }
  }
}

--- 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: 40 installs, 0 updates, 0 removals
  - Locking composer/installers (v2.3.0)
  - 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/deprecations (1.1.6)
  - Locking firebase/php-jwt (v7.1.0)
  - 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 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/container (2.0.2)
  - Locking psr/log (3.0.2)
  - Locking sabre/event (6.1.0)
  - Locking squizlabs/php_codesniffer (3.13.5)
  - Locking symfony/console (v8.1.1)
  - Locking symfony/deprecation-contracts (v3.7.1)
  - Locking symfony/polyfill-ctype (v1.37.0)
  - Locking symfony/polyfill-intl-grapheme (v1.38.1)
  - Locking symfony/polyfill-intl-normalizer (v1.38.0)
  - Locking symfony/polyfill-mbstring (v1.38.2)
  - Locking symfony/polyfill-php85 (v1.38.1)
  - Locking symfony/service-contracts (v3.7.1)
  - Locking symfony/string (v8.1.0)
  - Locking webmozart/assert (2.4.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 40 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Installing composer/installers (v2.3.0): Extracting archive
  - 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 firebase/php-jwt (v7.1.0): 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.1): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.7.1): Extracting archive
  - Installing symfony/polyfill-php85 (v1.38.1): Extracting archive
  - Installing symfony/console (v8.1.1): 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
  0/37 [>---------------------------]   0%
 28/37 [=====================>------]  75%
 36/37 [===========================>]  97%
 37/37 [============================] 100%
3 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
18 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
$ /usr/bin/npm install
--- stderr ---
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm WARN deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm WARN deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
--- stdout ---

added 902 packages, and audited 903 packages in 25s

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

15 vulnerabilities (8 moderate, 5 high, 2 critical)

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

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

Run `npm audit` for details.

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

--- end ---
$ ./node_modules/.bin/stylelint app/src/components/SXSentenceSelector/SXTranslationSelector.vue modules/widgets/spinner/ext.cx.spinner.less modules/ui/styles/mw.cx.init.Translation.less modules/ui/styles/widgets/mw.cx.ui.CategoryTagItemWidget.monobook.less modules/ui/styles/mw.cx.common.less app/src/components/SXSentenceSelector/ProposedTranslationHeader.vue app/src/components/SXEditor/SXEditor.vue app/src/components/SXTranslationConfirmer/SXTranslationConfirmerActionPanel.vue modules/ui/styles/grid/grid-responsive.less modules/ui/styles/mw.cx.ui.Categories.less app/src/lib/mediawiki.ui/styles/common.less modules/entrypoints/styles/ext.cx.entrypoints.contributionsmenu.less modules/ui/styles/mw.cx.ui.CaptchaDialog.less app/src/components/SXPublisher/SXPublisherAnimationDialog.vue app/src/lib/mediawiki.ui/components/MWLayout/MWCol.vue modules/ve-cx/ce/styles/ve.ce.CXSectionNode.less app/src/lib/mediawiki.ui/components/MWSelect/MWSelect.vue modules/ui/styles/widgets/mw.cx.ui.TranslationToolWidget.less app/src/lib/mediawiki.ui/components/MWLayout/MWRow.vue minT/src/TranslationLoadingIndicator.vue minT/src/SectionContentTranslation.vue app/src/components/SXArticleSearch/SXSearchArticleSuggestion.vue modules/ui/styles/mw.cx.ui.TranslationHeader.less app/src/components/SXTranslationConfirmer/UnreviewedTranslationDialog.vue skin/styles/skin.less modules/ui/styles/mw.cx.ui.TargetColumn.less modules/ui/styles/mw.cx.ui.SourceColumn.less app/src/components/SXArticleSearch/ArticleSuggestionsCard.vue app/src/lib/mediawiki.ui/components/MWDivider/MWDivider.vue app/src/components/SXSentenceSelector/SXConfirmBackNavigationDialog.vue modules/ui/styles/widgets/mw.cx.ui.PageTitleWidget.less app/src/components/SXContentComparator/ContentTypeSelector.vue app/src/components/SXSentenceSelector/SubSection.vue app/src/components/CXDashboard/CXTranslationWork.vue modules/ve-cx/ce/styles/ve.ce.CXSentenceSegmentAnnotation.less app/src/lib/mediawiki.ui/components/MWSpinner/MWSpinner.vue app/src/components/SXLoginDialog.vue minT/src/ViewTranslationPageOptions.vue modules/ui/styles/mw.cx.ui.Infobar.less modules/entrypoints/styles/ext.cx.entrypoints.languagesearcher.legacy.less modules/entrypoints/styles/ext.cx.entrypoints.recenttranslation.less modules/tools/styles/mw.cx.tools.IssueTrackingTool.less app/src/views/Dashboard.vue app/src/components/SXSectionSelector/SXSectionSelectorHeader.vue app/src/components/SXTranslationConfirmer/SXTranslationConfirmer.vue app/src/components/CXDashboard/CXDashboard.vue minT/src/MwSpinner.vue app/src/components/SXTranslationConfirmer/SXTranslationConfirmerFeaturedCollectionBanner.vue app/src/components/CXDashboard/CXSuggestionListFilters.vue app/src/components/SXSentenceSelector/TranslatedSegmentCard.vue modules/ve-cx/ui/tools/ve.ui.CXSaveMTPreferenceTool.less modules/ui/styles/mw.cx.variables.less modules/ve-cx/ui/styles/ve.ui.CXPublishSettingsDialog.less skin/styles/menu.less app/src/views/SXContentComparator.vue minT/styles/mint.less minT/src/ConfirmTopicPage.vue app/src/components/CXDashboard/CXTranslationWorkPublished.vue app/src/components/SXContentComparator/SXContentComparatorContentHeader.vue app/src/lib/mediawiki.ui/components/MWRadioGroup/MWRadio.vue app/src/plugins/ve/components/VisualEditor.vue modules/ve-cx/ce/styles/ve.ce.CXLinkAnnotation.less app/src/components/SXContentComparator/SXContentComparatorHeader.vue app/src/components/SXArticleSearch/SearchResultsCard.vue modules/ve-cx/ce/styles/ve.ce.CXPlaceholderNode.less modules/ui/styles/grid/grid-settings.less minT/src/MWLanguageSelector.vue app/src/components/SXContentComparator/SXContentComparatorHeaderMappedSection.vue app/src/lib/mediawiki.ui/components/MWCard/MWCard.vue app/src/components/CXDashboard/CXTranslationSuggestion.vue modules/ui/styles/mw.cx.mixins.less modules/ui/styles/grid/agora-grid.less app/src/components/SXSentenceSelector/RetryMtCard.vue app/src/components/CXDashboard/CXHelpPanel.vue app/src/components/SXPublisher/SXPublisher.vue app/src/components/CXDashboard/SXTranslationListLanguageSelector.vue minT/src/CxIntroductionDialog.vue app/src/components/SXSentenceSelector/SXBlockTemplateStatusDialog.vue app/src/components/SXEditor/SXEditorOriginalContent.vue app/src/components/CXDashboard/MWBottomNavigation.vue app/src/lib/mediawiki.ui/components/MWIcon/MWIcon.vue modules/entrypoints/styles/ext.cx.contributions.less modules/widgets/callout/ext.cx.callout.less modules/ve-cx/ui/tools/ve.ui.CXResetSectionTool.less modules/entrypoints/styles/ext.cx.interlanguagelink.less app/src/components/SXQuickTutorial/SXQuickTutorial.vue app/src/views/SXEditor.vue app/src/components/CXDashboard/CXListEmptyPlaceholder.vue app/src/components/CXDashboard/SXSuggestionsFiltersDialog.vue app/src/components/SXSentenceSelector/SXSentenceSelector.vue app/src/App.vue modules/ui/styles/widgets/mw.cx.ui.CategoryTagItemWidget.less modules/ui/styles/mw.cx.ui.Columns.less app/src/components/SXSentenceSelector/TranslatedSegmentCardHeader.vue modules/ve-cx/ui/styles/ve.ui.CXSurface.less app/src/components/MWLanguageSelector/MWLanguageSelector.vue minT/src/ExploreLanguagesPage.vue app/src/components/CXDashboard/CXFavoriteList.vue app/src/components/CXDashboard/FeaturedCollectionBanner.vue app/src/components/SXSectionSelector/SXSectionSelectorViewArticleItem.vue modules/entrypoints/ext.cx.entrypoints.publishingfollowup/PublishFeedback.vue app/src/components/CXDashboard/CXSuggestionList.vue modules/entrypoints/styles/ext.cx.entrypoints.languagesearcher.less app/src/components/SXSentenceSelector/TranslatedSegmentCardActionButtons.vue modules/ui/styles/widgets/mw.cx.ui.FeatureDiscoveryWidget.less app/src/styles/page.less modules/entrypoints/styles/ext.cx.entrypoints.newarticle.less modules/ve-cx/ce/styles/ve.ce.CXLintableNode.less modules/entrypoints/ext.cx.entrypoints.languagesearcher/LanguageSearcherCardContainer.vue app/src/lib/mediawiki.ui/components/MWCircularProgressBar/MWCircleProgressBar.vue minT/src/SearchTopicPage.vue app/src/components/SXTranslationConfirmer/SXTranslationConfirmerArticleInformation.vue minT/src/SkeletonLoader.vue modules/tools/styles/mw.cx.tools.InstructionsTool.less modules/ve-cx/ui/styles/ve.ui.CXDesktopContext.less app/src/lib/mediawiki.ui/components/MWThumbnail/MWThumbnail.vue modules/entrypoints/styles/ext.cx.entrypoints.newbytranslation.mobile.less app/src/components/SXSentenceSelector/ProposedTranslationCard.vue modules/ve-cx/ui/styles/ve.ui.CXLinkContextItem.less app/src/components/CXDashboard/CustomInfoChip.vue app/src/components/SXTranslationConfirmer/SXConfirmTranslationStartDialog.vue minT/entrypoints/ArticleFooterEntrypointCard.vue app/src/views/SXTranslationConfirmer.vue modules/entrypoints/styles/ext.cx.entrypoints.uls.relevantlanguages.less app/src/lib/mediawiki.ui/components/MWExpandableContent/MWExpandableContent.vue app/src/lib/mediawiki.ui/components/MWButton/buttons.less app/src/lib/mediawiki.ui/components/MWDialog/MWDialog.vue app/src/lib/mediawiki.ui/components/MWButton/MWButton.vue app/src/components/SXSentenceSelector/BlockTemplateStatusIndicator.vue modules/ui/styles/mw.cx.highlight.less app/src/views/SXPublisher.vue modules/widgets/callout/ext.cx.callout.vector.less app/src/components/SXPublisher/SXPublisherHeader.vue modules/ui/styles/widgets/mw.cx.ui.MessageWidget.less app/src/components/SXSectionSelector/SXSectionSelectorSectionListMissing.vue app/src/components/CommunityPriorityBadge.vue modules/ve-cx/ce/mixins/ve.ce.CXPendingNode.less modules/ui/styles/mw.cx.ui.TranslationView.less app/src/components/SXSentenceSelector/ProposedTranslationActionButtons.vue app/src/components/SXSectionSelector/SXSectionSelectorSectionListPresent.vue app/src/components/SXContentComparator/SXContentComparator.vue app/src/components/SXPublisher/SXPublisherReviewInfo.vue app/src/components/SXSectionSelector/SXSectionSelectorSectionList.vue app/src/components/SXSectionSelector/SXSectionSelector.vue app/src/lib/mediawiki.ui/components/MWLayout/animations.less modules/ui/styles/widgets/mw.cx.ui.CategoryMultiselectWidget.less app/src/views/SXArticleSearch.vue app/src/components/SXContentComparator/NewSectionPlaceholder.vue app/src/components/CXDashboard/CXTranslationList.vue app/src/lib/mediawiki.ui/components/MWLayout/grid-story.less app/src/components/CXDashboard/SuggestionFilterChip.vue app/src/components/SXArticleLanguageSelector.vue modules/ui/styles/mw.cx.ui.ToolsColumn.less app/src/components/SXEditor/EditCompleteFeedback.vue modules/entrypoints/styles/ext.cx.entrypoints.mffrequentlanguages.less app/src/components/SXSentenceSelector/BlockTemplateAdaptationCard.vue modules/ve-cx/ui/styles/ve.ui.CXTranslationToolbar.less modules/ui/styles/grid/grid-core.less app/src/views/SXSectionSelector.vue modules/entrypoints/styles/ext.cx.entrypoints.newbytranslation.less app/src/lib/mediawiki.ui/components/MWProgressBar/MWProgressBar.vue app/src/views/SXQuickTutorial.vue app/src/components/CXDashboard/CXStatsPanel.vue modules/ui/styles/widgets/mw.cx.ui.TranslationIssueWidget.less app/src/components/CXDashboard/CXTranslationWorkDraft.vue app/src/components/SXSentenceSelector/SXSentenceSelectorContentHeader.vue minT/src/SearchResultItem.vue app/src/lib/mediawiki.ui/components/MWLayout/MWGrid.vue app/src/components/CXDashboard/SXConfirmTranslationDeletionDialog.vue app/src/lib/mediawiki.ui/components/MWRadioGroup/MWRadioGroup.vue app/src/lib/mediawiki.ui/components/MWButtonGroup/MWButtonGroup.vue modules/entrypoints/ext.cx.entrypoints.recenttranslation/RecentTranslationEntrypointDialog.vue app/src/components/SXPublisher/SXPublisherCaptchaDialog.vue modules/entrypoints/ext.cx.entrypoints.uls.relevantlanguages/CxUlsEntrypoint.vue app/src/components/SXArticleSearch/SXArticleSearch.vue minT/src/ViewTranslationPage.vue modules/entrypoints/ext.cx.entrypoints.newbytranslation/NewByTranslationPopup.vue app/src/components/SXPublisher/SXPublishOptionSelector.vue modules/entrypoints/styles/ext.cx.contributions.vector.less app/src/components/SXContentComparator/SXContentComparatorHeaderNavigation.vue app/src/lib/mediawiki.ui/components/MWInput/MWInput.vue modules/ve-cx/ce/styles/ve.ce.CXReferenceNode.less app/dist/style.css app/src/views/SXSentenceSelector.vue modules/entrypoints/ext.cx.entrypoints.recentedit/RecentEditEntrypointInvitation.vue app/src/components/CXDashboard/SXSuggestionsFiltersDialogTabGroupContent.vue --fix
--- stderr ---
minT/src/TranslationLoadingIndicator.vue
  35:1  ✖  Expected ".translation-viewer__loading-indicator" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  40:2  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                               selector-class-pattern

minT/src/SectionContentTranslation.vue
  101:1  ✖  Expected ".translation-viewer__failed-subsection-group" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  110:2  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                                     selector-class-pattern

minT/src/ViewTranslationPageOptions.vue
  210:1  ✖  Expected ".translation-viewer__options-overlay" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  237:9  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                             selector-class-pattern

minT/src/ConfirmTopicPage.vue
  360:1  ✖  Expected ".confirm-topic-header" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                             selector-class-pattern
  363:3  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                                         selector-class-pattern
  368:1  ✖  Expected ".confirm-topic-preview" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                            selector-class-pattern
  385:9  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                                         selector-class-pattern
  415:7  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                                         selector-class-pattern
  425:1  ✖  Expected ".confirm-topic-language-selector" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                  selector-class-pattern
  428:3  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                                         selector-class-pattern
  433:1  ✖  Expected ".confirm-topic-go-back-link-container" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"             selector-class-pattern
  438:1  ✖  Expected ".confirm-topic-original-target-article-container" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  446:5  ✖  Expected ".confirm-topic-original-target-article" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"            selector-class-pattern
  449:5  ✖  Expected ".cdx-menu-item" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                                    selector-class-pattern
  459:9  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                                         selector-class-pattern

minT/src/MWLanguageSelector.vue
  314:5  ✖  Expected ".cdx-text-input__input" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"           selector-class-pattern
  339:3  ✖  Expected ".no-results" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                      selector-class-pattern
  340:2  ✖  Expected ".results" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                         selector-class-pattern
  346:3  ✖  Expected ".results-languages" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"               selector-class-pattern
  347:2  ✖  Expected ".results-languages--suggestions" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  349:5  ✖  Expected ".language" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                        selector-class-pattern
  358:6  ✖  Expected ".few-results" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                     selector-class-pattern
  361:6  ✖  Expected ".some-results" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                    selector-class-pattern
  364:6  ✖  Expected ".many-results" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                    selector-class-pattern
  368:3  ✖  Expected ".results-languages--suggestions" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  378:5  ✖  Expected ".results-languages" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"               selector-class-pattern
  379:8  ✖  Expected ".few-results" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                     selector-class-pattern
  380:5  ✖  Expected ".some-results" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                    selector-class-pattern
  381:2  ✖  Expected ".many-results" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                    selector-class-pattern
  385:5  ✖  Expected ".results-languages--suggestions" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  388:5  ✖  Expected ".col-break" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                       selector-class-pattern
  393:3  ✖  Expected ".language" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                        selector-class-pattern

minT/src/CxIntroductionDialog.vue
  88:1   ✖  Expected ".cdx-dialog-backdrop" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"         selector-class-pattern
  88:27  ✖  Expected ".ax-cx-introduction-summary" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  92:1   ✖  Expected ".ax-cx-introduction-summary" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  93:2   ✖  Expected ".cdx-dialog__body" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"            selector-class-pattern

minT/src/ExploreLanguagesPage.vue
  302:1  ✖  Expected ".explore-languages" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"        selector-class-pattern
  315:5  ✖  Expected ".explore-languages-title" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  322:5  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                 selector-class-pattern
  350:7  ✖  Expected ".cdx-button" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"               selector-class-pattern
  357:7  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                 selector-class-pattern
  406:7  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                 selector-class-pattern

minT/src/SearchTopicPage.vue
  190:1  ✖  Expected ".search-topic-header" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                 selector-class-pattern
  194:3  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                            selector-class-pattern
  198:1  ✖  Expected ".search-topic-input" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                  selector-class-pattern
  202:1  ✖  Expected ".search-language-tabs" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                selector-class-pattern
  206:1  ✖  Expected ".search-language-result-empty-state" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  211:1  ✖  Expected ".search-language-result" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"              selector-class-pattern

minT/src/SearchResultItem.vue
  102:5  ✖  Expected ".thumbnail-placeholder" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern

minT/src/ViewTranslationPage.vue
  556:1   ✖  Expected ".translation-viewer" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                    selector-class-pattern
  575:5   ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                              selector-class-pattern
  587:36  ✖  Expected ".firstHeading" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                          selector-class-pattern
  588:26  ✖  Expected ".section-heading" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                       selector-class-pattern
  589:37  ✖  Unexpected !important                                                                                                                               declaration-no-important
  598:6   ✖  Expected ".translation-viewer__source-page-link" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  599:7   ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                              selector-class-pattern
  615:7   ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                              selector-class-pattern
  623:5   ✖  Expected ".ext-quick-survey-panel" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                selector-class-pattern
  630:7   ✖  Expected ".survey-action-buttons" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                 selector-class-pattern
  630:30  ✖  Expected ".cdx-button--action-default" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"            selector-class-pattern
  637:7   ✖  Expected ".references" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                            selector-class-pattern
  638:6   ✖  Expected ".reference" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                             selector-class-pattern
  649:15  ✖  Unexpected value "none" for property "border"                                                                                                       declaration-property-value-disallowed-list
  667:1   ✖  Expected ".infobox-skeleton-loader" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"               selector-class-pattern
  670:3   ✖  Expected ".skeleton" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"                              selector-class-pattern

modules/entrypoints/ext.cx.entrypoints.publishingfollowup/PublishFeedback.vue
  182:15  ✖  Unexpected named color "white"                                                                                        color-named
  184:3   ✖  Expected ".row" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"     selector-class-pattern
  190:3   ✖  Expected ".col" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"     selector-class-pattern
  195:3   ✖  Expected ".pa-4" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"    selector-class-pattern
  198:3   ✖  Expected ".shrink" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  199:18  ✖  Unexpected !important                                                                                                 declaration-no-important
  200:20  ✖  Unexpected !important                                                                                                 declaration-no-important

minT/entrypoints/ArticleFooterEntrypointCard.vue
  78:1  ✖  Expected ".ax-article-footer-container" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern

modules/entrypoints/ext.cx.entrypoints.recenttranslation/RecentTranslationEntrypointDialog.vue
  213:2   ✖  Expected ".row" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"               selector-class-pattern
  220:2   ✖  Expected ".col" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"               selector-class-pattern
  226:2   ✖  Expected ".shrink" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"            selector-class-pattern
  227:16  ✖  Unexpected !important                                                                                                           declaration-no-important
  228:18  ✖  Unexpected !important                                                                                                           declaration-no-important
  277:11  ✖  Unexpected value "none" for property "border"                                                                                   declaration-property-value-disallowed-list
  351:18  ✖  Expected ".cdx-button" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"        selector-class-pattern
  372:51  ✖  Expected ".cdx-button__icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern

modules/entrypoints/ext.cx.entrypoints.uls.relevantlanguages/CxUlsEntrypoint.vue
  129:2   ✖  Expected ".row" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"     selector-class-pattern
  136:2   ✖  Expected ".col" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"     selector-class-pattern
  142:2   ✖  Expected ".shrink" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  143:16  ✖  Unexpected !important                                                                                                 declaration-no-important
  144:18  ✖  Unexpected !important                                                                                                 declaration-no-important
  166:11  ✖  Unexpected value "none" for property "border"                                                                         declaration-property-value-disallowed-list
  192:12  ✖  Unexpected value "none" for property "border"                                                                         declaration-property-value-disallowed-list

modules/entrypoints/ext.cx.entrypoints.newbytranslation/NewByTranslationPopup.vue
  218:7  ✖  Expected ".cdx-thumbnail__image" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  246:7  ✖  Expected ".cdx-icon" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"              selector-class-pattern

modules/entrypoints/ext.cx.entrypoints.recentedit/RecentEditEntrypointInvitation.vue
  186:2   ✖  Expected ".row" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"     selector-class-pattern
  193:2   ✖  Expected ".col" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"     selector-class-pattern
  199:2   ✖  Expected ".pa-4" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"    selector-class-pattern
  203:2   ✖  Expected ".shrink" to match pattern "(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)"  selector-class-pattern
  204:16  ✖  Unexpected !important                                                                                                 declaration-no-important
  205:18  ✖  Unexpected !important                                                                                                 declaration-no-important

✖ 99 problems (99 errors, 0 warnings)
--- stdout ---

--- end ---
$ ./node_modules/.bin/stylelint app/src/components/SXSentenceSelector/SXTranslationSelector.vue modules/widgets/spinner/ext.cx.spinner.less modules/ui/styles/mw.cx.init.Translation.less modules/ui/styles/widgets/mw.cx.ui.CategoryTagItemWidget.monobook.less modules/ui/styles/mw.cx.common.less app/src/components/SXSentenceSelector/ProposedTranslationHeader.vue app/src/components/SXEditor/SXEditor.vue app/src/components/SXTranslationConfirmer/SXTranslationConfirmerActionPanel.vue modules/ui/styles/grid/grid-responsive.less modules/ui/styles/mw.cx.ui.Categories.less app/src/lib/mediawiki.ui/styles/common.less modules/entrypoints/styles/ext.cx.entrypoints.contributionsmenu.less modules/ui/styles/mw.cx.ui.CaptchaDialog.less app/src/components/SXPublisher/SXPublisherAnimationDialog.vue app/src/lib/mediawiki.ui/components/MWLayout/MWCol.vue modules/ve-cx/ce/styles/ve.ce.CXSectionNode.less app/src/lib/mediawiki.ui/components/MWSelect/MWSelect.vue modules/ui/styles/widgets/mw.cx.ui.TranslationToolWidget.less app/src/lib/mediawiki.ui/components/MWLayout/MWRow.vue minT/src/TranslationLoadingIndicator.vue minT/src/SectionContentTranslation.vue app/src/components/SXArticleSearch/SXSearchArticleSuggestion.vue modules/ui/styles/mw.cx.ui.TranslationHeader.less app/src/components/SXTranslationConfirmer/UnreviewedTranslationDialog.vue skin/styles/skin.less modules/ui/styles/mw.cx.ui.TargetColumn.less modules/ui/styles/mw.cx.ui.SourceColumn.less app/src/components/SXArticleSearch/ArticleSuggestionsCard.vue app/src/lib/mediawiki.ui/components/MWDivider/MWDivider.vue app/src/components/SXSentenceSelector/SXConfirmBackNavigationDialog.vue modules/ui/styles/widgets/mw.cx.ui.PageTitleWidget.less app/src/components/SXContentComparator/ContentTypeSelector.vue app/src/components/SXSentenceSelector/SubSection.vue app/src/components/CXDashboard/CXTranslationWork.vue modules/ve-cx/ce/styles/ve.ce.CXSentenceSegmentAnnotation.less app/src/lib/mediawiki.ui/components/MWSpinner/MWSpinner.vue app/src/components/SXLoginDialog.vue minT/src/ViewTranslationPageOptions.vue modules/ui/styles/mw.cx.ui.Infobar.less modules/entrypoints/styles/ext.cx.entrypoints.languagesearcher.legacy.less modules/entrypoints/styles/ext.cx.entrypoints.recenttranslation.less modules/tools/styles/mw.cx.tools.IssueTrackingTool.less app/src/views/Dashboard.vue app/src/components/SXSectionSelector/SXSectionSelectorHeader.vue app/src/components/SXTranslationConfirmer/SXTranslationConfirmer.vue app/src/components/CXDashboard/CXDashboard.vue minT/src/MwSpinner.vue app/src/components/SXTranslationConfirmer/SXTranslationConfirmerFeaturedCollectionBanner.vue app/src/components/CXDashboard/CXSuggestionListFilters.vue app/src/components/SXSentenceSelector/TranslatedSegmentCard.vue modules/ve-cx/ui/tools/ve.ui.CXSaveMTPreferenceTool.less modules/ui/styles/mw.cx.variables.less modules/ve-cx/ui/styles/ve.ui.CXPublishSettingsDialog.less skin/styles/menu.less app/src/views/SXContentComparator.vue minT/styles/mint.less minT/src/ConfirmTopicPage.vue app/src/components/CXDashboard/CXTranslationWorkPublished.vue app/src/components/SXContentComparator/SXContentComparatorContentHeader.vue app/src/lib/mediawiki.ui/components/MWRadioGroup/MWRadio.vue app/src/plugins/ve/components/VisualEditor.vue modules/ve-cx/ce/styles/ve.ce.CXLinkAnnotation.less app/src/components/SXContentComparator/SXContentComparatorHeader.vue app/src/components/SXArticleSearch/SearchResultsCard.vue modules/ve-cx/ce/styles/ve.ce.CXPlaceholderNode.less modules/ui/styles/grid/grid-settings.less minT/src/MWLanguageSelector.vue app/src/components/SXContentComparator/SXContentComparatorHeaderMappedSection.vue app/src/lib/mediawiki.ui/components/MWCard/MWCard.vue app/src/components/CXDashboard/CXTranslationSuggestion.vue modules/ui/styles/mw.cx.mixins.less modules/ui/styles/grid/agora-grid.less app/src/components/SXSentenceSelector/RetryMtCard.vue app/src/components/CXDashboard/CXHelpPanel.vue app/src/components/SXPublisher/SXPublisher.vue app/src/components/CXDashboard/SXTranslationListLanguageSelector.vue minT/src/CxIntroductionDialog.vue app/src/components/SXSentenceSelector/SXBlockTemplateStatusDialog.vue app/src/components/SXEditor/SXEditorOriginalContent.vue app/src/components/CXDashboard/MWBottomNavigation.vue app/src/lib/mediawiki.ui/components/MWIcon/MWIcon.vue modules/entrypoints/styles/ext.cx.contributions.less modules/widgets/callout/ext.cx.callout.less modules/ve-cx/ui/tools/ve.ui.CXResetSectionTool.less modules/entrypoints/styles/ext.cx.interlanguagelink.less app/src/components/SXQuickTutorial/SXQuickTutorial.vue app/src/views/SXEditor.vue app/src/components/CXDashboard/CXListEmptyPlaceholder.vue app/src/components/CXDashboard/SXSuggestionsFiltersDialog.vue app/src/components/SXSentenceSelector/SXSentenceSelector.vue app/src/App.vue modules/ui/styles/widgets/mw.cx.ui.CategoryTagItemWidget.less modules/ui/styles/mw.cx.ui.Columns.less app/src/components/SXSentenceSelector/TranslatedSegmentCardHeader.vue modules/ve-cx/ui/styles/ve.ui.CXSurface.less app/src/components/MWLanguageSelector/MWLanguageSelector.vue minT/src/ExploreLanguagesPage.vue app/src/components/CXDashboard/CXFavoriteList.vue app/src/components/CXDashboard/FeaturedCollectionBanner.vue app/src/components/SXSectionSelector/SXSectionSelectorViewArticleItem.vue modules/entrypoints/ext.cx.entrypoints.publishingfollowup/PublishFeedback.vue app/src/components/CXDashboard/CXSuggestionList.vue modules/entrypoints/styles/ext.cx.entrypoints.languagesearcher.less app/src/components/SXSentenceSelector/TranslatedSegmentCardActionButtons.vue modules/ui/styles/widgets/mw.cx.ui.FeatureDiscoveryWidget.less app/src/styles/page.less modules/entrypoints/styles/ext.cx.entrypoints.newarticle.less modules/ve-cx/ce/styles/ve.ce.CXLintableNode.less modules/entrypoints/ext.cx.entrypoints.languagesearcher/LanguageSearcherCardContainer.vue app/src/lib/mediawiki.ui/components/MWCircularProgressBar/MWCircleProgressBar.vue minT/src/SearchTopicPage.vue app/src/components/SXTranslationConfirmer/SXTranslationConfirmerArticleInformation.vue minT/src/SkeletonLoader.vue modules/tools/styles/mw.cx.tools.InstructionsTool.less modules/ve-cx/ui/styles/ve.ui.CXDesktopContext.less app/src/lib/mediawiki.ui/components/MWThumbnail/MWThumbnail.vue modules/entrypoints/styles/ext.cx.entrypoints.newbytranslation.mobile.less app/src/components/SXSentenceSelector/ProposedTranslationCard.vue modules/ve-cx/ui/styles/ve.ui.CXLinkContextItem.less app/src/components/CXDashboard/CustomInfoChip.vue app/src/components/SXTranslationConfirmer/SXConfirmTranslationStartDialog.vue minT/entrypoints/ArticleFooterEntrypointCard.vue app/src/views/SXTranslationConfirmer.vue modules/entrypoints/styles/ext.cx.entrypoints.uls.relevantlanguages.less app/src/lib/mediawiki.ui/components/MWExpandableContent/MWExpandableContent.vue app/src/lib/mediawiki.ui/components/MWButton/buttons.less app/src/lib/mediawiki.ui/components/MWDialog/MWDialog.vue app/src/lib/mediawiki.ui/components/MWButton/MWButton.vue app/src/components/SXSentenceSelector/BlockTemplateStatusIndicator.vue modules/ui/styles/mw.cx.highlight.less app/src/views/SXPublisher.vue modules/widgets/callout/ext.cx.callout.vector.less app/src/components/SXPublisher/SXPublisherHeader.vue modules/ui/styles/widgets/mw.cx.ui.MessageWidget.less app/src/components/SXSectionSelector/SXSectionSelectorSectionListMissing.vue app/src/components/CommunityPriorityBadge.vue modules/ve-cx/ce/mixins/ve.ce.CXPendingNode.less modules/ui/styles/mw.cx.ui.TranslationView.less app/src/components/SXSentenceSelector/ProposedTranslationActionButtons.vue app/src/components/SXSectionSelector/SXSectionSelectorSectionListPresent.vue app/src/components/SXContentComparator/SXContentComparator.vue app/src/components/SXPublisher/SXPublisherReviewInfo.vue app/src/components/SXSectionSelector/SXSectionSelectorSectionList.vue app/src/components/SXSectionSelector/SXSectionSelector.vue app/src/lib/mediawiki.ui/components/MWLayout/animations.less modules/ui/styles/widgets/mw.cx.ui.CategoryMultiselectWidget.less app/src/views/SXArticleSearch.vue app/src/components/SXContentComparator/NewSectionPlaceholder.vue app/src/components/CXDashboard/CXTranslationList.vue app/src/lib/mediawiki.ui/components/MWLayout/grid-story.less app/src/components/CXDashboard/SuggestionFilterChip.vue app/src/components/SXArticleLanguageSelector.vue modules/ui/styles/mw.cx.ui.ToolsColumn.less app/src/components/SXEditor/EditCompleteFeedback.vue modules/entrypoints/styles/ext.cx.entrypoints.mffrequentlanguages.less app/src/components/SXSentenceSelector/BlockTemplateAdaptationCard.vue modules/ve-cx/ui/styles/ve.ui.CXTranslationToolbar.less modules/ui/styles/grid/grid-core.less app/src/views/SXSectionSelector.vue modules/entrypoints/styles/ext.cx.entrypoints.newbytranslation.less app/src/lib/mediawiki.ui/components/MWProgressBar/MWProgressBar.vue app/src/views/SXQuickTutorial.vue app/src/components/CXDashboard/CXStatsPanel.vue modules/ui/styles/widgets/mw.cx.ui.TranslationIssueWidget.less app/src/components/CXDashboard/CXTranslationWorkDraft.vue app/src/components/SXSentenceSelector/SXSentenceSelectorContentHeader.vue minT/src/SearchResultItem.vue app/src/lib/mediawiki.ui/components/MWLayout/MWGrid.vue app/src/components/CXDashboard/SXConfirmTranslationDeletionDialog.vue app/src/lib/mediawiki.ui/components/MWRadioGroup/MWRadioGroup.vue app/src/lib/mediawiki.ui/components/MWButtonGroup/MWButtonGroup.vue modules/entrypoints/ext.cx.entrypoints.recenttranslation/RecentTranslationEntrypointDialog.vue app/src/components/SXPublisher/SXPublisherCaptchaDialog.vue modules/entrypoints/ext.cx.entrypoints.uls.relevantlanguages/CxUlsEntrypoint.vue app/src/components/SXArticleSearch/SXArticleSearch.vue minT/src/ViewTranslationPage.vue modules/entrypoints/ext.cx.entrypoints.newbytranslation/NewByTranslationPopup.vue app/src/components/SXPublisher/SXPublishOptionSelector.vue modules/entrypoints/styles/ext.cx.contributions.vector.less app/src/components/SXContentComparator/SXContentComparatorHeaderNavigation.vue app/src/lib/mediawiki.ui/components/MWInput/MWInput.vue modules/ve-cx/ce/styles/ve.ce.CXReferenceNode.less app/dist/style.css app/src/views/SXSentenceSelector.vue modules/entrypoints/ext.cx.entrypoints.recentedit/RecentEditEntrypointInvitation.vue app/src/components/CXDashboard/SXSuggestionsFiltersDialogTabGroupContent.vue -f json
--- stdout ---
[{"source":"/src/repo/modules/widgets/spinner/ext.cx.spinner.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.init.Translation.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.common.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.ui.Categories.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.ui.CaptchaDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.ui.TranslationHeader.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.ui.TargetColumn.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.ui.SourceColumn.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.ui.Infobar.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.variables.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.mixins.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.ui.Columns.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.highlight.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.ui.TranslationView.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/mw.cx.ui.ToolsColumn.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/widgets/mw.cx.ui.CategoryTagItemWidget.monobook.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/widgets/mw.cx.ui.TranslationToolWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/widgets/mw.cx.ui.PageTitleWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/widgets/mw.cx.ui.CategoryTagItemWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/widgets/mw.cx.ui.FeatureDiscoveryWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/widgets/mw.cx.ui.MessageWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/widgets/mw.cx.ui.CategoryMultiselectWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/widgets/mw.cx.ui.TranslationIssueWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/grid/grid-responsive.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/grid/grid-settings.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/grid/agora-grid.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ui/styles/grid/grid-core.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/styles/ext.cx.entrypoints.contributionsmenu.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/styles/ext.cx.entrypoints.languagesearcher.legacy.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/styles/ext.cx.entrypoints.recenttranslation.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/styles/ext.cx.contributions.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/styles/ext.cx.interlanguagelink.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/styles/ext.cx.entrypoints.languagesearcher.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/styles/ext.cx.entrypoints.newarticle.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/styles/ext.cx.entrypoints.newbytranslation.mobile.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/styles/ext.cx.entrypoints.uls.relevantlanguages.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/styles/ext.cx.entrypoints.mffrequentlanguages.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/styles/ext.cx.entrypoints.newbytranslation.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/styles/ext.cx.contributions.vector.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ce/styles/ve.ce.CXSectionNode.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ce/styles/ve.ce.CXSentenceSegmentAnnotation.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ce/styles/ve.ce.CXLinkAnnotation.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ce/styles/ve.ce.CXPlaceholderNode.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ce/styles/ve.ce.CXLintableNode.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ce/styles/ve.ce.CXReferenceNode.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/minT/src/TranslationLoadingIndicator.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":36,"column":1,"endLine":36,"endColumn":39,"rule":"selector-class-pattern","severity":"error","text":"Expected \".translation-viewer__loading-indicator\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":41,"column":2,"endLine":41,"endColumn":11,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/minT/src/SectionContentTranslation.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":101,"column":1,"endLine":101,"endColumn":45,"rule":"selector-class-pattern","severity":"error","text":"Expected \".translation-viewer__failed-subsection-group\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":110,"column":2,"endLine":110,"endColumn":11,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/minT/src/ViewTranslationPageOptions.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":211,"column":1,"endLine":211,"endColumn":37,"rule":"selector-class-pattern","severity":"error","text":"Expected \".translation-viewer__options-overlay\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":239,"column":4,"endLine":239,"endColumn":13,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/minT/src/MwSpinner.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/minT/src/ConfirmTopicPage.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":360,"column":1,"endLine":360,"endColumn":22,"rule":"selector-class-pattern","severity":"error","text":"Expected \".confirm-topic-header\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":364,"column":2,"endLine":364,"endColumn":11,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":369,"column":1,"endLine":369,"endColumn":23,"rule":"selector-class-pattern","severity":"error","text":"Expected \".confirm-topic-preview\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":388,"column":5,"endLine":388,"endColumn":14,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":421,"column":4,"endLine":421,"endColumn":13,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":431,"column":1,"endLine":431,"endColumn":33,"rule":"selector-class-pattern","severity":"error","text":"Expected \".confirm-topic-language-selector\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":435,"column":2,"endLine":435,"endColumn":11,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":440,"column":1,"endLine":440,"endColumn":38,"rule":"selector-class-pattern","severity":"error","text":"Expected \".confirm-topic-go-back-link-container\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":445,"column":1,"endLine":445,"endColumn":49,"rule":"selector-class-pattern","severity":"error","text":"Expected \".confirm-topic-original-target-article-container\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":455,"column":4,"endLine":455,"endColumn":42,"rule":"selector-class-pattern","severity":"error","text":"Expected \".confirm-topic-original-target-article\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":459,"column":3,"endLine":459,"endColumn":17,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-menu-item\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":470,"column":6,"endLine":470,"endColumn":15,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/minT/src/MWLanguageSelector.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":317,"column":3,"endLine":317,"endColumn":25,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-text-input__input\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":344,"column":2,"endLine":344,"endColumn":13,"rule":"selector-class-pattern","severity":"error","text":"Expected \".no-results\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":345,"column":2,"endLine":345,"endColumn":10,"rule":"selector-class-pattern","severity":"error","text":"Expected \".results\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":351,"column":2,"endLine":351,"endColumn":20,"rule":"selector-class-pattern","severity":"error","text":"Expected \".results-languages\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":352,"column":2,"endLine":352,"endColumn":33,"rule":"selector-class-pattern","severity":"error","text":"Expected \".results-languages--suggestions\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":355,"column":3,"endLine":355,"endColumn":12,"rule":"selector-class-pattern","severity":"error","text":"Expected \".language\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":366,"column":4,"endLine":366,"endColumn":16,"rule":"selector-class-pattern","severity":"error","text":"Expected \".few-results\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":370,"column":4,"endLine":370,"endColumn":17,"rule":"selector-class-pattern","severity":"error","text":"Expected \".some-results\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":374,"column":4,"endLine":374,"endColumn":17,"rule":"selector-class-pattern","severity":"error","text":"Expected \".many-results\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":379,"column":2,"endLine":379,"endColumn":33,"rule":"selector-class-pattern","severity":"error","text":"Expected \".results-languages--suggestions\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":389,"column":3,"endLine":389,"endColumn":21,"rule":"selector-class-pattern","severity":"error","text":"Expected \".results-languages\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":390,"column":5,"endLine":390,"endColumn":17,"rule":"selector-class-pattern","severity":"error","text":"Expected \".few-results\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":391,"column":5,"endLine":391,"endColumn":18,"rule":"selector-class-pattern","severity":"error","text":"Expected \".some-results\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":392,"column":5,"endLine":392,"endColumn":18,"rule":"selector-class-pattern","severity":"error","text":"Expected \".many-results\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":397,"column":3,"endLine":397,"endColumn":34,"rule":"selector-class-pattern","severity":"error","text":"Expected \".results-languages--suggestions\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":401,"column":3,"endLine":401,"endColumn":13,"rule":"selector-class-pattern","severity":"error","text":"Expected \".col-break\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":406,"column":2,"endLine":406,"endColumn":11,"rule":"selector-class-pattern","severity":"error","text":"Expected \".language\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/minT/src/CxIntroductionDialog.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":88,"column":1,"endLine":88,"endColumn":21,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-dialog-backdrop\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":88,"column":27,"endLine":88,"endColumn":54,"rule":"selector-class-pattern","severity":"error","text":"Expected \".ax-cx-introduction-summary\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":92,"column":1,"endLine":92,"endColumn":28,"rule":"selector-class-pattern","severity":"error","text":"Expected \".ax-cx-introduction-summary\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":93,"column":2,"endLine":93,"endColumn":19,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-dialog__body\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/minT/src/ExploreLanguagesPage.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":302,"column":1,"endLine":302,"endColumn":19,"rule":"selector-class-pattern","severity":"error","text":"Expected \".explore-languages\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":315,"column":3,"endLine":315,"endColumn":27,"rule":"selector-class-pattern","severity":"error","text":"Expected \".explore-languages-title\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":322,"column":3,"endLine":322,"endColumn":12,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":351,"column":4,"endLine":351,"endColumn":15,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-button\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":358,"column":4,"endLine":358,"endColumn":13,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":408,"column":4,"endLine":408,"endColumn":13,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/minT/src/SearchTopicPage.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":190,"column":1,"endLine":190,"endColumn":21,"rule":"selector-class-pattern","severity":"error","text":"Expected \".search-topic-header\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":195,"column":2,"endLine":195,"endColumn":11,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":200,"column":1,"endLine":200,"endColumn":20,"rule":"selector-class-pattern","severity":"error","text":"Expected \".search-topic-input\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":204,"column":1,"endLine":204,"endColumn":22,"rule":"selector-class-pattern","severity":"error","text":"Expected \".search-language-tabs\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":208,"column":1,"endLine":208,"endColumn":36,"rule":"selector-class-pattern","severity":"error","text":"Expected \".search-language-result-empty-state\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":213,"column":1,"endLine":213,"endColumn":24,"rule":"selector-class-pattern","severity":"error","text":"Expected \".search-language-result\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/minT/src/SkeletonLoader.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/minT/src/SearchResultItem.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":103,"column":3,"endLine":103,"endColumn":25,"rule":"selector-class-pattern","severity":"error","text":"Expected \".thumbnail-placeholder\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/minT/src/ViewTranslationPage.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":619,"column":2,"endLine":619,"endColumn":3,"rule":"@stylistic/indentation","severity":"error","text":"Expected indentation of 3 tabs (@stylistic/indentation)"},{"line":589,"column":35,"endLine":589,"endColumn":45,"rule":"declaration-no-important","severity":"error","text":"Unexpected !important (declaration-no-important)"},{"line":654,"column":12,"endLine":654,"endColumn":16,"rule":"declaration-property-value-disallowed-list","severity":"error","text":"Unexpected value \"none\" for property \"border\" (declaration-property-value-disallowed-list)"},{"line":556,"column":1,"endLine":556,"endColumn":20,"rule":"selector-class-pattern","severity":"error","text":"Expected \".translation-viewer\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":575,"column":3,"endLine":575,"endColumn":12,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":587,"column":35,"endLine":587,"endColumn":48,"rule":"selector-class-pattern","severity":"error","text":"Expected \".firstHeading\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":588,"column":26,"endLine":588,"endColumn":42,"rule":"selector-class-pattern","severity":"error","text":"Expected \".section-heading\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":599,"column":4,"endLine":599,"endColumn":41,"rule":"selector-class-pattern","severity":"error","text":"Expected \".translation-viewer__source-page-link\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":600,"column":4,"endLine":600,"endColumn":13,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":618,"column":4,"endLine":618,"endColumn":13,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":627,"column":3,"endLine":627,"endColumn":26,"rule":"selector-class-pattern","severity":"error","text":"Expected \".ext-quick-survey-panel\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":634,"column":4,"endLine":634,"endColumn":26,"rule":"selector-class-pattern","severity":"error","text":"Expected \".survey-action-buttons\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":634,"column":27,"endLine":634,"endColumn":54,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-button--action-default\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":641,"column":5,"endLine":641,"endColumn":16,"rule":"selector-class-pattern","severity":"error","text":"Expected \".references\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":642,"column":6,"endLine":642,"endColumn":16,"rule":"selector-class-pattern","severity":"error","text":"Expected \".reference\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":674,"column":1,"endLine":674,"endColumn":25,"rule":"selector-class-pattern","severity":"error","text":"Expected \".infobox-skeleton-loader\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":677,"column":2,"endLine":677,"endColumn":11,"rule":"selector-class-pattern","severity":"error","text":"Expected \".skeleton\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/skin/styles/skin.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skin/styles/menu.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/tools/styles/mw.cx.tools.IssueTrackingTool.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/tools/styles/mw.cx.tools.InstructionsTool.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ui/tools/ve.ui.CXSaveMTPreferenceTool.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ui/tools/ve.ui.CXResetSectionTool.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ui/styles/ve.ui.CXPublishSettingsDialog.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ui/styles/ve.ui.CXSurface.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ui/styles/ve.ui.CXDesktopContext.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ui/styles/ve.ui.CXLinkContextItem.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/ve-cx/ui/styles/ve.ui.CXTranslationToolbar.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/minT/styles/mint.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/widgets/callout/ext.cx.callout.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/widgets/callout/ext.cx.callout.vector.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/ext.cx.entrypoints.publishingfollowup/PublishFeedback.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":182,"column":14,"endLine":182,"endColumn":19,"rule":"color-named","severity":"error","text":"Unexpected named color \"white\" (color-named)"},{"line":203,"column":16,"endLine":203,"endColumn":26,"rule":"declaration-no-important","severity":"error","text":"Unexpected !important (declaration-no-important)"},{"line":204,"column":18,"endLine":204,"endColumn":28,"rule":"declaration-no-important","severity":"error","text":"Unexpected !important (declaration-no-important)"},{"line":185,"column":2,"endLine":185,"endColumn":6,"rule":"selector-class-pattern","severity":"error","text":"Expected \".row\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":192,"column":2,"endLine":192,"endColumn":6,"rule":"selector-class-pattern","severity":"error","text":"Expected \".col\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":198,"column":2,"endLine":198,"endColumn":7,"rule":"selector-class-pattern","severity":"error","text":"Expected \".pa-4\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":202,"column":2,"endLine":202,"endColumn":9,"rule":"selector-class-pattern","severity":"error","text":"Expected \".shrink\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/modules/entrypoints/ext.cx.entrypoints.languagesearcher/LanguageSearcherCardContainer.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/minT/entrypoints/ArticleFooterEntrypointCard.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":78,"column":1,"endLine":78,"endColumn":29,"rule":"selector-class-pattern","severity":"error","text":"Expected \".ax-article-footer-container\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/modules/ve-cx/ce/mixins/ve.ce.CXPendingNode.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/entrypoints/ext.cx.entrypoints.recenttranslation/RecentTranslationEntrypointDialog.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":227,"column":16,"endLine":227,"endColumn":26,"rule":"declaration-no-important","severity":"error","text":"Unexpected !important (declaration-no-important)"},{"line":228,"column":18,"endLine":228,"endColumn":28,"rule":"declaration-no-important","severity":"error","text":"Unexpected !important (declaration-no-important)"},{"line":277,"column":11,"endLine":277,"endColumn":15,"rule":"declaration-property-value-disallowed-list","severity":"error","text":"Unexpected value \"none\" for property \"border\" (declaration-property-value-disallowed-list)"},{"line":213,"column":2,"endLine":213,"endColumn":6,"rule":"selector-class-pattern","severity":"error","text":"Expected \".row\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":220,"column":2,"endLine":220,"endColumn":6,"rule":"selector-class-pattern","severity":"error","text":"Expected \".col\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":226,"column":2,"endLine":226,"endColumn":9,"rule":"selector-class-pattern","severity":"error","text":"Expected \".shrink\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":351,"column":18,"endLine":351,"endColumn":29,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-button\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":372,"column":51,"endLine":372,"endColumn":68,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-button__icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/modules/entrypoints/ext.cx.entrypoints.uls.relevantlanguages/CxUlsEntrypoint.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":143,"column":16,"endLine":143,"endColumn":26,"rule":"declaration-no-important","severity":"error","text":"Unexpected !important (declaration-no-important)"},{"line":144,"column":18,"endLine":144,"endColumn":28,"rule":"declaration-no-important","severity":"error","text":"Unexpected !important (declaration-no-important)"},{"line":166,"column":11,"endLine":166,"endColumn":15,"rule":"declaration-property-value-disallowed-list","severity":"error","text":"Unexpected value \"none\" for property \"border\" (declaration-property-value-disallowed-list)"},{"line":192,"column":12,"endLine":192,"endColumn":16,"rule":"declaration-property-value-disallowed-list","severity":"error","text":"Unexpected value \"none\" for property \"border\" (declaration-property-value-disallowed-list)"},{"line":129,"column":2,"endLine":129,"endColumn":6,"rule":"selector-class-pattern","severity":"error","text":"Expected \".row\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":136,"column":2,"endLine":136,"endColumn":6,"rule":"selector-class-pattern","severity":"error","text":"Expected \".col\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":142,"column":2,"endLine":142,"endColumn":9,"rule":"selector-class-pattern","severity":"error","text":"Expected \".shrink\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/modules/entrypoints/ext.cx.entrypoints.newbytranslation/NewByTranslationPopup.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":240,"column":2,"endLine":240,"endColumn":3,"rule":"@stylistic/indentation","severity":"error","text":"Expected indentation of 2 tabs (@stylistic/indentation)"},{"line":218,"column":4,"endLine":218,"endColumn":25,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-thumbnail__image\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":247,"column":4,"endLine":247,"endColumn":13,"rule":"selector-class-pattern","severity":"error","text":"Expected \".cdx-icon\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]},{"source":"/src/repo/modules/entrypoints/ext.cx.entrypoints.recentedit/RecentEditEntrypointInvitation.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":204,"column":16,"endLine":204,"endColumn":26,"rule":"declaration-no-important","severity":"error","text":"Unexpected !important (declaration-no-important)"},{"line":205,"column":18,"endLine":205,"endColumn":28,"rule":"declaration-no-important","severity":"error","text":"Unexpected !important (declaration-no-important)"},{"line":186,"column":2,"endLine":186,"endColumn":6,"rule":"selector-class-pattern","severity":"error","text":"Expected \".row\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":193,"column":2,"endLine":193,"endColumn":6,"rule":"selector-class-pattern","severity":"error","text":"Expected \".col\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":199,"column":2,"endLine":199,"endColumn":7,"rule":"selector-class-pattern","severity":"error","text":"Expected \".pa-4\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"},{"line":203,"column":2,"endLine":203,"endColumn":9,"rule":"selector-class-pattern","severity":"error","text":"Expected \".shrink\" to match pattern \"(^(mw|oo-ui|cx|sx|mint|ve|skin|uls|client|card)-|printfooter|card|card__|new$)\" (selector-class-pattern)"}]}]
--- end ---
$ /usr/bin/npm ci
--- stderr ---
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm WARN deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm WARN deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
--- stdout ---

added 902 packages, and audited 903 packages in 27s

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

15 vulnerabilities (8 moderate, 5 high, 2 critical)

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

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

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
minT/styles/mint.less
   3:1  ✖  Needless disable for "selector-class-pattern"  --report-needless-disables
   5:2  ✖  Needless disable for "selector-class-pattern"  --report-needless-disables
  10:2  ✖  Needless disable for "selector-class-pattern"  --report-needless-disables

modules/entrypoints/styles/ext.cx.entrypoints.contributionsmenu.less
  1:1  ✖  Needless disable for "selector-class-pattern"  --report-needless-disables

modules/entrypoints/styles/ext.cx.interlanguagelink.less
   5:3  ✖  Needless disable for "declaration-no-important"  --report-needless-disables
  29:4  ✖  Needless disable for "declaration-no-important"  --report-needless-disables

modules/ui/styles/mw.cx.mixins.less
  45:1  ✖  Needless disable for "selector-class-pattern"  --report-needless-disables

modules/ui/styles/mw.cx.ui.TranslationHeader.less
  48:25  ✖  Needless disable for "declaration-no-important"  --report-needless-disables

modules/ui/styles/mw.cx.ui.TranslationView.less
  90:31  ✖  Needless disable for "declaration-no-important"  --report-needless-disables
  91:38  ✖  Needless disable for "declaration-no-important"  --report-needless-disables

modules/ui/styles/widgets/mw.cx.ui.CategoryTagItemWidget.less
   6:31  ✖  Needless disable for "declaration-no-important"  --report-needless-disables
  10:31  ✖  Needless disable for "declaration-no-important"  --report-needless-disables
  15:40  ✖  Needless disable for "declaration-no-important"  --report-needless-disables
  19:34  ✖  Needless disable for "declaration-no-important"  --report-needless-disables

modules/ui/styles/widgets/mw.cx.ui.FeatureDiscoveryWidget.less
  14:4  ✖  Needless disable for "declaration-no-important"  --report-needless-disables

✖ 15 problems (15 errors, 0 warnings)
--- stdout ---

> test
> npm run test:cx2 && npm run test:cx3


> test:cx2
> npm -s run lint

Checked 3 message directories.

/src/repo/modules/entrypoints/ext.cx.interlanguagelink.js
  63:27  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/eventlogging/mw.cx.stats.eventlogging.js
  10:1  warning  Missing JSDoc @param "isMobile" type  jsdoc/require-param-type
  24:1  warning  Missing JSDoc @param "isMobile" type  jsdoc/require-param-type

/src/repo/modules/mw.cx.TranslationController.js
  327:3  warning  Prefer .then to .fail  no-jquery/no-done-fail

/src/repo/modules/mw.cx.init.Translation.js
  276:1   warning  Missing JSDoc @param "error" type  jsdoc/require-param-type
  404:3   warning  Prefer .then to .fail              no-jquery/no-done-fail
  546:10  warning  Prefer .then to .done              no-jquery/no-done-fail

/src/repo/modules/mw.cx.init.js
  35:17  warning  Object.fromEntries() is not supported in Safari 11.1, iOS Safari 11.3-11.4  compat/compat

/src/repo/modules/tools/mw.cx.tools.IssueTrackingTool.js
  26:22  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  30:24  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  35:24  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  40:20  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  52:23  warning  OOUI button has no label. Even icon-only buttons should set a label with invisibleLabel set to true  mediawiki/no-unlabeled-buttonwidget
  56: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/ui/widgets/mw.cx.ui.CategoryInputWidget.js
  34:2  warning  Prefer .then to .done  no-jquery/no-done-fail

/src/repo/modules/ve-cx/dm/ve.dm.CXPlaceholderNode.js
  55:1  warning  Missing JSDoc @return declaration  jsdoc/require-returns

/src/repo/modules/ve-cx/ui/ve.ui.CXPublishSettingsDialog.js
  102:19  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/tests/selenium/utils/InterceptorService.js
  3:9  warning  'WdioInterceptorService' is assigned a value but never used  no-unused-vars

✖ 18 problems (0 errors, 18 warnings)


--- end ---
Traceback (most recent call last):
  File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1268, in main
    libup.run()
    ~~~~~~~~~^^
  File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1202, in run
    self.npm_upgrade(plan)
    ~~~~~~~~~~~~~~~~^^^^^^
  File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1064, in npm_upgrade
    self.npm_test()
    ~~~~~~~~~~~~~^^
  File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 289, in npm_test
    self.check_call(["npm", "test"])
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.13/site-packages/runner/shell2.py", line 66, in check_call
    res.check_returncode()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3.13/subprocess.py", line 508, in check_returncode
    raise CalledProcessError(self.returncode, self.args, self.stdout,
                             self.stderr)
subprocess.CalledProcessError: Command '['/usr/bin/npm', 'test']' returned non-zero exit status 2.
Source code is licensed under the AGPL.