This run took 70 seconds.
$ date --- stdout --- Thu Mar 16 22:18:42 UTC 2023 --- end --- $ git clone file:///srv/git/mediawiki-extensions-Echo.git repo --depth=1 -b master --- stderr --- Cloning into 'repo'... --- stdout --- --- end --- $ git config user.name libraryupgrader --- stdout --- --- end --- $ git config user.email tools.libraryupgrader@tools.wmflabs.org --- stdout --- --- end --- $ git submodule update --init --- stdout --- --- end --- $ grr init --- stdout --- Installed commit-msg hook. --- end --- $ git show-ref refs/heads/master --- stdout --- b737caf98ce38ef2d80847c7167a530cfd6106de refs/heads/master --- end --- $ /usr/bin/npm audit --json --legacy-peer-deps --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "mwbot": { "name": "mwbot", "severity": "moderate", "isDirect": false, "via": [ "request" ], "effects": [ "wdio-mediawiki" ], "range": ">=0.1.6", "nodes": [ "node_modules/mwbot" ], "fixAvailable": false }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1091410, "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": 0, "vectorString": null }, "range": "<=2.88.2" } ], "effects": [ "mwbot" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": false }, "wdio-mediawiki": { "name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": [ "mwbot" ], "effects": [], "range": "*", "nodes": [ "node_modules/wdio-mediawiki" ], "fixAvailable": false } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 3, "high": 0, "critical": 0, "total": 3 }, "dependencies": { "prod": 1, "dev": 796, "optional": 1, "peer": 0, "peerOptional": 0, "total": 796 } } } --- end --- $ /usr/bin/composer install --- stderr --- No lock file found. Updating dependencies instead of installing from lock file. Use composer update over composer install if you do not have a lock file. Loading composer repositories with package information Info from https://repo.packagist.org: [37;44m#StandWith[30;43mUkraine[0m Updating dependencies Lock file operations: 34 installs, 0 updates, 0 removals - Locking composer/pcre (3.1.0) - Locking composer/semver (3.3.2) - Locking composer/spdx-licenses (1.5.7) - Locking composer/xdebug-handler (3.0.3) - Locking felixfbecker/advanced-json-rpc (v3.2.1) - Locking mediawiki/mediawiki-codesniffer (v41.0.0) - Locking mediawiki/mediawiki-phan-config (0.12.0) - Locking mediawiki/minus-x (1.1.1) - Locking mediawiki/phan-taint-check-plugin (4.0.0) - Locking microsoft/tolerant-php-parser (v0.1.1) - Locking netresearch/jsonmapper (v4.1.0) - Locking phan/phan (5.4.1) - Locking php-parallel-lint/php-console-color (v1.0.1) - Locking php-parallel-lint/php-console-highlighter (v1.0.0) - Locking php-parallel-lint/php-parallel-lint (v1.3.2) - Locking phpdocumentor/reflection-common (2.2.0) - Locking phpdocumentor/reflection-docblock (5.3.0) - Locking phpdocumentor/type-resolver (1.6.2) - Locking psr/container (1.1.2) - Locking psr/log (1.1.4) - Locking sabre/event (5.1.4) - Locking squizlabs/php_codesniffer (3.7.2) - Locking symfony/console (v5.4.21) - Locking symfony/deprecation-contracts (v2.5.2) - Locking symfony/polyfill-ctype (v1.27.0) - Locking symfony/polyfill-intl-grapheme (v1.27.0) - Locking symfony/polyfill-intl-normalizer (v1.27.0) - Locking symfony/polyfill-mbstring (v1.27.0) - Locking symfony/polyfill-php73 (v1.27.0) - Locking symfony/polyfill-php80 (v1.27.0) - Locking symfony/service-contracts (v2.5.2) - Locking symfony/string (v5.4.21) - Locking tysonandre/var_representation_polyfill (0.1.3) - Locking webmozart/assert (1.11.0) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 34 installs, 0 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] 0 [--->------------------------] - Installing composer/pcre (3.1.0): Extracting archive - Installing symfony/polyfill-php80 (v1.27.0): Extracting archive - Installing squizlabs/php_codesniffer (3.7.2): Extracting archive - Installing symfony/polyfill-mbstring (v1.27.0): Extracting archive - Installing composer/spdx-licenses (1.5.7): Extracting archive - Installing composer/semver (3.3.2): Extracting archive - Installing mediawiki/mediawiki-codesniffer (v41.0.0): Extracting archive - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.27.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.27.0): Extracting archive - Installing symfony/polyfill-ctype (v1.27.0): Extracting archive - Installing symfony/string (v5.4.21): Extracting archive - Installing symfony/deprecation-contracts (v2.5.2): Extracting archive - Installing psr/container (1.1.2): Extracting archive - Installing symfony/service-contracts (v2.5.2): Extracting archive - Installing symfony/polyfill-php73 (v1.27.0): Extracting archive - Installing symfony/console (v5.4.21): Extracting archive - Installing sabre/event (5.1.4): Extracting archive - Installing netresearch/jsonmapper (v4.1.0): Extracting archive - Installing microsoft/tolerant-php-parser (v0.1.1): Extracting archive - Installing webmozart/assert (1.11.0): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing phpdocumentor/type-resolver (1.6.2): Extracting archive - Installing phpdocumentor/reflection-docblock (5.3.0): Extracting archive - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive - Installing psr/log (1.1.4): Extracting archive - Installing composer/xdebug-handler (3.0.3): Extracting archive - Installing phan/phan (5.4.1): Extracting archive - Installing mediawiki/phan-taint-check-plugin (4.0.0): Extracting archive - Installing mediawiki/mediawiki-phan-config (0.12.0): Extracting archive - Installing mediawiki/minus-x (1.1.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.3.2): Extracting archive 0/25 [>---------------------------] 0% 10/25 [===========>----------------] 40% 20/25 [======================>-----] 80% 25/25 [============================] 100%4 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating autoload files 14 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- --- end --- Upgrading n:eslint-config-wikimedia from 0.22.1 -> 0.24.0 Upgrading n:grunt from 1.5.3 -> 1.6.1 Upgrading n:stylelint-config-wikimedia from 0.13.0 -> 0.14.0 $ /usr/bin/npm install --- stderr --- npm WARN deprecated har-validator@5.1.5: this library is 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 --- stdout --- added 790 packages, and audited 791 packages in 9s 111 packages are looking for funding run `npm fund` for details 3 moderate severity vulnerabilities Some issues need review, and may require choosing a different dependency. Run `npm audit` for details. --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- $ /usr/bin/npm install grunt-eslint@24.0.0 --save-exact --- stdout --- up to date, audited 791 packages in 1s 111 packages are looking for funding run `npm fund` for details 3 moderate severity vulnerabilities Some issues need review, and may require choosing a different dependency. Run `npm audit` for details. --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- $ ./node_modules/.bin/eslint . --fix --- stdout --- --- end --- $ ./node_modules/.bin/eslint . -f json --- stdout --- [{"filePath":"/src/repo/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/.stylelintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/.svgo.config.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/Gruntfile.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/composer.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/extension.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/api/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/api/qqq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/qqq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/jsduck.external.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/jsduck.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/modules/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/api/mw.echo.api.APIHandler.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/api/mw.echo.api.EchoApi.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/api/mw.echo.api.ForeignAPIHandler.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/api/mw.echo.api.LocalAPIHandler.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/api/mw.echo.api.NetworkHandler.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/api/mw.echo.api.PromisePrioritizer.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/api/mw.echo.api.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/controller/mw.echo.Controller.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ext.echo.centralauth.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ext.echo.init.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":40,"column":25,"nodeType":"CallExpression","endLine":40,"endColumn":57,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":41,"column":27,"nodeType":"CallExpression","endLine":41,"endColumn":60,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":47,"column":22,"nodeType":"CallExpression","endLine":47,"endColumn":83,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":49,"column":24,"nodeType":"CallExpression","endLine":49,"endColumn":87,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":60,"column":20,"nodeType":"CallExpression","endLine":60,"endColumn":44,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":172,"column":6,"nodeType":"CallExpression","endLine":172,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":232,"column":3,"nodeType":"CallExpression","endLine":232,"endColumn":42,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ext.echo.moment-hack.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/logger/mw.echo.Logger.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/mobile/NotificationBadge.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/mobile/list.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/mobile/notifications.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":53,"column":8,"nodeType":"CallExpression","endLine":53,"endColumn":45,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":74,"column":4,"nodeType":"CallExpression","endLine":74,"endColumn":64,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":88,"column":33,"nodeType":"CallExpression","endLine":88,"endColumn":79,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":90,"column":23,"nodeType":"CallExpression","endLine":90,"endColumn":89,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/mobile/notificationsFilterOverlay.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/mobile/overlay.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.BundleNotificationItem.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.CrossWikiNotificationItem.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.FiltersModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.ModelManager.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.NotificationGroupsList.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.NotificationItem.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.NotificationsList.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.PaginationModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.SeenTimeModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.SortedList.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.SourcePagesModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.UnreadNotificationCounter.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/model/mw.echo.dm.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/special/ext.echo.special.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":13,"column":15,"nodeType":"CallExpression","endLine":13,"endColumn":38,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.ActionMenuPopupWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.BadgeLinkWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.BundleNotificationItemWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-slide","severity":2,"message":"Prefer CSS transitions to .slideDown","line":194,"column":4,"nodeType":"CallExpression","endLine":194,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-slide","severity":2,"message":"Prefer CSS transitions to .slideUp","line":197,"column":4,"nodeType":"CallExpression","endLine":197,"endColumn":37,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.ClonedNotificationItemWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.ConfirmationPopupWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-fade","severity":2,"message":"Prefer CSS transitions to .fadeOut","line":61,"column":3,"nodeType":"CallExpression","endLine":61,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.CrossWikiNotificationItemWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-slide","severity":2,"message":"Prefer CSS transitions to .slideDown","line":316,"column":4,"nodeType":"CallExpression","endLine":316,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-slide","severity":2,"message":"Prefer CSS transitions to .slideUp","line":319,"column":4,"nodeType":"CallExpression","endLine":319,"endColumn":37,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.CrossWikiUnreadFilterWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.DatedNotificationsWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.DatedSubGroupListWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.FooterNoticeWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.MenuItemWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.NotificationBadgeWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.NotificationItemWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.NotificationsInboxWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.NotificationsListWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.NotificationsWrapper.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.PageFilterWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.PageNotificationsOptionWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.PaginationWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.PlaceholderItemWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.ReadStateButtonSelectWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.SingleNotificationItemWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.SortedListWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-fade","severity":2,"message":"Prefer CSS transitions to .fadeOut","line":85,"column":4,"nodeType":"CallExpression","endLine":91,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-fade","severity":2,"message":"Prefer CSS transitions to .fadeIn","line":90,"column":5,"nodeType":"CallExpression","endLine":90,"endColumn":32,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.SpecialHelpMenuWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.SubGroupListWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":123,"column":27,"nodeType":"CallExpression","endLine":123,"endColumn":50,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.ToggleReadCircleButtonWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ui/mw.echo.ui.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/package-lock.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/package.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/sql/tables-sharedtracking.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/sql/tables.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/index.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/mobile/test_NotificationBadge.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/model/test_mw.echo.dm.BundleNotificationItem.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/model/test_mw.echo.dm.CrossWikiNotificationItem.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/model/test_mw.echo.dm.FiltersModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/model/test_mw.echo.dm.NotificationGroupsList.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/model/test_mw.echo.dm.NotificationItem.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/model/test_mw.echo.dm.NotificationsList.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/model/test_mw.echo.dm.PaginationModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/model/test_mw.echo.dm.SeenTimeModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/model/test_mw.echo.dm.SourcePagesModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/model/test_mw.echo.dm.UnreadNotificationCounter.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/selenium/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/echo.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/notifications.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/specs/echo.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/specs/notifications.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio.conf.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]}] --- end --- $ ./node_modules/.bin/grunt stylelint --- stdout --- Running "stylelint:all" (stylelint) task modules/nojs/mw.echo.badge.less 35:5 ✖ Expected double colon pseudo-element notation selector-pseudo-element-colon-notation 41:4 ✖ Expected double colon pseudo-element notation selector-pseudo-element-colon-notation 66:5 ✖ Expected double colon pseudo-element notation selector-pseudo-element-colon-notation 72:5 ✖ Expected double colon pseudo-element notation selector-pseudo-element-colon-notation 80:28 ✖ Expected double colon pseudo-element notation selector-pseudo-element-colon-notation 84:29 ✖ Expected double colon pseudo-element notation selector-pseudo-element-colon-notation modules/styles/mw.echo.ui.DatedSubGroupListWidget.less 19:5 ✖ Expected double colon pseudo-element notation selector-pseudo-element-colon-notation modules/styles/mw.echo.ui.MenuItemWidget.less 4:1 ✖ Needless disable for "no-descending-specificity" --report-needless-disables 8 problems (8 errors, 0 warnings) ⚠ 8 warnings Warning: Task "stylelint:all" failed. Use --force to continue. Aborted due to warnings. --- end --- $ ./node_modules/.bin/stylelint modules/nojs/mw.echo.notifications.less modules/styles/LabelIconWidget.less modules/styles/mw.echo.ui.mobile.less modules/nojs/mw.echo.special.less modules/styles/mw.echo.ui.PageFilterWidget.less modules/nojs/mw.echo.alert.less modules/styles/mw.echo.ui.ActionMenuPopupWidget.less modules/styles/mw.echo.ui.NotificationsWrapper.less modules/echo.mixins.less modules/styles/mw.echo.ui.PageNotificationsOptionWidget.less modules/styles/mw.echo.ui.CrossWikiUnreadFilterWidget.less modules/styles/mw.echo.ui.overlay.less modules/styles/mw.echo.ui.SubGroupListWidget.less modules/styles/mw.echo.ui.NotificationsInboxWidget.minerva.less modules/styles/mw.echo.ui.NotificationsListWidget.less modules/echo.variables.less modules/styles/mw.echo.ui.ToggleReadCircleButtonWidget.less modules/styles/mw.echo.ui.overlay.vector.less modules/nojs/mw.echo.alert.monobook.less modules/styles/mw.echo.ui.ConfirmationPopupWidget.less modules/styles/mw.echo.ui.overlay.wikimediaapiportal.less modules/styles/mw.echo.ui.DatedNotificationsWidget.less modules/styles/mw.echo.ui.SpecialHelpMenuWidget.less modules/styles/mw.echo.ui.NotificationsInboxWidget.less modules/styles/mw.echo.ui.PaginationWidget.less modules/styles/mw.echo.ui.DatedSubGroupListWidget.less modules/styles/mw.echo.ui.FooterNoticeWidget.less modules/nojs/mw.echo.badge.less modules/mobile/overlay.less modules/styles/mw.echo.ui.MenuItemWidget.less modules/styles/mw.echo.ui.overlay.monobook.less modules/styles/mw.echo.ui.overlay.minerva.less modules/mobile/notificationsFilterOverlay.less modules/styles/mw.echo.ui.PlaceholderItemWidget.less modules/styles/mw.echo.ui.CrossWikiNotificationItemWidget.less modules/styles/mw.echo.ui.NotificationItemWidget.less modules/styles/mw.echo.ui.NotificationBadgeWidget.less -f json --- stdout --- [{"source":"/src/repo/modules/nojs/mw.echo.notifications.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/LabelIconWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.mobile.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/nojs/mw.echo.special.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.PageFilterWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/nojs/mw.echo.alert.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.ActionMenuPopupWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.NotificationsWrapper.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/echo.mixins.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.PageNotificationsOptionWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.CrossWikiUnreadFilterWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.overlay.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.SubGroupListWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.NotificationsInboxWidget.minerva.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.NotificationsListWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/echo.variables.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.ToggleReadCircleButtonWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.overlay.vector.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/nojs/mw.echo.alert.monobook.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.ConfirmationPopupWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.overlay.wikimediaapiportal.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.DatedNotificationsWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.SpecialHelpMenuWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.NotificationsInboxWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.PaginationWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.DatedSubGroupListWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":19,"column":5,"endLine":19,"endColumn":6,"rule":"selector-pseudo-element-colon-notation","severity":"error","text":"Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation)"}]},{"source":"/src/repo/modules/styles/mw.echo.ui.FooterNoticeWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/nojs/mw.echo.badge.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":35,"column":5,"endLine":35,"endColumn":6,"rule":"selector-pseudo-element-colon-notation","severity":"error","text":"Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation)"},{"line":41,"column":4,"endLine":41,"endColumn":5,"rule":"selector-pseudo-element-colon-notation","severity":"error","text":"Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation)"},{"line":66,"column":5,"endLine":66,"endColumn":6,"rule":"selector-pseudo-element-colon-notation","severity":"error","text":"Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation)"},{"line":72,"column":5,"endLine":72,"endColumn":6,"rule":"selector-pseudo-element-colon-notation","severity":"error","text":"Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation)"},{"line":80,"column":28,"endLine":80,"endColumn":29,"rule":"selector-pseudo-element-colon-notation","severity":"error","text":"Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation)"},{"line":84,"column":29,"endLine":84,"endColumn":30,"rule":"selector-pseudo-element-colon-notation","severity":"error","text":"Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation)"}]},{"source":"/src/repo/modules/mobile/overlay.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.MenuItemWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"text":"Needless disable for \"no-descending-specificity\"","rule":"--report-needless-disables","line":4,"column":1,"endLine":4,"endColumn":49,"severity":"error"}]},{"source":"/src/repo/modules/styles/mw.echo.ui.overlay.monobook.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.overlay.minerva.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/mobile/notificationsFilterOverlay.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.PlaceholderItemWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.CrossWikiNotificationItemWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.NotificationItemWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/modules/styles/mw.echo.ui.NotificationBadgeWidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]}] --- end --- $ /usr/bin/npm ci --legacy-peer-deps --- stderr --- npm WARN deprecated har-validator@5.1.5: this library is 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 --- stdout --- added 790 packages, and audited 791 packages in 8s 111 packages are looking for funding run `npm fund` for details 3 moderate severity vulnerabilities Some issues need review, and may require choosing a different dependency. Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stdout --- > echo@0.0.1 test > grunt test Running "eslint:all" (eslint) task Running "stylelint:all" (stylelint) task modules/echo.mixins.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/echo.variables.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/mobile/notificationsFilterOverlay.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/mobile/overlay.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/nojs/mw.echo.alert.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/nojs/mw.echo.alert.monobook.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/nojs/mw.echo.badge.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/nojs/mw.echo.notifications.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/nojs/mw.echo.special.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/LabelIconWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.ActionMenuPopupWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.ConfirmationPopupWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.CrossWikiNotificationItemWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.CrossWikiUnreadFilterWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.DatedNotificationsWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.DatedSubGroupListWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.FooterNoticeWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.MenuItemWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables 4:1 ✖ Needless disable for "no-descending-specificity" --report-needless-disables modules/styles/mw.echo.ui.mobile.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.NotificationBadgeWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.NotificationItemWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.NotificationsInboxWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.NotificationsInboxWidget.minerva.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.NotificationsListWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.NotificationsWrapper.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.overlay.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.overlay.minerva.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.overlay.monobook.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.overlay.vector.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.overlay.wikimediaapiportal.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.PageFilterWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.PageNotificationsOptionWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.PaginationWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.PlaceholderItemWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.SpecialHelpMenuWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.SubGroupListWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables modules/styles/mw.echo.ui.ToggleReadCircleButtonWidget.less 1:1 ✖ Unknown rule --report-needless-disables --report-needless-disables 38 problems (38 errors, 0 warnings) ⚠ 38 warnings Warning: Task "stylelint:all" failed. Use --force to continue. Aborted due to warnings. --- end --- Traceback (most recent call last): File "/venv/lib/python3.9/site-packages/runner-0.1.0-py3.9.egg/runner/__init__.py", line 1400, in main libup.run(args.repo, args.output, args.branch) File "/venv/lib/python3.9/site-packages/runner-0.1.0-py3.9.egg/runner/__init__.py", line 1338, in run self.npm_upgrade(plan) File "/venv/lib/python3.9/site-packages/runner-0.1.0-py3.9.egg/runner/__init__.py", line 1049, in npm_upgrade self.npm_test() File "/venv/lib/python3.9/site-packages/runner-0.1.0-py3.9.egg/runner/__init__.py", line 287, in npm_test self.check_call(['npm', 'test']) File "/venv/lib/python3.9/site-packages/runner-0.1.0-py3.9.egg/runner/shell2.py", line 54, in check_call res.check_returncode() File "/usr/lib/python3.9/subprocess.py", line 460, in check_returncode raise CalledProcessError(self.returncode, self.args, self.stdout, subprocess.CalledProcessError: Command '['/usr/bin/npm', 'test']' returned non-zero exit status 3.