This run took 63 seconds.
$ date --- stdout --- Mon Mar 20 21:24:14 UTC 2023 --- end --- $ git clone file:///srv/git/mediawiki-extensions-TwoColConflict.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 --- 673beb4a3bdbd8e5c36c1e894db6b17bfadbeab3 refs/heads/master --- end --- $ /usr/bin/npm audit --json --legacy-peer-deps --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "http-cache-semantics": { "name": "http-cache-semantics", "severity": "high", "isDirect": false, "via": [ { "source": 1090532, "name": "http-cache-semantics", "dependency": "http-cache-semantics", "title": "http-cache-semantics vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-rc47-6667-2j5j", "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": "<4.1.1" } ], "effects": [], "range": "<4.1.1", "nodes": [ "node_modules/http-cache-semantics" ], "fixAvailable": true }, "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 }, "ua-parser-js": { "name": "ua-parser-js", "severity": "high", "isDirect": false, "via": [ { "source": 1088697, "name": "ua-parser-js", "dependency": "ua-parser-js", "title": "ReDoS Vulnerability in ua-parser-js version ", "url": "https://github.com/advisories/GHSA-fhg7-m89q-25r3", "severity": "high", "cwe": [ "CWE-400", "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": "<0.7.33" } ], "effects": [], "range": "<0.7.33", "nodes": [ "node_modules/ua-parser-js" ], "fixAvailable": true }, "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": 2, "critical": 0, "total": 5 }, "dependencies": { "prod": 1, "dev": 850, "optional": 2, "peer": 10, "peerOptional": 0, "total": 850 } } } --- 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: 36 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 doctrine/deprecations (v1.0.0) - 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.7.0) - Locking phpstan/phpdoc-parser (1.16.1) - 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: 36 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 phpstan/phpdoc-parser (1.16.1): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing doctrine/deprecations (v1.0.0): Extracting archive - Installing phpdocumentor/type-resolver (1.7.0): 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/27 [>---------------------------] 0% 9/27 [=========>------------------] 33% 19/27 [===================>--------] 70% 26/27 [==========================>-] 96% 27/27 [============================] 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.1 -> 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 827 packages, and audited 828 packages in 12s 104 packages are looking for funding run `npm fund` for details 5 vulnerabilities (3 moderate, 2 high) To address issues that do not require attention, run: npm audit fix 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 828 packages in 2s 104 packages are looking for funding run `npm fund` for details 5 vulnerabilities (3 moderate, 2 high) To address issues that do not require attention, run: npm audit fix 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 i18n/da.json i18n/ar.json i18n/ru.json i18n/sw.json i18n/sh.json i18n/tly.json i18n/scn.json i18n/gl.json i18n/se.json i18n/de.json i18n/sa.json i18n/ko.json tests/selenium/specs/talkpage.js i18n/lld.json i18n/zh-hans.json i18n/te.json i18n/ml.json i18n/syl.json i18n/et.json i18n/bqi.json i18n/ro.json i18n/br.json tests/selenium/pageobjects/editconflict.page.js i18n/pwn.json i18n/sr-el.json i18n/cs.json modules/SplitTwoColConflict/ext.TwoColConflict.Split.init.js i18n/vec.json i18n/ne.json i18n/as.json i18n/nn.json tests/selenium/pageobjects/talkconflict.page.js i18n/sd.json i18n/udm.json modules/SplitTwoColConflict/ext.TwoColConflict.Split.Merger.js i18n/ja.json i18n/fr.json i18n/ka.json i18n/he.json i18n/eo.json i18n/oc.json i18n/zh-hant.json i18n/pt-br.json tests/selenium/specs/collapse.js i18n/tr.json i18n/be-tarask.json tests/selenium/pageobjects/edit.page.js tests/selenium/pageobjects/preferences.page.js i18n/lij.json i18n/qqq.json i18n/fy.json i18n/skr-arab.json i18n/es.json i18n/sje.json tests/selenium/specs/tourdialog.js tests/selenium/specs/nojs.js tests/selenium/test_accounts.js i18n/kjp.json i18n/inh.json i18n/kab.json i18n/hy.json modules/SplitTwoColConflict/ext.TwoColConflict.Split.tracking.js i18n/en.json i18n/sr-ec.json i18n/bg.json i18n/trv.json modules/ext.TwoColConflict.Util.js i18n/id.json i18n/mt.json i18n/is.json i18n/ca.json modules/ext.TwoColConflict.JSCheck.js i18n/mui.json modules/SplitTwoColConflict/ext.TwoColConflict.Split.Tour.js i18n/eu.json i18n/ms.json i18n/gom-latn.json i18n/bs.json i18n/be.json i18n/vi.json composer.json i18n/hi.json i18n/roa-tara.json i18n/ia.json i18n/nqo.json i18n/sdc.json i18n/sk.json i18n/my.json i18n/ur.json i18n/ckb.json Gruntfile.js i18n/zgh.json package.json i18n/nb.json i18n/ku-latn.json i18n/jv.json i18n/mk.json tests/qunit/SplitTwoColConflict/TwoColConflict.Merger.test.js i18n/nl.json i18n/lv.json i18n/ug-arab.json i18n/el.json i18n/it.json i18n/sms.json i18n/lt.json i18n/tcy.json i18n/az.json modules/ext.TwoColConflict.Settings.js i18n/af.json tests/selenium/pageobjects/finishedconflict.page.js package-lock.json tests/selenium/wdio.conf.js tests/selenium/specs/saveandpreview.js i18n/yi.json tests/selenium/specs/twocolconflict.js i18n/smn.json i18n/ast.json i18n/sv.json i18n/uk.json i18n/io.json extension.json i18n/pnb.json i18n/sl.json i18n/lb.json i18n/pl.json i18n/hu.json tests/selenium/specs/editmerge.js i18n/ban.json i18n/ce.json i18n/fi.json i18n/xsy.json i18n/bn.json i18n/hr.json tests/qunit/SplitTwoColConflict/TwoColConflict.Split.tracking.test.js i18n/es-formal.json i18n/fa.json i18n/lmo.json i18n/pt.json --fix --- stdout --- /src/repo/tests/selenium/pageobjects/editconflict.page.js 141:3 error Unexpected browser.pause() not allowed wdio/no-pause /src/repo/tests/selenium/specs/tourdialog.js 79:1 warning This line has a length of 111. Maximum allowed is 100 max-len ✖ 2 problems (1 error, 1 warning) --- end --- $ ./node_modules/.bin/eslint i18n/da.json i18n/ar.json i18n/ru.json i18n/sw.json i18n/sh.json i18n/tly.json i18n/scn.json i18n/gl.json i18n/se.json i18n/de.json i18n/sa.json i18n/ko.json tests/selenium/specs/talkpage.js i18n/lld.json i18n/zh-hans.json i18n/te.json i18n/ml.json i18n/syl.json i18n/et.json i18n/bqi.json i18n/ro.json i18n/br.json tests/selenium/pageobjects/editconflict.page.js i18n/pwn.json i18n/sr-el.json i18n/cs.json modules/SplitTwoColConflict/ext.TwoColConflict.Split.init.js i18n/vec.json i18n/ne.json i18n/as.json i18n/nn.json tests/selenium/pageobjects/talkconflict.page.js i18n/sd.json i18n/udm.json modules/SplitTwoColConflict/ext.TwoColConflict.Split.Merger.js i18n/ja.json i18n/fr.json i18n/ka.json i18n/he.json i18n/eo.json i18n/oc.json i18n/zh-hant.json i18n/pt-br.json tests/selenium/specs/collapse.js i18n/tr.json i18n/be-tarask.json tests/selenium/pageobjects/edit.page.js tests/selenium/pageobjects/preferences.page.js i18n/lij.json i18n/qqq.json i18n/fy.json i18n/skr-arab.json i18n/es.json i18n/sje.json tests/selenium/specs/tourdialog.js tests/selenium/specs/nojs.js tests/selenium/test_accounts.js i18n/kjp.json i18n/inh.json i18n/kab.json i18n/hy.json modules/SplitTwoColConflict/ext.TwoColConflict.Split.tracking.js i18n/en.json i18n/sr-ec.json i18n/bg.json i18n/trv.json modules/ext.TwoColConflict.Util.js i18n/id.json i18n/mt.json i18n/is.json i18n/ca.json modules/ext.TwoColConflict.JSCheck.js i18n/mui.json modules/SplitTwoColConflict/ext.TwoColConflict.Split.Tour.js i18n/eu.json i18n/ms.json i18n/gom-latn.json i18n/bs.json i18n/be.json i18n/vi.json composer.json i18n/hi.json i18n/roa-tara.json i18n/ia.json i18n/nqo.json i18n/sdc.json i18n/sk.json i18n/my.json i18n/ur.json i18n/ckb.json Gruntfile.js i18n/zgh.json package.json i18n/nb.json i18n/ku-latn.json i18n/jv.json i18n/mk.json tests/qunit/SplitTwoColConflict/TwoColConflict.Merger.test.js i18n/nl.json i18n/lv.json i18n/ug-arab.json i18n/el.json i18n/it.json i18n/sms.json i18n/lt.json i18n/tcy.json i18n/az.json modules/ext.TwoColConflict.Settings.js i18n/af.json tests/selenium/pageobjects/finishedconflict.page.js package-lock.json tests/selenium/wdio.conf.js tests/selenium/specs/saveandpreview.js i18n/yi.json tests/selenium/specs/twocolconflict.js i18n/smn.json i18n/ast.json i18n/sv.json i18n/uk.json i18n/io.json extension.json i18n/pnb.json i18n/sl.json i18n/lb.json i18n/pl.json i18n/hu.json tests/selenium/specs/editmerge.js i18n/ban.json i18n/ce.json i18n/fi.json i18n/xsy.json i18n/bn.json i18n/hr.json tests/qunit/SplitTwoColConflict/TwoColConflict.Split.tracking.test.js i18n/es-formal.json i18n/fa.json i18n/lmo.json i18n/pt.json -f json --- stdout --- [{"filePath":"/src/repo/Gruntfile.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/composer.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/extension.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/af.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ar.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/as.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ast.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/az.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ban.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/be-tarask.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/be.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/bg.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/bn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/bqi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/br.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/bs.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ca.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ce.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ckb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/cs.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/da.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/de.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/el.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/eo.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/es-formal.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/es.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/et.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/eu.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/fa.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/fi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/fr.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/fy.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/gl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/gom-latn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/he.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/hi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/hr.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/hu.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/hy.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ia.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/id.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/inh.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/io.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/is.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/it.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ja.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/jv.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ka.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/kab.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/kjp.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ko.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ku-latn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/lb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/lij.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/lld.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/lmo.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/lt.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/lv.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/mk.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ml.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ms.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/mt.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/mui.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/my.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ne.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nqo.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/oc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/pl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/pnb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/pt-br.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/pt.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/pwn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/qqq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ro.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/roa-tara.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ru.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sa.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/scn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sd.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sdc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/se.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sh.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sje.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sk.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/skr-arab.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/smn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sms.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sr-ec.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sr-el.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sv.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sw.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/syl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/tcy.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/te.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/tly.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/tr.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/trv.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/udm.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ug-arab.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/uk.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ur.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/vec.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/vi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/xsy.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/yi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/zgh.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/zh-hans.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/zh-hant.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/SplitTwoColConflict/ext.TwoColConflict.Split.Merger.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/SplitTwoColConflict/ext.TwoColConflict.Split.Tour.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/SplitTwoColConflict/ext.TwoColConflict.Split.init.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/SplitTwoColConflict/ext.TwoColConflict.Split.tracking.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":75,"column":7,"nodeType":"CallExpression","endLine":75,"endColumn":59,"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":77,"column":14,"nodeType":"CallExpression","endLine":77,"endColumn":63,"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":79,"column":14,"nodeType":"CallExpression","endLine":79,"endColumn":64,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'start_time_ts_ms' is not in camel case.","line":102,"column":3,"nodeType":"Identifier","messageId":"notCamelCase","endLine":102,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'base_rev_id' is not in camel case.","line":103,"column":3,"nodeType":"Identifier","messageId":"notCamelCase","endLine":103,"endColumn":14,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'latest_rev_id' is not in camel case.","line":104,"column":3,"nodeType":"Identifier","messageId":"notCamelCase","endLine":104,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'page_namespace' is not in camel case.","line":105,"column":3,"nodeType":"Identifier","messageId":"notCamelCase","endLine":105,"endColumn":17,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'page_title' is not in camel case.","line":106,"column":3,"nodeType":"Identifier","messageId":"notCamelCase","endLine":106,"endColumn":13,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'session_token' is not in camel case.","line":108,"column":3,"nodeType":"Identifier","messageId":"notCamelCase","endLine":108,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ext.TwoColConflict.JSCheck.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ext.TwoColConflict.Settings.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/modules/ext.TwoColConflict.Util.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":[]},{"filePath":"/src/repo/package.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/SplitTwoColConflict/TwoColConflict.Merger.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/SplitTwoColConflict/TwoColConflict.Split.tracking.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/selenium/pageobjects/edit.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/editconflict.page.js","messages":[{"ruleId":"wdio/no-pause","severity":2,"message":"Unexpected browser.pause() not allowed","line":141,"column":3,"nodeType":"CallExpression","messageId":"unexpectedPause","endLine":141,"endColumn":23}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\nconst assert = require( 'assert' ),\n\tPage = require( 'wdio-mediawiki/Page' ),\n\tEditPage = require( '../pageobjects/edit.page' ),\n\tUserLoginPage = require( 'wdio-mediawiki/LoginPage' ),\n\tTestAccounts = require( '../test_accounts' ),\n\tUtil = require( 'wdio-mediawiki/Util' );\n\nclass EditConflictPage extends Page {\n\tget conflictHeader() { return $( '.mw-twocolconflict-split-header' ); }\n\tget conflictView() { return $( '.mw-twocolconflict-split-view' ); }\n\n\tgetParagraph( column ) { return $( this.columnToClass( column ) + ' .mw-twocolconflict-split-editable' ); }\n\tgetEditButton( column ) { return $( this.columnToClass( column ) + ' .mw-twocolconflict-split-edit-button' ); }\n\tgetSaveButton( column ) { return $( this.columnToClass( column ) + ' .mw-twocolconflict-split-save-button' ); }\n\tgetResetButton( column ) { return $( this.columnToClass( column ) + ' .mw-twocolconflict-split-reset-button' ); }\n\tgetEditor( column ) { return $( this.columnToClass( column ) + ' .mw-twocolconflict-split-editor' ); }\n\tgetDiffText( column ) { return $( this.columnToClass( column ) + ' .mw-twocolconflict-split-difftext' ); }\n\tgetColumn( column ) { return $( this.columnToClass( column ) ); }\n\n\tget selectionLabel() { return $( '.mw-twocolconflict-split-row .mw-twocolconflict-split-selector-label > span' ); }\n\tget otherParagraphSelection() { return $( '.mw-twocolconflict-split-selection-row div:nth-child(1) span' ); }\n\tget otherParagraphRadio() { return $( '.mw-twocolconflict-split-selection-row div:nth-child(1) input' ); }\n\tget otherParagraphAllSelection() { return $( '.mw-twocolconflict-split-selection-header div:nth-child(1) span' ); }\n\tget yourParagraphSelection() { return $( '.mw-twocolconflict-split-selection-row div:nth-child(2) span' ); }\n\tget yourParagraphRadio() { return $( '.mw-twocolconflict-split-selection-row div:nth-child(2) input' ); }\n\n\tget resetConfirmationPopup() { return $( '.oo-ui-windowManager-floating .oo-ui-window-content' ); }\n\tget resetConfirmationButton() { return $( '.oo-ui-windowManager-floating .oo-ui-window-content .oo-ui-messageDialog-actions span:nth-of-type(2) a' ); }\n\n\tget collapsedParagraph() { return $( '.mw-twocolconflict-split-collapsed' ); }\n\tget expandedParagraph() { return $( '.mw-twocolconflict-split-expanded' ); }\n\tget fadeOverlay() { return $( '.mw-twocolconflict-split-fade' ); }\n\tget collapseButton() { return $( '.mw-twocolconflict-split-collapse-button' ); }\n\tget expandButton() { return $( '.mw-twocolconflict-split-expand-button' ); }\n\n\tget infoButton() { return $( '.mw-twocolconflict-split-tour-help-button' ); }\n\tget tourDialog() { return $( '.mw-twocolconflict-split-tour-intro-container' ); }\n\tget tourDialogCloseButton() { return $( '.mw-twocolconflict-split-tour-intro-container a' ); }\n\n\tget tourDiffChangeButton() { return $( '.mw-twocolconflict-diffchange .mw-twocolconflict-split-tour-pulsating-button' ); }\n\tget tourSplitSelectionButton() { return $( '.mw-twocolconflict-split-selection .mw-twocolconflict-split-tour-pulsating-button' ); }\n\n\tget tourYourVersionHeaderPopup() { return $( '.mw-twocolconflict-split-your-version-header .mw-twocolconflict-split-tour-popup' ); }\n\tget tourDiffChangePopup() { return $( '.mw-twocolconflict-diffchange .mw-twocolconflict-split-tour-popup' ); }\n\tget tourDiffChangePopupCloseButton() { return $( '.mw-twocolconflict-diffchange .mw-twocolconflict-split-tour-popup a' ); }\n\n\tget submitButton() { return $( '#wpSave' ); }\n\tget previewButton() { return $( '#wpPreview' ); }\n\n\tget previewView() { return $( '#wikiPreview' ); }\n\tget previewText() { return $( '#wikiPreview .mw-parser-output' ); }\n\n\tget coreUiHint() { return $( '.mw-twocolconflict-core-ui-hint .oo-ui-messageWidget' ); }\n\tget coreUiHintCloseButton() { return $( '.mw-twocolconflict-core-ui-hint .oo-ui-icon-close' ); }\n\n\tget rowsInEditMode() { return $( '.mw-twocolconflict-split-editing' ); }\n\n\tcolumnToClass( column ) {\n\t\tswitch ( column ) {\n\t\t\tcase 'other':\n\t\t\t\treturn '.mw-twocolconflict-split-delete';\n\t\t\tcase 'your':\n\t\t\t\treturn '.mw-twocolconflict-split-add';\n\t\t\tdefault:\n\t\t\t\treturn '.mw-twocolconflict-split-copy';\n\t\t}\n\t}\n\n\t/**\n\t * Disables VisualEditor, edit warning popups and sets test\n\t * defaults to makes sure the feature is used and the help\n\t * dialog hidden.\n\t *\n\t * @return {Promise} Promise from the mw.Api request\n\t */\n\tprepareUserSettings() {\n\t\tUtil.waitForModuleState( 'mediawiki.base' );\n\t\treturn browser.execute( function () {\n\t\t\treturn mw.loader.using( 'mediawiki.api' ).then( function () {\n\t\t\t\treturn new mw.Api().saveOptions( {\n\t\t\t\t\t'visualeditor-hidebetawelcome': '1',\n\t\t\t\t\t'visualeditor-betatempdisable': '1',\n\t\t\t\t\tuseeditwarning: '0',\n\t\t\t\t\t'twocolconflict-enabled': '1',\n\t\t\t\t\ttwocolconflict: '1',\n\t\t\t\t\t'userjs-twocolconflict-hide-help-dialogue': '1'\n\t\t\t\t} );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * @param {boolean} [show] Defaults to true.\n\t * @return {Promise} Promise from the mw.Api request\n\t */\n\ttoggleHelpDialog( show ) {\n\t\tconst hide = show === false;\n\t\tUtil.waitForModuleState( 'mediawiki.base' );\n\t\treturn browser.execute( function ( setHide ) {\n\t\t\treturn mw.loader.using( 'mediawiki.api' ).then( function () {\n\t\t\t\treturn new mw.Api().saveOption(\n\t\t\t\t\t'userjs-twocolconflict-hide-help-dialogue',\n\t\t\t\t\tsetHide ? '1' : '0'\n\t\t\t\t);\n\t\t\t} );\n\t\t}, hide );\n\t}\n\n\tprepareEditConflict() {\n\t\tUserLoginPage.loginAdmin();\n\t\tthis.prepareUserSettings();\n\t}\n\n\tshowSimpleConflict() {\n\t\tthis.createConflict(\n\t\t\t// Includes HTML characters to check for proper escaping throughout the process.\n\t\t\t// Note the final assertions will look for \"Line 1\", \"Change A\" and such only, without\n\t\t\t// any of the HTML code being visible.\n\t\t\t'Line<span>1</span>\\n\\nLine2',\n\t\t\t'Line<span>1</span>\\n\\nChange <span lang=\"de\">A</span>',\n\t\t\t'Line<span>1</span>\\n\\nChange <span lang=\"en\">B</span>'\n\t\t);\n\t\tthis.waitForJS();\n\t}\n\n\tshowBigConflict() {\n\t\tthis.createConflict(\n\t\t\t'Line1\\nLine2\\nLine3\\nline4',\n\t\t\t'Line1\\nLine2\\nLine3\\nChange <span lang=\"de\">A</span>',\n\t\t\t'Line1\\nLine2\\nLine3\\nChange <span lang=\"en\">B</span>'\n\t\t);\n\t\tthis.waitForJS();\n\t}\n\n\teditPage( bot, title, text ) {\n\t\tbrowser.call( async () => {\n\t\t\treturn await bot.edit( title, text );\n\t\t} );\n\t\tbrowser.pause( 500 );\n\t}\n\n\tcreateConflict(\n\t\tstartText,\n\t\totherText,\n\t\tyourText,\n\t\ttitle = null,\n\t\tsection = null\n\t) {\n\t\ttitle = ( title !== null ) ? title : Util.getTestString( 'conflict-title-' );\n\n\t\tthis.editPage( TestAccounts.you, title, startText );\n\n\t\tif ( section !== null ) {\n\t\t\tEditPage.openSectionForEditing( title, section );\n\t\t} else {\n\t\t\tEditPage.openForEditing( title );\n\t\t}\n\n\t\tEditPage.content.waitForExist();\n\n\t\tthis.editPage( TestAccounts.other, title, otherText );\n\n\t\tEditPage.content.setValue( yourText );\n\t\tEditPage.save.click();\n\t}\n\n\twaitForJS() {\n\t\tUtil.waitForModuleState( 'ext.TwoColConflict.SplitJs' );\n\t}\n\n\ttestNoJs() {\n\t\treturn browser.setCookies( {\n\t\t\tname: 'mw-twocolconflict-test-nojs',\n\t\t\tvalue: '1'\n\t\t} );\n\t}\n\n\tassertUnchangedIsCollapsed() {\n\t\tassert(\n\t\t\tthis.fadeOverlay.isDisplayed(),\n\t\t\t'an overlay fades the collapsed text'\n\t\t);\n\t\tassert(\n\t\t\tthis.collapsedParagraph.isDisplayed(),\n\t\t\t'the collapsed paragraph text is visible'\n\t\t);\n\t\tassert(\n\t\t\t!this.expandedParagraph.isDisplayed(),\n\t\t\t'the expanded paragraph text is hidden'\n\t\t);\n\t\tassert(\n\t\t\tthis.expandButton.isDisplayed(),\n\t\t\t'the expand button is visible'\n\t\t);\n\t\tassert(\n\t\t\t!this.collapseButton.isDisplayed(),\n\t\t\t'the collapse button is hidden'\n\t\t);\n\t}\n\n\tassertUnchangedIsExpanded() {\n\t\tassert(\n\t\t\t!this.fadeOverlay.isDisplayed(),\n\t\t\t'no overlay fades the collapsed text'\n\t\t);\n\t\tassert(\n\t\t\tthis.expandedParagraph.isDisplayed(),\n\t\t\t'the expanded paragraph text is visible'\n\t\t);\n\t\tassert(\n\t\t\t!this.collapsedParagraph.isDisplayed(),\n\t\t\t'the collapsed paragraph text is hidden'\n\t\t);\n\t\tassert(\n\t\t\t!this.expandButton.isDisplayed(),\n\t\t\t'the expand button is hidden'\n\t\t);\n\t\tassert(\n\t\t\tthis.collapseButton.isDisplayed(),\n\t\t\t'the collapse button is visible'\n\t\t);\n\t}\n\n}\n\nmodule.exports = new EditConflictPage();\n","usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/finishedconflict.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/preferences.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/talkconflict.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/collapse.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/editmerge.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/nojs.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/saveandpreview.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/talkpage.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/tourdialog.js","messages":[{"ruleId":"max-len","severity":1,"message":"This line has a length of 111. Maximum allowed is 100.","line":79,"column":1,"nodeType":"Program","messageId":"max","endLine":79,"endColumn":103}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\nconst assert = require( 'assert' ),\n\tEditConflictPage = require( '../pageobjects/editconflict.page' );\n\ndescribe( 'TwoColConflict GuidedTour', function () {\n\tbefore( function () {\n\t\tEditConflictPage.prepareEditConflict();\n\t} );\n\n\tdescribe( 'on initial view', function () {\n\n\t\tbefore( function () {\n\t\t\tEditConflictPage.toggleHelpDialog( true );\n\t\t\tEditConflictPage.showSimpleConflict();\n\t\t} );\n\n\t\tit( 'shows the tour', function () {\n\t\t\tassert(\n\t\t\t\tEditConflictPage.tourDialog.waitForDisplayed(),\n\t\t\t\t'I see an info tour'\n\t\t\t);\n\t\t} );\n\t} );\n\n\tdescribe( 'on subsequent view', function () {\n\n\t\tbefore( function () {\n\t\t\tEditConflictPage.openTitle( '' );\n\t\t\tEditConflictPage.toggleHelpDialog( false );\n\t\t\tEditConflictPage.showSimpleConflict();\n\t\t} );\n\n\t\tit( 'hides the tour', function () {\n\t\t\tassert(\n\t\t\t\t!EditConflictPage.tourDialog.isDisplayed(),\n\t\t\t\t'I don\\'t see an info tour'\n\t\t\t);\n\t\t} );\n\n\t\tit( 'clicking the info button shows the tour', function () {\n\t\t\tEditConflictPage.infoButton.click();\n\n\t\t\tassert(\n\t\t\t\tEditConflictPage.tourDialog.waitForDisplayed(),\n\t\t\t\t'I see an info tour'\n\t\t\t);\n\t\t} );\n\n\t\tit( 'clicking the close button dismisses the dialog, adds pulsating buttons, and opens the your version header popup', function () {\n\t\t\tEditConflictPage.tourDialogCloseButton.waitForDisplayed( { timeout: 2000 } );\n\t\t\tEditConflictPage.tourDialogCloseButton.click();\n\n\t\t\tassert(\n\t\t\t\tEditConflictPage.tourDialogCloseButton.waitForDisplayed( {\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\treverse: true\n\t\t\t\t} ),\n\t\t\t\t'Dialog has disappeared'\n\t\t\t);\n\n\t\t\tassert(\n\t\t\t\tEditConflictPage.tourDiffChangeButton.isDisplayed(),\n\t\t\t\t'Diff change pulsating button has appeared'\n\t\t\t);\n\n\t\t\tassert(\n\t\t\t\tEditConflictPage.tourSplitSelectionButton.isDisplayed(),\n\t\t\t\t'Split selection pulsating button has appeared'\n\t\t\t);\n\n\t\t\tassert(\n\t\t\t\tEditConflictPage.tourYourVersionHeaderPopup.isDisplayed(),\n\t\t\t\t'Your version header popup has appeared'\n\t\t\t);\n\t\t} );\n\n\t\tit( 'clicking on a pulsating button opens a popup', function () {\n\t\t\t// FIXME tourDiffChangeButton.click() throws an error with the new wdio config this is a workaround\n\t\t\tbrowser.execute( function () {\n\t\t\t\t$( '.mw-twocolconflict-diffchange .mw-twocolconflict-split-tour-pulsating-button' ).click();\n\t\t\t} );\n\n\t\t\tEditConflictPage.tourDiffChangeButton.waitForDisplayed( {\n\t\t\t\ttimeout: 2000, reverse: true\n\t\t\t} );\n\n\t\t\tassert(\n\t\t\t\t!EditConflictPage.tourDiffChangeButton.isDisplayed(),\n\t\t\t\t'Diff change pulsating button has disappeared'\n\t\t\t);\n\n\t\t\tassert(\n\t\t\t\tEditConflictPage.tourDiffChangePopup.waitForDisplayed( { timeout: 2000 } ),\n\t\t\t\t'Diff change popup has appeared'\n\t\t\t);\n\t\t} );\n\n\t\tit( 'clicking on a popup\\'s close button closes the popup', function () {\n\t\t\tEditConflictPage.tourDiffChangePopupCloseButton.waitForDisplayed( { timeout: 2000 } );\n\t\t\tEditConflictPage.tourDiffChangePopupCloseButton.click();\n\n\t\t\tassert(\n\t\t\t\tEditConflictPage.tourDiffChangePopup.waitForDisplayed( {\n\t\t\t\t\ttimeout: 500, reverse: true\n\t\t\t\t} ),\n\t\t\t\t'Diff change popup has disappeared'\n\t\t\t);\n\t\t} );\n\t} );\n\n\tafter( function () {\n\t\tbrowser.deleteCookies();\n\t} );\n} );\n","usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/specs/twocolconflict.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/test_accounts.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 >> Linted 5 files without errors Done. --- 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 827 packages, and audited 828 packages in 11s 104 packages are looking for funding run `npm fund` for details 5 vulnerabilities (3 moderate, 2 high) To address issues that do not require attention, run: npm audit fix Some issues need review, and may require choosing a different dependency. Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stdout --- > test > grunt test Running "eslint:all" (eslint) task /src/repo/Gruntfile.js 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/composer.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/extension.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/af.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ar.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/as.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ast.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/az.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ban.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/be-tarask.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/be.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/bg.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/bn.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/bqi.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/br.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/bs.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ca.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ce.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ckb.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/cs.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/da.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/de.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/el.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/en.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/eo.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/es-formal.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/es.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/et.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/eu.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/fa.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/fi.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/fr.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/fy.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/gl.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/gom-latn.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/he.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/hi.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/hr.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/hu.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/hy.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ia.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/id.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/inh.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/io.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/is.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/it.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ja.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/jv.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ka.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/kab.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/kjp.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ko.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ku-latn.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/lb.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/lij.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/lld.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/lmo.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/lt.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/lv.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/mk.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ml.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ms.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/mt.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/mui.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/my.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/nb.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ne.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/nl.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/nn.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/nqo.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/oc.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/pl.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/pnb.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/pt-br.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/pt.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/pwn.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/qqq.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ro.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/roa-tara.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ru.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/sa.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/scn.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/sd.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/sdc.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/se.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/sh.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/sje.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/sk.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/skr-arab.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/sl.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/smn.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/sms.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/sr-ec.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/sr-el.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/sv.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/sw.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/syl.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/tcy.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/te.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/tly.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/tr.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/trv.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/udm.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ug-arab.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/uk.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/ur.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/vec.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/vi.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/xsy.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/yi.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/zgh.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/zh-hans.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/i18n/zh-hant.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/modules/SplitTwoColConflict/ext.TwoColConflict.Split.Merger.js 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/modules/SplitTwoColConflict/ext.TwoColConflict.Split.Tour.js 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/modules/SplitTwoColConflict/ext.TwoColConflict.Split.init.js 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/modules/SplitTwoColConflict/ext.TwoColConflict.Split.tracking.js 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/modules/ext.TwoColConflict.JSCheck.js 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/modules/ext.TwoColConflict.Settings.js 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/modules/ext.TwoColConflict.Util.js 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/package-lock.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/package.json 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/tests/qunit/SplitTwoColConflict/TwoColConflict.Merger.test.js 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/tests/qunit/SplitTwoColConflict/TwoColConflict.Split.tracking.test.js 1:1 error Definition for rule 'wdio/no-pause' was not found wdio/no-pause /src/repo/tests/selenium/pageobjects/editconflict.page.js 141:3 error Unexpected browser.pause() not allowed wdio/no-pause /src/repo/tests/selenium/specs/tourdialog.js 79:1 warning This line has a length of 111. Maximum allowed is 100 max-len ✖ 126 problems (125 errors, 1 warning) Warning: Task "eslint: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.