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.