mediawiki/extensions/CirrusSearch: main (log #963484)

sourcepatches

This run took 68 seconds.

$ date
--- stdout ---
Mon Mar 20 19:26:58 UTC 2023

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

--- end ---
$ /usr/bin/npm audit --json --legacy-peer-deps
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "webdriverio"
      ],
      "effects": [],
      "range": "<=6.0.0-beta.1",
      "nodes": [
        "node_modules/@wdio/cli"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "8.6.5",
        "isSemVerMajor": true
      }
    },
    "@wdio/local-runner": {
      "name": "@wdio/local-runner",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "@wdio/runner"
      ],
      "effects": [],
      "range": "<=6.0.0-beta.1",
      "nodes": [
        "node_modules/@wdio/local-runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "8.6.3",
        "isSemVerMajor": true
      }
    },
    "@wdio/mocha-framework": {
      "name": "@wdio/mocha-framework",
      "severity": "high",
      "isDirect": true,
      "via": [
        "mocha"
      ],
      "effects": [],
      "range": "<=7.7.3",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "8.6.1",
        "isSemVerMajor": true
      }
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": "<=6.0.0-beta.1",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "8.6.3",
        "isSemVerMajor": true
      }
    },
    "flat": {
      "name": "flat",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1089152,
          "name": "flat",
          "dependency": "flat",
          "title": "flat vulnerable to Prototype Pollution",
          "url": "https://github.com/advisories/GHSA-2j2x-2gpw-g8fm",
          "severity": "critical",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 9.8,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": "<5.0.1"
        }
      ],
      "effects": [
        "yargs-unparser"
      ],
      "range": "<5.0.1",
      "nodes": [
        "node_modules/flat"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "8.6.1",
        "isSemVerMajor": true
      }
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1091174,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch ReDoS vulnerability",
          "url": "https://github.com/advisories/GHSA-f8q6-p94x-37v3",
          "severity": "high",
          "cwe": [
            "CWE-400"
          ],
          "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": "<3.0.5"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<3.0.5",
      "nodes": [
        "node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "8.6.1",
        "isSemVerMajor": true
      }
    },
    "mocha": {
      "name": "mocha",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "minimatch",
        "yargs-unparser"
      ],
      "effects": [
        "@wdio/mocha-framework"
      ],
      "range": "5.1.0 - 9.2.1",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "8.6.1",
        "isSemVerMajor": true
      }
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki"
      ],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot",
        "node_modules/wdio-mediawiki/node_modules/mwbot"
      ],
      "fixAvailable": false
    },
    "qs": {
      "name": "qs",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1090135,
          "name": "qs",
          "dependency": "qs",
          "title": "qs vulnerable to Prototype Pollution",
          "url": "https://github.com/advisories/GHSA-hrpp-h998-j3pp",
          "severity": "high",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=6.5.0 <6.5.3"
        },
        {
          "source": 1090140,
          "name": "qs",
          "dependency": "qs",
          "title": "qs vulnerable to Prototype Pollution",
          "url": "https://github.com/advisories/GHSA-hrpp-h998-j3pp",
          "severity": "high",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=6.10.0 <6.10.3"
        }
      ],
      "effects": [],
      "range": "6.5.0 - 6.5.2 || 6.10.0 - 6.10.2",
      "nodes": [
        "node_modules/qs",
        "node_modules/restify/node_modules/qs"
      ],
      "fixAvailable": true
    },
    "request": {
      "name": "request",
      "severity": "moderate",
      "isDirect": true,
      "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",
        "webdriver"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "8.6.5",
        "isSemVerMajor": true
      }
    },
    "wdio-mediawiki": {
      "name": "wdio-mediawiki",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": false
    },
    "webdriver": {
      "name": "webdriver",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [
        "webdriverio"
      ],
      "range": "0.0.2 - 6.0.0-beta.1",
      "nodes": [
        "node_modules/webdriver"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "8.6.5",
        "isSemVerMajor": true
      }
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "webdriver"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "range": "5.0.0-alpha.2 - 6.0.0-beta.1",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "8.6.5",
        "isSemVerMajor": true
      }
    },
    "yargs-unparser": {
      "name": "yargs-unparser",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "flat"
      ],
      "effects": [
        "mocha"
      ],
      "range": "<=1.6.3",
      "nodes": [
        "node_modules/yargs-unparser"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "8.6.1",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 8,
      "high": 3,
      "critical": 3,
      "total": 14
    },
    "dependencies": {
      "prod": 1,
      "dev": 886,
      "optional": 17,
      "peer": 0,
      "peerOptional": 0,
      "total": 886
    }
  }
}

--- 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: #StandWithUkraine
Updating dependencies
Lock file operations: 39 installs, 0 updates, 0 removals
  - Locking composer/pcre (dev-main 4bff79d)
  - 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 justinrainbow/json-schema (5.x-dev ad87d5a)
  - 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 (dev-master a0eeab5)
  - Locking phpdocumentor/reflection-docblock (dev-master 7b21721)
  - Locking phpdocumentor/type-resolver (1.x-dev 1534aea)
  - Locking phpstan/phpdoc-parser (1.16.1)
  - Locking psr/container (1.x-dev 513e066)
  - Locking psr/log (1.1.4)
  - Locking sabre/event (5.1.4)
  - Locking squizlabs/php_codesniffer (3.7.2)
  - Locking symfony/console (5.4.x-dev 7ec6e8b)
  - Locking symfony/deprecation-contracts (2.5.x-dev 80d0754)
  - Locking symfony/polyfill-ctype (dev-main ea208ce)
  - Locking symfony/polyfill-intl-grapheme (dev-main 875e90a)
  - Locking symfony/polyfill-intl-normalizer (dev-main 8c4ad05)
  - Locking symfony/polyfill-mbstring (dev-main f9c7aff)
  - Locking symfony/polyfill-php73 (dev-main fe2f306)
  - Locking symfony/polyfill-php80 (dev-main 6caa573)
  - Locking symfony/service-contracts (2.5.x-dev 1a3d2dd)
  - Locking symfony/string (5.4.x-dev 8036a4c)
  - Locking tysonandre/var_representation_polyfill (dev-main e9116c2)
  - Locking webmozart/assert (1.11.0)
  - Locking wikimedia/lucene-explain-parser (2.0.0)
  - Locking wikimedia/textcat (2.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 39 installs, 0 updates, 0 removals
  - Syncing composer/pcre (dev-main 4bff79d) into cache
  - Syncing justinrainbow/json-schema (5.x-dev ad87d5a) into cache
  - Syncing symfony/polyfill-php80 (dev-main 6caa573) into cache
  - Syncing symfony/polyfill-mbstring (dev-main f9c7aff) into cache
  - Syncing tysonandre/var_representation_polyfill (dev-main e9116c2) into cache
  - Syncing symfony/polyfill-intl-normalizer (dev-main 8c4ad05) into cache
  - Syncing symfony/polyfill-intl-grapheme (dev-main 875e90a) into cache
  - Syncing symfony/polyfill-ctype (dev-main ea208ce) into cache
  - Syncing symfony/string (5.4.x-dev 8036a4c) into cache
  - Syncing symfony/deprecation-contracts (2.5.x-dev 80d0754) into cache
  - Syncing psr/container (1.x-dev 513e066) into cache
  - Syncing symfony/service-contracts (2.5.x-dev 1a3d2dd) into cache
  - Syncing symfony/polyfill-php73 (dev-main fe2f306) into cache
  - Syncing symfony/console (5.4.x-dev 7ec6e8b) into cache
  - Syncing phpdocumentor/reflection-common (dev-master a0eeab5) into cache
  - Syncing phpdocumentor/type-resolver (1.x-dev 1534aea) into cache
  - Syncing phpdocumentor/reflection-docblock (dev-master 7b21721) into cache
  - Downloading wikimedia/lucene-explain-parser (2.0.0)
 0/1 [>---------------------------]   0%
 1/1 [============================] 100%  - Installing composer/pcre (dev-main 4bff79d): Cloning 4bff79ddd7 from cache
  - Installing justinrainbow/json-schema (5.x-dev ad87d5a): Cloning ad87d5a5ca from cache
  - Installing symfony/polyfill-php80 (dev-main 6caa573): Cloning 6caa57379c from cache
  - Installing squizlabs/php_codesniffer (3.7.2): Extracting archive
  - Installing symfony/polyfill-mbstring (dev-main f9c7aff): Cloning f9c7affe77 from cache
  - 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 (dev-main e9116c2): Cloning e9116c2c35 from cache
  - Installing symfony/polyfill-intl-normalizer (dev-main 8c4ad05): Cloning 8c4ad05dd0 from cache
  - Installing symfony/polyfill-intl-grapheme (dev-main 875e90a): Cloning 875e90aeea from cache
  - Installing symfony/polyfill-ctype (dev-main ea208ce): Cloning ea208ce43c from cache
  - Installing symfony/string (5.4.x-dev 8036a4c): Cloning 8036a4c76c from cache
  - Installing symfony/deprecation-contracts (2.5.x-dev 80d0754): Cloning 80d075412b from cache
  - Installing psr/container (1.x-dev 513e066): Cloning 513e0666f7 from cache
  - Installing symfony/service-contracts (2.5.x-dev 1a3d2dd): Cloning 1a3d2ddc2c from cache
  - Installing symfony/polyfill-php73 (dev-main fe2f306): Cloning fe2f306d1d from cache
  - Installing symfony/console (5.4.x-dev 7ec6e8b): Cloning 7ec6e8b49a from cache
  - 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 (dev-master a0eeab5): Cloning a0eeab580c from cache
  - Installing doctrine/deprecations (v1.0.0): Extracting archive
  - Installing phpdocumentor/type-resolver (1.x-dev 1534aea): Cloning 1534aea9bd from cache
  - Installing phpdocumentor/reflection-docblock (dev-master 7b21721): Cloning 7b21721772 from cache
  - 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
  - Installing wikimedia/lucene-explain-parser (2.0.0): Extracting archive
  - Installing wikimedia/textcat (2.0.0): Extracting archive
  0/12 [>---------------------------]   0%
  9/12 [=====================>------]  75%
 12/12 [============================] 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.20.0 -> 0.24.0
Upgrading n:grunt from 1.5.3 -> 1.6.1
$ /usr/bin/npm install
--- stderr ---
npm WARN deprecated request-promise-native@1.0.5: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated date-format@0.0.2: 0.x is no longer supported. Please upgrade to 4.x or higher.
npm WARN deprecated debug@3.2.6: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
npm WARN deprecated grunt-webdriver@3.0.0: not maintained anymore
npm WARN deprecated formidable@1.2.2: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
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 uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated @babel/polyfill@7.12.1: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.
npm WARN deprecated gherkin@5.1.0: This package is now published under @cucumber/gherkin
npm WARN deprecated cucumber-expressions@6.6.2: This package is now published under @cucumber/cucumber-expressions
npm WARN deprecated cucumber@5.1.0: Cucumber is publishing new releases under @cucumber/cucumber
npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
--- stdout ---

added 890 packages, and audited 891 packages in 11s

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

21 vulnerabilities (15 moderate, 3 high, 3 critical)

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

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

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

Run `npm audit` for details.

--- end ---
$ package-lock-lint 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 891 packages in 2s

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

21 vulnerabilities (15 moderate, 3 high, 3 critical)

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

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

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

Run `npm audit` for details.

--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

--- end ---
$ ./node_modules/.bin/eslint i18n/pnb.json tests/integration/features/support/pages/page.js i18n/api/kaa.json package.json i18n/sd.json i18n/kcg.json i18n/ar.json i18n/bcl.json i18n/api/pt.json i18n/bcc.json i18n/kaa.json i18n/api/ia.json i18n/tcy.json i18n/bqi.json i18n/sli.json i18n/ilo.json i18n/pt-br.json i18n/anp.json i18n/es.json resources/ext.cirrus.explore-similar.js i18n/nah.json tests/integration/lib/tracker.js i18n/mwl.json i18n/nqo.json i18n/api/syl.json i18n/az.json i18n/tr.json i18n/st.json i18n/ku-latn.json i18n/min.json i18n/azb.json i18n/api/ilo.json i18n/api/ku-latn.json i18n/zh-hans.json i18n/oc.json i18n/mnw.json i18n/api/uk.json i18n/krc.json i18n/bs.json i18n/api/nap.json i18n/rmc.json i18n/hsb.json i18n/api/pl.json i18n/th.json tests/integration/features/support/world.js i18n/he.json i18n/api/bg.json i18n/sr-el.json i18n/trv.json i18n/sa.json i18n/tl.json i18n/api/it.json i18n/tay.json i18n/ba.json i18n/ban.json i18n/da.json i18n/lb.json tests/integration/config/wdio.conf.jenkins.js i18n/en.json i18n/api/mk.json tests/integration/features/support/pages/title_page.js tests/phpunit/fixtures/regexParser/ref_impl_fixtures.json tests/integration/features/step_definitions/page_step_helpers.js i18n/api/sv.json i18n/api/zh-hant.json tests/integration/features/step_definitions/search_steps.js i18n/yue.json i18n/yi.json i18n/be.json i18n/ky.json i18n/api/fr.json i18n/lij.json i18n/pl.json i18n/sk.json i18n/api/ja.json i18n/ml.json i18n/ti.json tests/integration/config/wdio.conf.mwvlabs.js i18n/api/cs.json i18n/hr.json i18n/nb.json i18n/mk.json i18n/kab.json i18n/kn.json i18n/eu.json i18n/it.json i18n/api/pms.json i18n/api/ksh.json i18n/sdc.json i18n/api/de.json i18n/api/es.json i18n/mr.json i18n/nn.json i18n/api/en.json i18n/pa.json i18n/is.json i18n/af.json i18n/api/gl.json package-lock.json i18n/pt.json i18n/ta.json i18n/api/tr.json i18n/dsb.json tests/phpunit/fixtures/configDump/enwiki_crosslang_frwiki_config.json i18n/diq.json i18n/api/ast.json i18n/os.json i18n/id.json i18n/olo.json i18n/lt.json i18n/api/vi.json i18n/api/ro.json i18n/wa.json i18n/vi.json i18n/gu.json i18n/rw.json i18n/ca.json i18n/hi.json i18n/api/pt-br.json i18n/frr.json i18n/sh.json i18n/ur.json i18n/ami.json i18n/ne.json i18n/sah.json i18n/ie.json i18n/api/rki.json tests/selenium/wdio.conf.js i18n/api/ar.json i18n/ksh.json i18n/api/bn.json i18n/br.json i18n/api/hy.json i18n/ro.json tests/integration/features/support/pages/search_results_page.js i18n/as.json i18n/scn.json i18n/api/szy.json i18n/cy.json i18n/gl.json i18n/api/ko.json i18n/khw.json i18n/hy.json i18n/ru.json i18n/tg-cyrl.json i18n/lg.json i18n/smn.json i18n/io.json tests/integration/features/step_definitions/page_steps.js i18n/uz.json extension.json i18n/shn.json i18n/ja.json i18n/ary.json i18n/api/fa.json i18n/ps.json i18n/xsy.json i18n/api/he.json Gruntfile.js i18n/lmo.json i18n/api/sh.json i18n/lki.json i18n/en-gb.json tests/integration/features/support/pages/special_undelete.js i18n/api/lki.json tests/integration/config/wdio.conf.js i18n/api/li.json i18n/api/rw.json i18n/eo.json i18n/zgh.json i18n/sat.json i18n/roa-tara.json i18n/api/el.json i18n/zh-hant.json resources/ext.cirrus.serp.js i18n/glk.json i18n/api/sl.json i18n/api/ml.json i18n/api/zh-hans.json composer.json i18n/cs.json i18n/lus.json i18n/api/ru.json i18n/api/ka.json i18n/qu.json i18n/api/roa-tara.json i18n/api/qqq.json i18n/sco.json tests/integration/articles/some.js i18n/ce.json i18n/sr-ec.json i18n/api/ce.json i18n/fa.json i18n/bg.json i18n/hu.json i18n/bo.json i18n/te.json i18n/kjp.json i18n/vec.json tests/phpunit/fixtures/configDump/enwiki_sisterproject_configs.json i18n/el.json i18n/mni.json i18n/fi.json i18n/li.json i18n/fy.json i18n/ast.json i18n/sl.json i18n/qqq.json i18n/ia.json tests/phpunit/fixtures/configDump/enwiki_crosslang_frwiki_invalid_config.json i18n/ko.json i18n/blk.json i18n/api/bqi.json i18n/et.json i18n/sv.json i18n/pms.json tests/integration/features/support/pages/article_page.js i18n/so.json i18n/api/lt.json i18n/fit.json i18n/api/ba.json i18n/ka.json i18n/uk.json i18n/war.json i18n/awa.json i18n/skr-arab.json i18n/bn.json i18n/api/hi.json i18n/sms.json i18n/de.json i18n/szy.json i18n/bjn.json i18n/fr.json i18n/be-tarask.json i18n/lfn.json i18n/se.json i18n/fo.json i18n/ckb.json i18n/ms.json i18n/lrc.json i18n/de-ch.json tests/selenium/specs/smoke_test.js i18n/lv.json i18n/inh.json i18n/api/krc.json i18n/api/nb.json i18n/kk-cyrl.json i18n/my.json i18n/km.json tests/selenium/pageobjects/random.page.js i18n/gcr.json tests/integration/features/support/hooks.js i18n/api/nl.json i18n/mt.json i18n/nl.json i18n/sc.json i18n/nap.json --fix
--- stdout ---

/src/repo/tests/integration/features/step_definitions/page_steps.js
  131:5  error  ES2022 'Array.prototype.at' method is forbidden  es-x/no-array-string-prototype-at
  134:4  error  ES2022 'Array.prototype.at' method is forbidden  es-x/no-array-string-prototype-at

/src/repo/tests/integration/features/support/hooks.js
  38:15  error  'job' is already declared in the upper scope on line 106 column 7  no-shadow

/src/repo/tests/phpunit/fixtures/configDump/enwiki_crosslang_frwiki_config.json
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/phpunit/fixtures/configDump/enwiki_crosslang_frwiki_invalid_config.json
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/phpunit/fixtures/configDump/enwiki_sisterproject_configs.json
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/phpunit/fixtures/regexParser/ref_impl_fixtures.json
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

✖ 7 problems (3 errors, 4 warnings)


--- end ---
$ ./node_modules/.bin/eslint i18n/pnb.json tests/integration/features/support/pages/page.js i18n/api/kaa.json package.json i18n/sd.json i18n/kcg.json i18n/ar.json i18n/bcl.json i18n/api/pt.json i18n/bcc.json i18n/kaa.json i18n/api/ia.json i18n/tcy.json i18n/bqi.json i18n/sli.json i18n/ilo.json i18n/pt-br.json i18n/anp.json i18n/es.json resources/ext.cirrus.explore-similar.js i18n/nah.json tests/integration/lib/tracker.js i18n/mwl.json i18n/nqo.json i18n/api/syl.json i18n/az.json i18n/tr.json i18n/st.json i18n/ku-latn.json i18n/min.json i18n/azb.json i18n/api/ilo.json i18n/api/ku-latn.json i18n/zh-hans.json i18n/oc.json i18n/mnw.json i18n/api/uk.json i18n/krc.json i18n/bs.json i18n/api/nap.json i18n/rmc.json i18n/hsb.json i18n/api/pl.json i18n/th.json tests/integration/features/support/world.js i18n/he.json i18n/api/bg.json i18n/sr-el.json i18n/trv.json i18n/sa.json i18n/tl.json i18n/api/it.json i18n/tay.json i18n/ba.json i18n/ban.json i18n/da.json i18n/lb.json tests/integration/config/wdio.conf.jenkins.js i18n/en.json i18n/api/mk.json tests/integration/features/support/pages/title_page.js tests/phpunit/fixtures/regexParser/ref_impl_fixtures.json tests/integration/features/step_definitions/page_step_helpers.js i18n/api/sv.json i18n/api/zh-hant.json tests/integration/features/step_definitions/search_steps.js i18n/yue.json i18n/yi.json i18n/be.json i18n/ky.json i18n/api/fr.json i18n/lij.json i18n/pl.json i18n/sk.json i18n/api/ja.json i18n/ml.json i18n/ti.json tests/integration/config/wdio.conf.mwvlabs.js i18n/api/cs.json i18n/hr.json i18n/nb.json i18n/mk.json i18n/kab.json i18n/kn.json i18n/eu.json i18n/it.json i18n/api/pms.json i18n/api/ksh.json i18n/sdc.json i18n/api/de.json i18n/api/es.json i18n/mr.json i18n/nn.json i18n/api/en.json i18n/pa.json i18n/is.json i18n/af.json i18n/api/gl.json package-lock.json i18n/pt.json i18n/ta.json i18n/api/tr.json i18n/dsb.json tests/phpunit/fixtures/configDump/enwiki_crosslang_frwiki_config.json i18n/diq.json i18n/api/ast.json i18n/os.json i18n/id.json i18n/olo.json i18n/lt.json i18n/api/vi.json i18n/api/ro.json i18n/wa.json i18n/vi.json i18n/gu.json i18n/rw.json i18n/ca.json i18n/hi.json i18n/api/pt-br.json i18n/frr.json i18n/sh.json i18n/ur.json i18n/ami.json i18n/ne.json i18n/sah.json i18n/ie.json i18n/api/rki.json tests/selenium/wdio.conf.js i18n/api/ar.json i18n/ksh.json i18n/api/bn.json i18n/br.json i18n/api/hy.json i18n/ro.json tests/integration/features/support/pages/search_results_page.js i18n/as.json i18n/scn.json i18n/api/szy.json i18n/cy.json i18n/gl.json i18n/api/ko.json i18n/khw.json i18n/hy.json i18n/ru.json i18n/tg-cyrl.json i18n/lg.json i18n/smn.json i18n/io.json tests/integration/features/step_definitions/page_steps.js i18n/uz.json extension.json i18n/shn.json i18n/ja.json i18n/ary.json i18n/api/fa.json i18n/ps.json i18n/xsy.json i18n/api/he.json Gruntfile.js i18n/lmo.json i18n/api/sh.json i18n/lki.json i18n/en-gb.json tests/integration/features/support/pages/special_undelete.js i18n/api/lki.json tests/integration/config/wdio.conf.js i18n/api/li.json i18n/api/rw.json i18n/eo.json i18n/zgh.json i18n/sat.json i18n/roa-tara.json i18n/api/el.json i18n/zh-hant.json resources/ext.cirrus.serp.js i18n/glk.json i18n/api/sl.json i18n/api/ml.json i18n/api/zh-hans.json composer.json i18n/cs.json i18n/lus.json i18n/api/ru.json i18n/api/ka.json i18n/qu.json i18n/api/roa-tara.json i18n/api/qqq.json i18n/sco.json tests/integration/articles/some.js i18n/ce.json i18n/sr-ec.json i18n/api/ce.json i18n/fa.json i18n/bg.json i18n/hu.json i18n/bo.json i18n/te.json i18n/kjp.json i18n/vec.json tests/phpunit/fixtures/configDump/enwiki_sisterproject_configs.json i18n/el.json i18n/mni.json i18n/fi.json i18n/li.json i18n/fy.json i18n/ast.json i18n/sl.json i18n/qqq.json i18n/ia.json tests/phpunit/fixtures/configDump/enwiki_crosslang_frwiki_invalid_config.json i18n/ko.json i18n/blk.json i18n/api/bqi.json i18n/et.json i18n/sv.json i18n/pms.json tests/integration/features/support/pages/article_page.js i18n/so.json i18n/api/lt.json i18n/fit.json i18n/api/ba.json i18n/ka.json i18n/uk.json i18n/war.json i18n/awa.json i18n/skr-arab.json i18n/bn.json i18n/api/hi.json i18n/sms.json i18n/de.json i18n/szy.json i18n/bjn.json i18n/fr.json i18n/be-tarask.json i18n/lfn.json i18n/se.json i18n/fo.json i18n/ckb.json i18n/ms.json i18n/lrc.json i18n/de-ch.json tests/selenium/specs/smoke_test.js i18n/lv.json i18n/inh.json i18n/api/krc.json i18n/api/nb.json i18n/kk-cyrl.json i18n/my.json i18n/km.json tests/selenium/pageobjects/random.page.js i18n/gcr.json tests/integration/features/support/hooks.js i18n/api/nl.json i18n/mt.json i18n/nl.json i18n/sc.json i18n/nap.json -f json
--- stdout ---
[{"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/af.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/ami.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/anp.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/ar.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/ast.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/ba.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/bg.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/bn.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/bqi.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/ce.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/cs.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/de.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/el.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/es.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/fa.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/fr.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/gl.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/he.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/hi.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/hy.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/ia.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/ilo.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/it.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/ja.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/ka.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/kaa.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/ko.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/krc.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/ksh.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/ku-latn.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/li.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/lki.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/lt.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/mk.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/ml.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/nap.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/nb.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/nl.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/pl.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/pms.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/pt-br.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/pt.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/api/rki.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/ro.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/roa-tara.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/ru.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/rw.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/sh.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/sl.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/sv.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/syl.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/szy.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/tr.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/uk.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/vi.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/zh-hans.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/zh-hant.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/ar.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/ary.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/as.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/ast.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/awa.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/az.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/azb.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/ba.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/ban.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/bcc.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/bcl.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/be-tarask.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/be.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/bg.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/bjn.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/blk.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/bn.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/bo.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/bqi.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/br.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/bs.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/ca.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/ce.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/ckb.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/cs.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/cy.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/da.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/de-ch.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/de.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/diq.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/dsb.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/el.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-gb.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/eo.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/es.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/et.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/eu.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/fa.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/fi.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/fit.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/fo.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/fr.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/frr.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/fy.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/gcr.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/gl.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/glk.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/gu.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/he.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/hi.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/hr.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/hsb.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/hu.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/hy.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/ia.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/id.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/ie.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/ilo.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/inh.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/io.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/is.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/it.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/ja.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/ka.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/kaa.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/kab.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/kcg.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/khw.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/kjp.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/kk-cyrl.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/km.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/kn.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/ko.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/krc.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/ksh.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/ku-latn.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/ky.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/lb.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/lfn.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/lg.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/li.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/lij.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/lki.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/lmo.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/lrc.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/lt.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/lus.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/lv.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/min.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/mk.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/ml.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/mni.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/mnw.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/mr.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/ms.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/mt.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/mwl.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/my.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/nah.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/nap.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/nb.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/ne.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/nl.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/nn.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/nqo.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/oc.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/olo.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/os.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/pa.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/pl.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/pms.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/pnb.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/ps.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/pt-br.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/pt.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/i18n/qu.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/rmc.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/ro.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/roa-tara.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/ru.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/rw.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/sa.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/sah.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/sat.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/sc.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/scn.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/sco.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/sd.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/sdc.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/se.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/sh.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/shn.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/sk.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/skr-arab.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/sl.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/sli.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/smn.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/sms.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/so.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/sr-ec.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/sr-el.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/st.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/sv.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/szy.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/ta.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/tay.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/tcy.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/te.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/tg-cyrl.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/th.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/ti.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/tl.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/tr.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/trv.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/uk.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/ur.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/uz.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/vec.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/vi.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/wa.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/war.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/xsy.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/yi.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/yue.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/zgh.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/zh-hans.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/zh-hant.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-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/resources/ext.cirrus.explore-similar.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":4,"column":25,"nodeType":"CallExpression","endLine":4,"endColumn":55,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":245,"column":20,"nodeType":"CallExpression","endLine":251,"endColumn":12,"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":556,"column":11,"nodeType":"CallExpression","endLine":556,"endColumn":54,"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":597,"column":10,"nodeType":"CallExpression","endLine":597,"endColumn":61,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/resources/ext.cirrus.serp.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/integration/articles/some.js","messages":[],"suppressedMessages":[{"ruleId":"no-self-compare","severity":2,"message":"Comparing to itself is potentially pointless.","line":6,"column":7,"nodeType":"BinaryExpression","messageId":"comparingToSelf","endLine":6,"endColumn":14,"suppressions":[{"kind":"directive","justification":""}]}],"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/integration/config/wdio.conf.jenkins.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/integration/config/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":[]}]},{"filePath":"/src/repo/tests/integration/config/wdio.conf.mwvlabs.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/integration/features/step_definitions/page_step_helpers.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/integration/features/step_definitions/page_steps.js","messages":[{"ruleId":"es-x/no-array-string-prototype-at","severity":2,"message":"ES2022 'Array.prototype.at' method is forbidden.","line":131,"column":5,"nodeType":"MemberExpression","messageId":"forbidden","endLine":131,"endColumn":56},{"ruleId":"es-x/no-array-string-prototype-at","severity":2,"message":"ES2022 'Array.prototype.at' method is forbidden.","line":134,"column":4,"nodeType":"MemberExpression","messageId":"forbidden","endLine":134,"endColumn":55}],"suppressedMessages":[],"errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * Step definitions. Each step definition is bound to the World object,\n * so any methods or properties in World are available here.\n *\n * Not: Do not use the fat-arrow syntax to define step functions, because\n * Cucumber explicity binds the 'this' to 'World'. Arrow function would\n * bind `this` to the parent function instead, which is not what we want.\n */\n\n'use strict';\n\nconst { defineParameterType, Given, When, Then } = require( 'cucumber' ),\n\tSpecialUndelete = require( '../support/pages/special_undelete' ),\n\tArticlePage = require( '../support/pages/article_page' ),\n\tTitlePage = require( '../support/pages/title_page' ),\n\texpect = require( 'chai' ).expect,\n\tquerystring = require( 'querystring' ),\n\tPromise = require( 'bluebird' );\n\n// Attach extra information to assertion errors about what api call triggered the problem\nfunction withApi( world, fn ) {\n\ttry {\n\t\treturn fn.call( world );\n\t} catch ( e ) {\n\t\tconst request = world.apiResponse ? world.apiResponse.__request : world.apiError.request;\n\t\tif ( request ) {\n\t\t\tconst qs = Object.assign( {}, request.qs, request.form ),\n\t\t\t\thref = request.uri + '?' + querystring.stringify( qs );\n\n\t\t\te.message += `\\nLast Api: ${href}\\nExtra: ` + JSON.stringify( world.apiResponse || world.apiError );\n\t\t} else {\n\t\t\te.message += '\\nLast Api: UNKNOWN';\n\t\t}\n\t\tif ( world.apiError ) {\n\t\t\te.message += `\\nError reported: ${JSON.stringify( world.apiError )}`;\n\t\t}\n\t\tthrow e;\n\t}\n}\n\n// TODO: We might need to share this epoch between wdio runner processes?\nconst epoch = Date.now();\nconst searchVars = {};\n// These expressions are string matches against capture groups in steps. For\n// any capture group whos regex string matches against the expression apply a\n// few minor transformations from an explicit name into the actual underlying\n// value desired.\nconst expressions = [ '.+', '.+?' ];\nconst transformer = ( s ) => {\n\tif ( s === undefined ) {\n\t\treturn s;\n\t}\n\tif ( s === 'the empty string' ) {\n\t\treturn '';\n\t}\n\ts = s.replace( /%{epoch}/g, epoch );\n\ts = s.replace( /%ideographic_whitspace%/g, '\\u3000' );\n\n\t// Replace %{\\uXXXX}% with the appropriate unicode code point\n\ts = s.replace( /%\\{\\\\u([\\dA-Fa-f]{4,6})\\}%/g, ( match, codepoint ) => JSON.parse( `\"\\\\u${codepoint}\"` ) );\n\ts = Object.keys( searchVars ).reduce( ( str, pattern ) => str.replace( pattern, searchVars[ pattern ] ), s );\n\treturn s.replace( /%{exact:([^}]*)}/g, '$1' );\n};\n\nlet i = 0;\nfor ( const expression of expressions ) {\n\tdefineParameterType( {\n\t\tregexp: expression,\n\t\ttransformer: transformer,\n\t\tname: 'replacements_' + i++\n\t} );\n}\n\nWhen( /^I go to (.+)$/, function ( title ) {\n\treturn this.visit( new TitlePage( title ) );\n} );\n\nWhen( /^I ask suggestion API for (.+)$/, function ( query ) {\n\treturn this.stepHelpers.suggestionSearch( query );\n} );\n\nWhen( /^I ask suggestion API at most (\\d+) items? for (.+)$/, function ( limit, query ) {\n\treturn this.stepHelpers.suggestionSearch( query, limit );\n} );\n\nThen( /^the API should produce list containing (.+)/, function ( term ) {\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse[ 1 ] ).to.include( term );\n\t} );\n} );\n\nThen( /^the API should produce empty list/, function () {\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse[ 1 ] ).to.have.length( 0 );\n\t} );\n} );\n\nThen( /^the API should produce list starting with (.+)/, function ( term ) {\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse[ 1 ][ 0 ] ).to.equal( term );\n\t} );\n} );\n\nThen( /^the API should produce list of length (\\d+)/, function ( length ) {\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse[ 1 ] ).to.have.length( parseInt( length, 10 ) );\n\t} );\n} );\n\nWhen( /^the api returns error code (.+)$/, function ( code ) {\n\treturn withApi( this, () => {\n\t\texpect( this.apiError ).to.include( {\n\t\t\tcode: code\n\t\t} );\n\t} );\n} );\n\nWhen( /^I get api suggestions for (.+?)(?: using the (.+) profile)?(?: on namespaces (\\d+(?:,\\d+)*))?$/, function ( search, profile, namespaces ) {\n\t// TODO: Add step helper\n\treturn this.stepHelpers.suggestionsWithProfile( search, profile || 'fuzzy', namespaces );\n} );\n\nThen( /^(.+) is the (.+) api suggestion$/, function ( title, position ) {\n\treturn withApi( this, () => {\n\t\tconst pos = [ 'first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eigth', 'ninth', 'tenth' ].indexOf( position );\n\t\tif ( title === 'none' ) {\n\t\t\tif ( this.apiError && pos === 1 ) {\n\t\t\t\t// TODO: Why 1? maybe 0?\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\texpect( this.apiResponse[ 1 ] ).to.have.lengthOf.at.most( pos );\n\t\t\t}\n\t\t} else {\n\t\t\texpect( this.apiResponse[ 1 ] ).to.have.lengthOf.at.least( pos );\n\t\t\texpect( this.apiResponse[ 1 ][ pos ] ).to.equal( title );\n\t\t}\n\t} );\n} );\n\nThen( /^(.+) is( not)? in the api suggestions$/, function ( title, should_not ) {\n\treturn withApi( this, () => {\n\t\tif ( should_not ) {\n\t\t\texpect( this.apiResponse[ 1 ] ).to.not.include( title );\n\t\t} else {\n\t\t\texpect( this.apiResponse[ 1 ] ).to.include( title );\n\t\t}\n\t} );\n} );\n\nThen( /^the api should offer to search for pages containing (.+)$/, function ( term ) {\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse[ 0 ] ).to.equal( term );\n\t} );\n} );\n\nWhen( /^a page named (.+) exists(?: with contents (.+))?$/, function ( title, text ) {\n\treturn this.stepHelpers.editPage( title, text || title );\n} );\n\nWhen( /^I don't wait for a page named (.+) to exist(?: with contents (.+))?$/, function ( title, text ) {\n\treturn this.stepHelpers.editPage( title, text || title, {\n\t\tskipWaitForOperation: true\n\t} );\n} );\n\nThen( /^I get api near matches for (.+)$/, function ( search ) {\n\treturn this.stepHelpers.searchFor( search, { srwhat: 'nearmatch' } );\n} );\n\nfunction checkApiSearchResultStep( title, in_ok, indexes ) {\n\tindexes = indexes.split( ' or ' ).map( ( index ) => {\n\t\treturn 'first second third fourth fifth sixth seventh eighth ninth tenth'.split( ' ' ).indexOf( index );\n\t} );\n\tif ( title === 'none' ) {\n\t\texpect( this.apiResponse.query.search ).to.have.lengthOf.below( 1 + Math.min.apply( null, indexes ) );\n\t} else {\n\t\tconst found = indexes.map( ( pos ) => {\n\t\t\tif ( this.apiResponse.query.search[ pos ] ) {\n\t\t\t\treturn this.apiResponse.query.search[ pos ].title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t} );\n\t\tif ( in_ok ) {\n\t\t\t// Asserts that title is found within the strings that make up found.\n\t\t\t// ex: found = ['foo bar baz'], title = 'bar' should pass.\n\t\t\t// Chai doesnt (yet) have a native assertion for this:\n\t\t\t// https://github.com/chaijs/chai/issues/858\n\t\t\tconst ok = found.reduce( ( a, b ) => a || b.includes( title ), false );\n\t\t\texpect( ok, `expected ${JSON.stringify( found )} to include \"${title}\"` ).to.equal( true );\n\t\t} else {\n\t\t\texpect( found ).to.include( title );\n\t\t}\n\t}\n}\n\nThen( /^(.+) is( in)? the ((?:[^ ])+(?: or (?:[^ ])+)*) api search result$/, function ( title, in_ok, indexes ) {\n\treturn withApi( this, () => {\n\t\treturn checkApiSearchResultStep.call( this, title, in_ok, indexes );\n\t} );\n} );\n\nThen( /^(.+) is( not)? part of the api search result$/, function ( title, not_searching ) {\n\treturn withApi( this, () => {\n\t\t// Chai doesnt (yet) have a native assertion for this:\n\t\t// https://github.com/chaijs/chai/issues/858\n\t\tconst found = this.apiResponse.query.search.map( ( result ) => result.title );\n\t\tconst ok = found.reduce( ( a, b ) => a || b.includes( title ), false );\n\t\tconst msg = `Expected ${JSON.stringify( found )} to${not_searching ? ' not' : ''} include ${title}`;\n\n\t\tif ( not_searching ) {\n\t\t\texpect( ok, msg ).to.equal( false );\n\t\t} else {\n\t\t\texpect( ok, msg ).to.equal( true );\n\t\t}\n\t} );\n} );\n\nWhen( /^I api search( with rewrites enabled)?(?: with query independent profile ([^ ]+))?(?: with offset (\\d+))?(?: in the (.+) language)?(?: in namespaces? (\\d+(?: \\d+)*))?(?: on ([a-z]+))? for (.+)$/, function ( enableRewrites, qiprofile, offset, lang, namespaces, wiki, search ) {\n\tconst options = {\n\t\tsrnamespace: ( namespaces || '0' ).split( ' ' ).join( ',' ),\n\t\tsrenablerewrites: enableRewrites ? 1 : 0\n\t};\n\tif ( offset ) {\n\t\toptions.sroffset = offset;\n\t}\n\tif ( lang ) {\n\t\toptions.uselang = lang;\n\t}\n\tif ( qiprofile ) {\n\t\toptions.srqiprofile = qiprofile;\n\t}\n\n\tlet stepHelpers = this.stepHelpers;\n\tif ( wiki ) {\n\t\tstepHelpers = this.stepHelpers.onWiki( wiki );\n\t}\n\treturn stepHelpers.searchFor( search, options );\n} );\n\nThen( /^there are no errors reported by the api$/, function () {\n\treturn withApi( this, () => {\n\t\texpect( this.apiError ).to.equal( undefined );\n\t} );\n} );\n\nThen( /^there is an api search result$/, function () {\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse.query.search ).to.not.have.lengthOf( 0 );\n\t} );\n} );\n\nThen( /^there are no api search results$/, function () {\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse.query.search ).to.have.lengthOf( 0 );\n\t} );\n} );\n\nThen( /^there are (\\d+) api search results$/, function ( num_results ) {\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse.query.search ).to.have.lengthOf( parseInt( num_results, 10 ) );\n\t} );\n} );\n\nThen( /^(.+) is( not)? in the api search results$/, function ( title, not ) {\n\treturn withApi( this, () => {\n\t\tconst titles = this.apiResponse.query.search.map( ( res ) => res.title );\n\t\tif ( not ) {\n\t\t\texpect( titles ).to.not.include( title );\n\t\t} else {\n\t\t\texpect( titles ).to.include( title );\n\t\t}\n\t} );\n} );\n\nThen( /^this error is reported by api: (.+)$/, function ( expected_error ) {\n\treturn withApi( this, () => {\n\t\texpect( this.apiError.info ).to.equal( expected_error.trim() );\n\t} );\n} );\n\nThen( /^this warning is reported by api: (.+)$/, function ( expected_error ) {\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse.warnings.search.warnings ).to.equal( expected_error.trim() );\n\t} );\n} );\n\nThen( /^there are no did you mean suggestions from the api$/, function () {\n\t// TODO: This is actually a *did you mean* suggestion\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse.query.searchinfo ).to.not.include.keys( 'suggestion' );\n\t} );\n} );\n\nThen( /^(.+?)(?: or (.+))? is the did you mean suggestion from the api$/, function ( first, second ) {\n\t// TODO: This is actually a *did you mean* suggestion\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse.query.searchinfo ).to.include.any.keys( 'suggestionsnippet', 'rewrittenquerysnippet' );\n\t\tlet suggestion = this.apiResponse.query.searchinfo.suggestionsnippet ||\n\t\t\tthis.apiResponse.query.searchinfo.rewrittenquerysnippet;\n\t\tsuggestion = suggestion.replace( /<em>/g, '*' ).replace( /<\\/em>/g, '*' ).replace( /&quot;/g, '\"' );\n\t\tif ( second ) {\n\t\t\texpect( suggestion ).to.be.oneOf( [ first, second ] );\n\t\t} else {\n\t\t\texpect( suggestion ).to.equal( first );\n\t\t}\n\t} );\n} );\n\nThen( /^(.+) is( in)? the highlighted (.+) of the (.+) api search result$/, function ( expected, in_ok, key, index ) {\n\twithApi( this, () => {\n\t\tconst position = 'first second third fourth fifth sixth seventh eighth ninth tenth'.split( ' ' ).indexOf( index );\n\t\texpect( this.apiResponse.query.search ).to.have.lengthOf.gt( position );\n\n\t\tif ( key === 'title' && expected.includes( '*' ) ) {\n\t\t\tkey = 'titlesnippet';\n\t\t}\n\t\texpect( this.apiResponse.query.search[ position ] ).to.include.keys( key );\n\t\tconst snippet = this.apiResponse.query.search[ position ][ key ].replace(\n\t\t\t/<span class=\"searchmatch\">(.+?)<\\/span>/g, '*$1*' );\n\t\tif ( in_ok ) {\n\t\t\texpect( snippet ).to.include( expected );\n\t\t} else {\n\t\t\texpect( snippet ).to.equal( expected );\n\t\t}\n\t} );\n} );\n\nThen( /^the first api search result is a match to file content$/, function () {\n\twithApi( this, () => {\n\t\texpect( this.apiResponse.query.search[ 0 ].isfilematch ).to.equal( true );\n\t} );\n} );\n\nThen( /^I locate the page id of (.+) and store it as (%.+%)$/, function ( title, varname ) {\n\treturn Promise.coroutine( function* () {\n\t\tsearchVars[ varname ] = yield this.stepHelpers.pageIdOf( title );\n\t} ).call( this );\n} );\n\nThen( /^I wait (\\d+) seconds/, function ( seconds ) {\n\treturn this.stepHelpers.waitForMs( seconds * 1000 );\n} );\n\nThen( /^I delete (.+)( without waiting)?$/, function ( title, withoutWaiting ) {\n\treturn this.stepHelpers.deletePage( title, {\n\t\tskipWaitForOperation: Boolean( withoutWaiting )\n\t} );\n} );\n\nThen( /^a file named (.+) exists( on commons)? with contents (.+) and description (.+)$/, function ( title, on_commons, fileName, description ) {\n\tlet stepHelpers = this.stepHelpers;\n\tif ( on_commons ) {\n\t\tstepHelpers = stepHelpers.onWiki( 'commons' );\n\t}\n\treturn stepHelpers.uploadFile( title, fileName, description );\n} );\n\nThen( /^I am on a page titled (.+)$/, function ( title ) {\n\texpect( ArticlePage.articleTitle, `I am on ${title}` ).to.equal( title );\n} );\n\nGiven( /^I am at a random page$/, function () {\n\treturn this.visit( new TitlePage( 'Special:Random' ) );\n} );\n\nGiven( /^I am logged in and at a random page$/, function () {\n\tArticlePage.login( this );\n\treturn this.visit( new TitlePage( 'Special:Random' ) );\n} );\n\nWhen( /^I set More Like This Options to ([^ ]+) field, word length to (\\d+) and I api search for (.+)$/, function ( field, length, search ) {\n\tconst options = {\n\t\tcirrusMtlUseFields: 'yes',\n\t\tcirrusMltFields: field,\n\t\tcirrusMltMinTermFreq: 1,\n\t\tcirrusMltMinDocFreq: 1,\n\t\tcirrusMltMinWordLength: length,\n\t\tsrlimit: 20\n\t};\n\treturn this.stepHelpers.searchFor( search, options );\n} );\n\nWhen( /^I set More Like This Options to ([^ ]+) field, percent terms to match to (-?\\d+%) and I api search for (.+)$/, function ( field, percent, search ) {\n\tconst options = {\n\t\tcirrusMtlUseFields: 'yes',\n\t\tcirrusMltFields: field,\n\t\tcirrusMltMinTermFreq: 1,\n\t\tcirrusMltMinDocFreq: 1,\n\t\tcirrusMltMinWordLength: 0,\n\t\tcirrusMltMinimumShouldMatch: percent,\n\t\tsrlimit: 20\n\t};\n\treturn this.stepHelpers.searchFor( search, options );\n} );\n\nWhen( /^I set More Like This Options to bad settings and I api search for (.+)$/, function ( search ) {\n\tconst options = {\n\t\tcirrusMtlUseFields: 'yes',\n\t\tcirrusMltFields: 'title',\n\t\tcirrusMltMinTermFreq: 100,\n\t\tcirrusMltMinDocFreq: 200000,\n\t\tcirrusMltMinWordLength: 190,\n\t\tcirrusMltMinimumShouldMatch: '100%',\n\t\tsrlimit: 20\n\t};\n\treturn this.stepHelpers.searchFor( search, options );\n} );\n\nThen( /^I edit (.+) to add (.+)$/, function ( title, content ) {\n\t// Add a space before content to ensure it tokenizes separately\n\treturn this.stepHelpers.editPage( title, ' ' + content, { append: true } );\n} );\n\nThen( /^I move (.+) to (.+) and( do not)? leave a redirect via api$/, function ( from, to, noRedirect ) {\n\treturn this.stepHelpers.movePage( from, to, noRedirect );\n} );\n\nThen( /^I search deleted pages for (.+)$/, function ( title ) {\n\tSpecialUndelete.login( this );\n\tthis.visit( SpecialUndelete );\n\tSpecialUndelete.search_input = title;\n\tSpecialUndelete.click_search_button();\n} );\n\nThen( /^deleted page search returns (.+) as first result$/, function ( title ) {\n\texpect( SpecialUndelete.get_result_at( 1 ) ).to.equal( title );\n} );\n\nWhen( /^I dump the cirrus data for (.+)$/, function ( title ) {\n\tthis.visit( new TitlePage( title + '?action=cirrusDump' ) );\n} );\n\nThen( /^the page text contains (.+)$/, function ( text ) {\n\texpect( browser.$( 'body' ).getText() ).to.contains( text );\n} );\n\nThen( /^there are( no)? api search results with (.+) in the data$/, function ( should_not, within ) {\n\treturn withApi( this, () => {\n\t\tconst snippets = this.apiResponse.query.search.map( ( result ) => result.snippet );\n\t\tconst found = snippets.reduce( ( a, b ) => a || b.includes( within ), false );\n\t\texpect( found ).to.equal( !should_not );\n\t} );\n} );\n\nThen( /^I wait for (.+) to not include (.+) in redirects$/, function ( title, source ) {\n\treturn withApi( this, () => {\n\t\treturn this.stepHelpers.waitForDocument( title, ( doc ) => {\n\t\t\tconst titles = doc.source.redirect.map( ( redirect ) => redirect.title );\n\t\t\texpect( titles ).to.not.include( source );\n\t\t} );\n\t} );\n} );\n\nThen( /^I wait for (.+?)(?: on (.+))? to include (.+) in (.+)$/, function ( title, wiki, value, field ) {\n\treturn withApi( this, () => {\n\t\tlet stepHelpers = this.stepHelpers;\n\t\tif ( wiki ) {\n\t\t\tstepHelpers = this.stepHelpers.onWiki( wiki );\n\t\t}\n\t\treturn stepHelpers.waitForDocument( title, ( doc ) => {\n\t\t\texpect( doc.source[ field ] ).to.include( value );\n\t\t} );\n\t} );\n} );\n\nThen( /^I wait for (.+) to have (.+) of (.+)$/, function ( title, field, value ) {\n\treturn withApi( this, () => {\n\t\treturn this.stepHelpers.waitForDocument( title, ( doc ) => {\n\t\t\texpect( String( doc.source[ field ] ) ).to.equal( value );\n\t\t} );\n\t} );\n} );\n\nWhen( /^I dump the cirrus config$/, Promise.coroutine( function* () {\n\tconst client = yield this.onWiki();\n\ttry {\n\t\tconst response = yield client.request( {\n\t\t\taction: 'cirrus-config-dump'\n\t\t} );\n\t\tthis.setApiResponse( response );\n\t} catch ( err ) {\n\t\tthis.setApiError( err );\n\t}\n} ) );\n\nThen( /^the config dump contains (.+)$/, function ( key ) {\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse ).to.have.any.keys( key );\n\t} );\n} );\n\nThen( /^the config dump text does not contain (.+)$/, function ( key ) {\n\treturn withApi( this, () => {\n\t\tconst text = JSON.stringify( this.apiResponse );\n\t\texpect( text ).to.not.include( key );\n\t} );\n} );\n\nWhen( /^I dump the cirrus mapping$/, Promise.coroutine( function* () {\n\tconst client = yield this.onWiki();\n\ttry {\n\t\tconst response = yield client.request( {\n\t\t\taction: 'cirrus-mapping-dump'\n\t\t} );\n\t\tthis.setApiResponse( response );\n\t} catch ( err ) {\n\t\tthis.setApiError( err );\n\t}\n} ) );\n\nThen( /^A valid mapping dump is produced$/, function () {\n\treturn withApi( this, () => {\n\t\texpect( this.apiError ).to.equal( undefined );\n\t\texpect( this.apiResponse ).to.include.all.keys( 'content', 'general', 'archive' );\n\t\texpect( this.apiResponse.content ).to.have.all.keys(\n\t\t\t'dynamic', 'properties' );\n\t\texpect( this.apiResponse.general ).to.have.all.keys(\n\t\t\t'dynamic', 'properties' );\n\t\texpect( this.apiResponse.archive ).to.have.all.keys(\n\t\t\t'dynamic', 'properties' );\n\t\texpect( this.apiResponse.content.properties ).to.include.keys(\n\t\t\t'all', 'all_near_match', 'title', 'category', 'redirect' );\n\t} );\n} );\n\nWhen( /^I dump the cirrus settings$/, Promise.coroutine( function* () {\n\tconst client = yield this.onWiki();\n\ttry {\n\t\tconst response = yield client.request( {\n\t\t\taction: 'cirrus-settings-dump'\n\t\t} );\n\t\tthis.setApiResponse( response );\n\t} catch ( err ) {\n\t\tthis.setApiError( err );\n\t}\n} ) );\n\nThen( /^A valid settings dump is produced$/, function () {\n\treturn withApi( this, () => {\n\t\texpect( this.apiError ).to.equal( undefined );\n\t\texpect( this.apiResponse ).to.include.all.keys( 'content', 'general' );\n\t\texpect( this.apiResponse.content ).to.include.all.keys( 'page' );\n\t\texpect( this.apiResponse.content.page.index ).to.include.all.keys( 'refresh_interval' );\n\t} );\n} );\n\nGiven( /^I request a query dump for (.+)$/, function ( query ) {\n\treturn Promise.coroutine( function* () {\n\t\tconst client = yield this.onWiki();\n\t\ttry {\n\t\t\tconst response = yield client.request( {\n\t\t\t\taction: 'query',\n\t\t\t\tlist: 'search',\n\t\t\t\tsrsearch: query,\n\t\t\t\tcirrusDumpQuery: 1\n\t\t\t} );\n\t\t\tthis.setApiResponse( response );\n\t\t} catch ( err ) {\n\t\t\tthis.setApiError( err );\n\t\t}\n\t} ).call( this );\n} );\n\nThen( /^A valid query dump for (.+) is produced$/, function ( query ) {\n\treturn withApi( this, () => {\n\t\texpect( this.apiResponse ).to.be.an( 'object' );\n\t\texpect( this.apiResponse ).to.include.keys( '__main__' );\n\t\texpect( this.apiResponse.__main__ ).to.be.an( 'object' );\n\t\texpect( this.apiResponse.__main__ ).to.include.keys(\n\t\t\t'description', 'path', 'params', 'query', 'options' );\n\t\texpect( this.apiResponse.__main__.description ).to.equal(\n\t\t\t`full_text search for '${query}'` );\n\t} );\n} );\n","usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/integration/features/step_definitions/search_steps.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/integration/features/support/hooks.js","messages":[{"ruleId":"no-shadow","severity":2,"message":"'job' is already declared in the upper scope on line 106 column 7.","line":38,"column":15,"nodeType":"Identifier","messageId":"noShadow","endLine":38,"endColumn":18}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\nconst { Before } = require( 'cucumber' );\nconst Promise = require( 'bluebird' );\nconst MWBot = require( 'mwbot' );\nconst fs = require( 'fs' );\nconst path = require( 'path' );\nconst articlePath = path.dirname( path.dirname( path.dirname( __dirname ) ) ) + '/integration/articles/';\n\nconst BeforeOnce = function ( options, fn ) {\n\tBefore( options, Promise.coroutine( function* () {\n\t\tconst response = yield this.tags.check( options.tags );\n\t\tif ( response === 'complete' ) {\n\t\t\treturn;\n\t\t} else if ( response === 'new' ) {\n\t\t\ttry {\n\t\t\t\tyield fn.call( this );\n\t\t\t} catch ( err ) {\n\t\t\t\tconsole.log( `Failed initializing tag ${options.tags}: `, err );\n\t\t\t\tyield this.tags.reject( options.tags );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tyield this.tags.complete( options.tags );\n\t\t} else if ( response === 'reject' ) {\n\t\t\tthrow new Error( 'Tag failed to initialize previously' );\n\t\t} else {\n\t\t\tthrow new Error( 'Unknown tag check response: ' + response );\n\t\t}\n\t} ) );\n};\n\nconst articleText = ( fileName ) => fs.readFileSync( articlePath + fileName ).toString();\n\nconst waitForBatch = Promise.coroutine( function* ( wiki, batchJobs ) {\n\tconst stepHelpers = this.stepHelpers.onWiki( wiki );\n\tconst queue = [];\n\tif ( Array.isArray( batchJobs ) ) {\n\t\tfor ( const job of batchJobs ) {\n\t\t\tqueue.push( [ job[ 0 ], job[ 1 ] ] );\n\t\t}\n\t} else {\n\t\tfor ( const operation in batchJobs ) {\n\t\t\tconst operationJobs = batchJobs[ operation ];\n\t\t\tif ( Array.isArray( operationJobs ) ) {\n\t\t\t\tfor ( const title of operationJobs ) {\n\t\t\t\t\tqueue.push( [ operation, title ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( const title in operationJobs ) {\n\t\t\t\t\tqueue.push( [ operation, title ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tyield stepHelpers.waitForOperations( queue, ( title, i ) => MWBot.logStatus( '[=] ', i, queue.length, 'incirrus', title ) );\n} );\n\nconst flattenJobs = ( batchJobs ) => {\n\tif ( !Array.isArray( batchJobs ) ) {\n\t\tconst flatJobs = [];\n\t\tfor ( const op in batchJobs ) {\n\t\t\tconst data = batchJobs[ op ];\n\t\t\tconst jobData = [ op ];\n\t\t\tif ( Array.isArray( data ) ) {\n\t\t\t\tfor ( const title of data ) {\n\t\t\t\t\tflatJobs.push( jobData.concat( Array.isArray( title ) ? title : [ title ] ) );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( const title in data ) {\n\t\t\t\t\tconst d = data[ title ];\n\t\t\t\t\tflatJobs.push( jobData.concat( [ title ] )\n\t\t\t\t\t\t.concat( Array.isArray( d ) ? d : [ d ] ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn flatJobs;\n\t}\n\treturn batchJobs;\n};\n\n// Run both in parallel so we don't have to wait for the batch to finish\n// to start checking things. Hopefully they run in the same order...\nconst runBatch = Promise.coroutine( function* ( world, wiki, batchJobs ) {\n\twiki = wiki || world.config.wikis.default;\n\tconst client = yield world.onWiki( wiki );\n\tbatchJobs = flattenJobs( batchJobs );\n\t// TODO: If the batch operation fails the waitForBatch will never complete,\n\t// it will just stick around forever ...\n\tyield Promise.all( [\n\t\tclient.batch( batchJobs, 'CirrusSearch integration test edit', 2 ),\n\t\twaitForBatch.call( world, wiki, batchJobs )\n\t] );\n} );\n\nconst runBatchFn = ( wiki, batchJobs ) => Promise.coroutine( function* () {\n\tif ( batchJobs === undefined ) {\n\t\tbatchJobs = wiki;\n\t\twiki = this.config.wikis.default;\n\t}\n\tyield runBatch( this, wiki, batchJobs );\n} );\n\n// Helpers for defining mwbot jobs in array syntax. Mostly needed\n// for upload to specify text, but others come along for the ride\nconst job = {\n\tdelete: ( title ) => [ 'delete', title ],\n\tedit: ( title, text ) => {\n\t\tif ( text[ 0 ] === '@' ) {\n\t\t\ttext = fs.readFileSync( articlePath + text.slice( 1 ) ).toString();\n\t\t}\n\t\treturn [ 'edit', title, text ];\n\t},\n\tupload: ( fileName, text ) => {\n\t\tconst pathToFile = articlePath + fileName;\n\t\treturn [ 'upload', fileName, pathToFile, '', { text: text } ];\n\t},\n\tuploadOverwrite: ( fileName, text ) => {\n\t\tconst pathToFile = articlePath + fileName;\n\t\treturn [ 'uploadOverwrite', fileName, pathToFile, '', { text: text } ];\n\t}\n};\n\nBeforeOnce( { tags: '@clean' }, runBatchFn( {\n\tdelete: [ 'DeleteMeRedirect' ]\n} ) );\n\nBeforeOnce( { tags: '@prefix' }, runBatchFn( {\n\tedit: {\n\t\t\"L'Oréal\": \"L'Oréal\",\n\t\t'Jean-Yves Le Drian': 'Jean-Yves Le Drian'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@redirect', timeout: 60000 }, runBatchFn( {\n\tedit: {\n\t\t'SEO Redirecttest': '#REDIRECT [[Search Engine Optimization Redirecttest]]',\n\t\t'Redirecttest Yikes': '#REDIRECT [[Redirecttest Yay]]',\n\t\t'User_talk:SEO Redirecttest': '#REDIRECT [[User_talk:Search Engine Optimization Redirecttest]]',\n\t\t'Seo Redirecttest': 'Seo Redirecttest',\n\t\t'Search Engine Optimization Redirecttest': 'Search Engine Optimization Redirecttest',\n\t\t'Redirecttest Yay': 'Redirecttest Yay',\n\t\t'User_talk:Search Engine Optimization Redirecttest': 'User_talk:Search Engine Optimization Redirecttest',\n\t\t'PrefixRedirectRanking 1': 'PrefixRedirectRanking 1',\n\t\t'LinksToPrefixRedirectRanking 1': '[[PrefixRedirectRanking 1]]',\n\t\t'TargetOfPrefixRedirectRanking 2': 'TargetOfPrefixRedirectRanking 2',\n\t\t'PrefixRedirectRanking 2': '#REDIRECT [[TargetOfPrefixRedirectRanking 2]]'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@accent_squashing' }, runBatchFn( {\n\tedit: {\n\t\t'Áccent Sorting': 'Áccent Sorting',\n\t\t'Accent Sorting': 'Accent Sorting'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@accented_namespace' }, runBatchFn( {\n\tedit: {\n\t\t'Mó:Test': 'some text'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@setup_main or @filters or @prefix or @bad_syntax or @wildcard or @exact_quotes or @phrase_prefix', timeout: 60000 }, runBatchFn( {\n\tedit: {\n\t\t'Template:Template Test': 'pickles [[Category:TemplateTagged]]',\n\t\t'Catapult/adsf': 'catapult subpage [[Catapult|Catapults]]',\n\t\t'Links To Catapult': '[[Catapult]]',\n\t\tCatapult: '♙ asdf [[Category:Weaponry]]',\n\t\t'Amazing Catapult': 'test [[Catapult]] [[Category:Weaponry]]',\n\t\t'Category:Weaponry': 'Weaponry refers to any items designed or used to attack and kill or destroy other people and property.',\n\t\t'Two Words': 'ffnonesenseword catapult {{Template_Test}} anotherword [[Category:TwoWords]] [[Category:Categorywith Twowords]] [[Category:Categorywith \" Quote]]',\n\t\tAlphaBeta: '[[Category:Alpha]] [[Category:Beta]]',\n\t\tIHaveATwoWordCategory: '[[Category:CategoryWith ASpace]]',\n\t\t'Functional programming': 'Functional programming is referential transparency.',\n\t\tवाङ्मय: '\\u0935\\u093e\\u0919\\u094d\\u092e\\u092f',\n\t\tवाङ्‍मय: '\\u0935\\u093e\\u0919\\u094d\\u200d\\u092e\\u092f',\n\t\tवाङ‍्मय: '\\u0935\\u093e\\u0919\\u200d\\u094d\\u092e\\u092f',\n\t\tवाङ्‌मय: '\\u0935\\u093e\\u0919\\u094d\\u200c\\u092e\\u092f',\n\t\tWikitext: '{{#tag:somebug}}',\n\t\t'Page with non ascii letters': 'ἄνθρωπος, широкий',\n\t\t'Waffle Squash': articleText( 'wafflesquash.txt' ),\n\t\t'Waffle Squash 2': 'waffle<br>squash'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@setup_main or @prefix or @bad_syntax' }, runBatchFn( [\n\tjob.edit( 'Rdir', '#REDIRECT [[Two Words]]' ),\n\tjob.edit( 'IHaveAVideo', '[[File:How to Edit Article in Arabic Wikipedia.ogg|thumb|267x267px]]' ),\n\tjob.edit( 'IHaveASound', '[[File:Serenade for Strings -mvt-1- Elgar.ogg]]' ),\n\tjob.upload( 'Savepage-greyed.png', 'Screenshot, for test purposes, associated with https://bugzilla.wikimedia.org/show_bug.cgi?id=52908 .' )\n] ) );\n\nBeforeOnce( { tags: '@setup_main or @prefix or @go or @bad_syntax or @smoke' }, runBatchFn( {\n\tedit: {\n\t\tÁfrica: 'for testing'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@boost_template' }, runBatchFn( {\n\tedit: {\n\t\t'Template:BoostTemplateHigh': 'BoostTemplateTest',\n\t\t'Template:BoostTemplateLow': 'BoostTemplateTest',\n\t\t'NoTemplates BoostTemplateTest': 'nothing important',\n\t\tHighTemplate: '{{BoostTemplateHigh}}',\n\t\tLowTemplate: '{{BoostTemplateLow}}'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@did_you_mean', timeout: 240000 }, function () {\n\tconst edits = {\n\t\t'Popular Culture': 'popular culture',\n\t\t'Nobel Prize': 'nobel prize',\n\t\t'Noble Gasses': 'noble gasses',\n\t\t'Noble Somethingelse': 'noble somethingelse',\n\t\t'Noble Somethingelse2': 'noble somethingelse',\n\t\t'Noble Somethingelse3': 'noble somethingelse',\n\t\t'Noble Somethingelse4': 'noble somethingelse',\n\t\t'Noble Somethingelse5': 'noble somethingelse',\n\t\t'Noble Somethingelse6': 'noble somethingelse',\n\t\t'Noble Somethingelse7': 'noble somethingelse',\n\t\t'Template:Noble Pipe 1': 'pipes are so noble',\n\t\t'Template:Noble Pipe 2': 'pipes are so noble',\n\t\t'Template:Noble Pipe 3': 'pipes are so noble',\n\t\t'Template:Noble Pipe 4': 'pipes are so noble',\n\t\t'Template:Noble Pipe 5': 'pipes are so noble',\n\t\t'Rrr Word 1': '#REDIRECT [[Popular Culture]]',\n\t\t'Rrr Word 2': '#REDIRECT [[Popular Culture]]',\n\t\t'Rrr Word 3': '#REDIRECT [[Noble Somethingelse3]]',\n\t\t'Rrr Word 4': '#REDIRECT [[Noble Somethingelse4]]',\n\t\t'Rrr Word 5': '#REDIRECT [[Noble Somethingelse5]]',\n\t\t'Nobel Gassez': '#REDIRECT [[Noble Gasses]]'\n\t};\n\treturn runBatch( this, false, { edit: edits } );\n} );\n\nBeforeOnce( { tags: '@did_you_mean or @stemming', timeout: 60000 }, runBatchFn( {\n\tedit: {\n\t\t'Stemming Multiwords': 'Stemming Multiwords',\n\t\t'Stemming Possessive’s': 'Stemming Possessive’s',\n\t\tStemmingsinglewords: 'Stemmingsinglewords',\n\t\t'Stemmingsinglewords Other 1': 'Stemmingsinglewords Other 1',\n\t\t'Stemmingsinglewords Other 2': 'Stemmingsinglewords Other 2',\n\t\t'Stemmingsinglewords Other 3': 'Stemmingsinglewords Other 3',\n\t\t'Stemmingsinglewords Other 4': 'Stemmingsinglewords Other 4',\n\t\t'Stemmingsinglewords Other 5': 'Stemmingsinglewords Other 5',\n\t\t'Stemmingsinglewords Other 6': 'Stemmingsinglewords Other 6',\n\t\t'Stemmingsinglewords Other 7': 'Stemmingsinglewords Other 7',\n\t\t'Stemmingsinglewords Other 8': 'Stemmingsinglewords Other 8',\n\t\t'Stemmingsinglewords Other 9': 'Stemmingsinglewords Other 9',\n\t\t'Stemmingsinglewords Other 10': 'Stemmingsinglewords Other 10',\n\t\t'Stemmingsinglewords Other 11': 'Stemmingsinglewords Other 11',\n\t\t'Stemmingsinglewords Other 12': 'Stemmingsinglewords Other 12'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@exact_quotes' }, runBatchFn( {\n\tedit: {\n\t\t'Contains A Stop Word': 'Contains A Stop Word',\n\t\t\"Doesn't Actually Contain Stop Words\": \"Doesn't Actually Contain Stop Words\",\n\t\t'Pick*': 'Pick*'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@filesearch' }, Promise.coroutine( function* () {\n\t// Unfortunatly the current deduplication between wikis requires a file\n\t// be uploaded to commons before it's uploaded to any other wiki, or the\n\t// other wiki isn't tagged.\n\tyield runBatch( this, 'commons', [\n\t\tjob.upload( 'DuplicatedLocally.svg', 'File stored on commons and duplicated locally' ),\n\t\tjob.upload( 'OnCommons.svg', 'File stored on commons for test purposes' )\n\t] );\n\n\tyield runBatch( this, false, [\n\t\tjob.upload( 'No_SVG.svg', '[[Category:Red circle with left slash]]' ),\n\t\tjob.upload( 'Somethingelse_svg_SVG.svg', '[[Category:Red circle with left slash]]' ),\n\t\tjob.upload( 'Savepage-greyed.png', 'Screenshot, for test purposes, associated with https://bugzilla.wikimedia.org/show_bug.cgi?id=52908 .' ),\n\t\tjob.upload( 'DuplicatedLocally.svg', 'Locally stored file duplicated on commons' ),\n\t\tjob.delete( 'File:Frozen.svg' )\n\t] );\n\n} ) );\n\nBeforeOnce( { tags: '@redirect_loop' }, Promise.coroutine( function* () {\n\t// These can't go through the normal runBatch because, as redirects that never\n\t// end up at an article, they don't actually make it into elasticsearch.\n\tconst client = yield this.onWiki();\n\tyield client.batch( {\n\t\tedit: {\n\t\t\t'Redirect Loop': '#REDIRECT [[Redirect Loop 1]]',\n\t\t\t'Redirect Loop 1': '#REDIRECT [[Redirect Loop 2]]',\n\t\t\t'Redirect Loop 2': '#REDIRECT [[Redirect Loop 1]]'\n\t\t}\n\t} );\n\t// Randomly guess at how long to wait ...\n\tyield this.stepHelpers.waitForMs( 3000 );\n} ) );\n\nBeforeOnce( { tags: '@headings' }, runBatchFn( {\n\tedit: {\n\t\tHasHeadings: articleText( 'has_headings.txt' ),\n\t\tHasReferencesInText: 'References [[Category:HeadingsTest]]',\n\t\tHasHeadingsWithHtmlComment: articleText( 'has_headings_with_html_comment.txt' ),\n\t\tHasHeadingsWithReference: articleText( 'has_headings_with_reference.txt' )\n\t}\n} ) );\n\nBeforeOnce( { tags: '@javascript_injection' }, runBatchFn( {\n\tedit: {\n\t\t'Javascript Direct Inclusion': articleText( 'javascript.txt' ),\n\t\t'Javascript Pre Tag Inclusion': articleText( 'javascript_in_pre.txt' )\n\t}\n} ) );\n\nBeforeOnce( { tags: '@setup_namespaces' }, runBatchFn( {\n\tedit: {\n\t\t'Talk:Two Words': 'why is this page about catapults?',\n\t\t'Help:Smoosh': 'test',\n\t\t'File:Nothingasdf': 'nothingasdf'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@highlighting' }, runBatchFn( {\n\tedit: {\n\t\t'Rashidun Caliphate': articleText( 'rashidun_caliphate.txt' ),\n\t\t'Crazy Rdir': '#REDIRECT [[Two Words]]',\n\t\t'Insane Rdir': '#REDIRECT [[Two Words]]',\n\t\t'The Once and Future King': 'The Once and Future King',\n\t\t'User_talk:Test': 'User_talk:Test',\n\t\t'Rose Trellis Faberge Egg': articleText( 'rose_trellis_faberge_egg.txt' )\n\t}\n} ) );\n\nBeforeOnce( { tags: '@highlighting or @references' }, runBatchFn( {\n\tedit: {\n\t\t'References Highlight Test': articleText( 'references_highlight_test.txt' )\n\t}\n} ) );\n\nBeforeOnce( { tags: '@more_like_this' }, runBatchFn( {\n\tedit: {\n\t\t'More Like Me 1': 'morelikesetone morelikesetone',\n\t\t'More Like Me 2': 'morelikesetone morelikesetone morelikesetone morelikesetone',\n\t\t'More Like Me 3': 'morelikesetone morelikesetone morelikesetone morelikesetone',\n\t\t'More Like Me 4': 'morelikesetone morelikesetone morelikesetone morelikesetone',\n\t\t'More Like Me 5': 'morelikesetone morelikesetone morelikesetone morelikesetone',\n\t\t'More Like Me Rdir': '#REDIRECT [[More Like Me 1]]',\n\t\t'More Like Me Set 2 Page 1': 'morelikesettwo morelikesettwo morelikesettwo',\n\t\t'More Like Me Set 2 Page 2': 'morelikesettwo morelikesettwo morelikesettwo',\n\t\t'More Like Me Set 2 Page 3': 'morelikesettwo morelikesettwo morelikesettwo',\n\t\t'More Like Me Set 2 Page 4': 'morelikesettwo morelikesettwo morelikesettwo',\n\t\t'More Like Me Set 2 Page 5': 'morelikesettwo morelikesettwo morelikesettwo',\n\t\t'More Like Me Set 3 Page 1': 'morelikesetthree morelikesetthree',\n\t\t'More Like Me Set 3 Page 2': 'morelikesetthree morelikesetthree',\n\t\t'More Like Me Set 3 Page 3': 'morelikesetthree morelikesetthree',\n\t\t'More Like Me Set 3 Page 4': 'morelikesetthree morelikesetthree',\n\t\t'More Like Me Set 3 Page 5': 'morelikesetthree morelikesetthree',\n\t\t'This is Me': 'this is me'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@setup_phrase_rescore' }, runBatchFn( {\n\tedit: {\n\t\t'Rescore Test Words Chaff': 'Words Test Rescore Chaff',\n\t\t'Test Words Rescore Rescore Test Words': 'Test Words Rescore Rescore Test Words',\n\t\t'Rescore Test TextContent': 'Chaff',\n\t\t'Rescore Test HasTextContent': 'Rescore Test TextContent'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@programmer_friendly' }, runBatchFn( {\n\tedit: {\n\t\t$wgNamespaceAliases: '$wgNamespaceAliases',\n\t\tPFSC: 'snake_case',\n\t\tPascalCase: 'PascalCase',\n\t\tNumericCase7: 'NumericCase7',\n\t\t'this.getInitial': 'this.getInitial',\n\t\t'RefToolbarBase.js': 'RefToolbarBase.js',\n\t\t'PFTest Paren': 'this.isCamelCased()'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@stemmer' }, runBatchFn( {\n\tedit: {\n\t\t'StemmerTest Aliases': 'StemmerTest Aliases',\n\t\t'StemmerTest Alias': 'StemmerTest Alias',\n\t\t'StemmerTest Used': 'StemmerTest Used',\n\t\t'StemmerTest Guidelines': 'StemmerTest Guidelines'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@prefix_filter' }, runBatchFn( {\n\tedit: {\n\t\t'Prefix Test': 'Prefix Test',\n\t\t'Prefix Test Redirect': '#REDIRECT [[Prefix Test]]',\n\t\t'Foo Prefix Test': '[[Prefix Test]]',\n\t\t'Prefix Test/AAAA': '[[Prefix Test]]',\n\t\t'Prefix Test AAAA': '[[Prefix Test]]',\n\t\t'Talk:Prefix Test': '[[Prefix Test]]',\n\t\t'User_talk:Prefix Test': '[[Prefix Text]]'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@prefer_recent', timeout: 60000 }, runBatchFn( {\n\t// NOTE: this was originally a real test for testing recency with prefer-recent\n\t// it was transformed into a simple smoke test because it was too unreliable,\n\t// (it's why PreferRecent Third is created in the same batch).\n\tedit: {\n\t\t'PreferRecent First': 'PreferRecent random text for field norm ' + ( Date.now() / 1 ),\n\t\t'PreferRecent Second': 'PreferRecent ' + ( Date.now() / 1 ),\n\t\t'PreferRecent Third': 'PreferRecent random text for field norm ' + ( Date.now() / 1 )\n\t}\n} ) );\n\nBeforeOnce( { tags: '@hastemplate' }, runBatchFn( {\n\tedit: {\n\t\tMainNamespaceTemplate: 'MainNamespaceTemplate',\n\t\tHasMainNSTemplate: '{{:MainNamespaceTemplate}}',\n\t\tCaseCheckTemplate: 'CaseCheckTemplate',\n\t\tHasCaseCheckTemplate: '{{Template:CaseCheckTemplate}}',\n\t\tcasechecktemplate: 'casechecktemplate',\n\t\tHascasechecktemplate: '{{Template:casechecktemplate}}',\n\t\t'Talk:TalkTemplate': 'Talk:TalkTemplate',\n\t\tHasTTemplate: '{{Talk:TalkTemplate}}'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@go' }, runBatchFn( {\n\tedit: {\n\t\tMixedCapsAndLowerCase: 'MixedCapsAndLowerCase'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@go or @options', timeout: 120000 }, runBatchFn( {\n\tedit: {\n\t\t'son Nearmatchflattentest': 'son Nearmatchflattentest',\n\t\t'Son Nearmatchflattentest': 'Son Nearmatchflattentest',\n\t\t'SON Nearmatchflattentest': 'SON Nearmatchflattentest',\n\t\t'soñ Nearmatchflattentest': 'soñ Nearmatchflattentest',\n\t\t'Son Nolower Nearmatchflattentest': 'Son Nolower Nearmatchflattentest',\n\t\t'SON Nolower Nearmatchflattentest': 'SON Nolower Nearmatchflattentest',\n\t\t'Soñ Nolower Nearmatchflattentest': 'Soñ Nolower Nearmatchflattentest',\n\t\t'Son Titlecase Nearmatchflattentest': 'Son Titlecase Nearmatchflattentest',\n\t\t'Soñ Titlecase Nearmatchflattentest': 'Soñ Titlecase Nearmatchflattentest',\n\t\t'Soñ Onlyaccent Nearmatchflattentest': 'Soñ Onlyaccent Nearmatchflattentest',\n\t\t'Soñ Twoaccents Nearmatchflattentest': 'Soñ Twoaccents Nearmatchflattentest',\n\t\t'Són Twoaccents Nearmatchflattentest': 'Són Twoaccents Nearmatchflattentest',\n\t\t'son Double Nearmatchflattentest': 'son Double Nearmatchflattentest',\n\t\t'SON Double Nearmatchflattentest': 'SON Double Nearmatchflattentest',\n\t\t'Bach Nearmatchflattentest': '#REDIRECT [[Johann Sebastian Bach Nearmatchflattentest]]',\n\t\t'Bạch Nearmatchflattentest': 'Notice the dot under the a.',\n\t\t'Johann Sebastian Bach Nearmatchflattentest': 'Johann Sebastian Bach Nearmatchflattentest',\n\t\t'KOAN Nearmatchflattentest': 'KOAN Nearmatchflattentest',\n\t\t'Kōan Nearmatchflattentest': 'Kōan Nearmatchflattentest',\n\t\t'Koan Nearmatchflattentest': '#REDIRECT [[Kōan Nearmatchflattentest]]',\n\t\t'Soñ Redirect Nearmatchflattentest': 'Soñ Redirect Nearmatchflattentest',\n\t\t'Són Redirect Nearmatchflattentest': 'Són Redirect Nearmatchflattentest',\n\t\t'Son Redirect Nearmatchflattentest': '#REDIRECT [[Soñ Redirect Nearmatchflattentest]]',\n\t\t'Són Redirectnotbetter Nearmatchflattentest': 'Són Redirectnotbetter Nearmatchflattentest',\n\t\t'Soñ Redirectnotbetter Nearmatchflattentest': '#REDIRECT [[Són Redirectnotbetter Nearmatchflattentest]]',\n\t\t'Són Redirecttoomany Nearmatchflattentest': 'Són Redirecttoomany Nearmatchflattentest',\n\t\t'Soñ Redirecttoomany Nearmatchflattentest': '#REDIRECT [[Són Redirecttoomany Nearmatchflattentest]]',\n\t\t'Søn Redirecttoomany Nearmatchflattentest': 'Søn Redirecttoomany Nearmatchflattentest',\n\t\t'Blah Redirectnoncompete Nearmatchflattentest': 'Blah Redirectnoncompete Nearmatchflattentest',\n\t\t'Soñ Redirectnoncompete Nearmatchflattentest': '#REDIRECT [[Blah Redirectnoncompete Nearmatchflattentest]]',\n\t\t'Søn Redirectnoncompete Nearmatchflattentest': '#REDIRECT [[Blah Redirectnoncompete Nearmatchflattentest]]'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@file_text or @filesearch', timeout: 60000 }, Promise.coroutine( function* () {\n\t// TODO: this one is really unclear to me, figure out why we need such hack\n\t// This file is available on commons.wikimedia.org and because $wgUseInstantCommons is set to true\n\t// mwbot may think it's a dup and won't upload it. Use uploadOverwrite to avoid that.\n\t// But to use uploadOverwrite we first make sure that the file is not here otherwise mwbot\n\t// will complain about perfect duplicate...\n\tyield runBatch( this, false, {\n\t\tdelete: [\n\t\t\t'File:Linux_Distribution_Timeline_text_version.pdf'\n\t\t]\n\t} );\n\tyield runBatch( this, false, [\n\t\tjob.uploadOverwrite( 'Linux_Distribution_Timeline_text_version.pdf', 'Linux distribution timeline.' )\n\t] );\n} ) );\n\nBeforeOnce( { tags: '@match_stopwords' }, runBatchFn( {\n\tedit: {\n\t\tTo: 'To'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@many_redirects' }, runBatchFn( {\n\tedit: {\n\t\tManyredirectstarget: '[[Category:ManyRedirectsTest]]',\n\t\tFewredirectstarget: '[[Category:ManyRedirectsTest]]',\n\t\t'Many Redirects Test 1': '#REDIRECT [[Manyredirectstarget]]',\n\t\t'Many Redirects Test 2': '#REDIRECT [[Manyredirectstarget]]',\n\t\t'Useless redirect to target 1': '#REDIRECT [[Manyredirectstarget]]',\n\t\t'Useless redirect to target 2': '#REDIRECT [[Manyredirectstarget]]',\n\t\t'Useless redirect to target 3': '#REDIRECT [[Manyredirectstarget]]',\n\t\t'Useless redirect to target 4': '#REDIRECT [[Manyredirectstarget]]',\n\t\t'Useless redirect to target 5': '#REDIRECT [[Manyredirectstarget]]',\n\t\t'Many Redirects Test ToFew': '#REDIRECT [[Fewredirectstarget]]'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@relevancy', timeout: 160000 }, runBatchFn( {\n\tedit: {\n\t\t'Relevancyredirecttest Smaller': 'Relevancyredirecttest A text text text text text text text text text text text text text',\n\t\t'Relevancyredirecttest Smaller/A': '[[Relevancyredirecttest Smaller]]',\n\t\t'Relevancyredirecttest Smaller/B': '[[Relevancyredirecttest Smaller]]',\n\t\t'Relevancyredirecttest Larger': 'Relevancyredirecttest B text text text text text text text text text text text text text',\n\t\t'Relevancyredirecttest Larger/Redirect': '#REDIRECT [[Relevancyredirecttest Larger]]',\n\t\t'Relevancyredirecttest Larger/A': '[[Relevancyredirecttest Larger]]',\n\t\t'Relevancyredirecttest Larger/B': '[[Relevancyredirecttest Larger/Redirect]]',\n\t\t'Relevancyredirecttest Larger/C': '[[Relevancyredirecttest Larger/Redirect]]',\n\t\t'Relevancylinktest Smaller': 'Relevancylinktest Smaller',\n\t\t'Relevancylinktest Larger Extraword': 'Relevancylinktest needs 5 extra words',\n\t\t'Relevancylinktest Larger/Link A': '[[Relevancylinktest Larger Extraword]]',\n\t\t'Relevancylinktest Larger/Link B': '[[Relevancylinktest Larger Extraword]]',\n\t\t'Relevancylinktest Larger/Link C': '[[Relevancylinktest Larger Extraword]]',\n\t\t'Relevancylinktest Larger/Link D': '[[Relevancylinktest Larger Extraword]]',\n\t\tRelevancytest: 'it is not relevant',\n\t\tRelevancytestviaredirect: 'not relevant',\n\t\t'Relevancytest Redirect': '#REDIRECT [[Relevancytestviaredirect]]',\n\t\tRelevancytestviacategory: 'Some opening text. [[Category:Relevancytest]]',\n\t\tRelevancytestviaheading: '==Relevancytest==',\n\t\tRelevancytestviaopening: articleText( 'Relevancytestviaopening.txt' ),\n\t\tRelevancytestviatext: '[[Relevancytest]]',\n\t\tRelevancytestviaauxtext: articleText( 'Relevancytestviaauxtext.txt' ),\n\t\t'Relevancytestphrase phrase': 'not relevant',\n\t\tRelevancytestphraseviaredirect: 'not relevant',\n\t\t'Relevancytestphrase Phrase Redirect': '#REDIRECT [[Relevancytestphraseviaredirect]]',\n\t\tRelevancytestphraseviacategory: 'not relevant [[Category:Relevancytestphrase phrase category]]',\n\t\tRelevancytestphraseviaheading: '==Relevancytestphrase phrase heading==',\n\t\tRelevancytestphraseviaopening: articleText( 'Relevancytestphraseviaopening.txt' ),\n\t\tRelevancytestphraseviatext: '[[Relevancytestphrase phrase]] text',\n\t\tRelevancytestphraseviaauxtext: articleText( 'Relevancytestphraseviaauxtext.txt' ),\n\t\t'Relevancytwo Wordtest': 'relevance is bliss',\n\t\t'Wordtest Relevancytwo': 'relevance is cool',\n\t\tRelevancynamespacetest: 'Relevancynamespacetest',\n\t\t'Talk:Relevancynamespacetest': 'Talk:Relevancynamespacetest',\n\t\t'File:Relevancynamespacetest': 'File:Relevancynamespacetest',\n\t\t'Help:Relevancynamespacetest': 'Help:Relevancynamespacetest',\n\t\t'File talk:Relevancynamespacetest': 'File talk:Relevancynamespacetest',\n\t\t'User talk:Relevancynamespacetest': 'User talk:Relevancynamespacetest',\n\t\t'Template:Relevancynamespacetest': 'Template:Relevancynamespacetest',\n\t\t'Relevancylanguagetest/ja': 'Relevancylanguagetest/ja',\n\t\t'Relevancylanguagetest/en': 'Relevancylanguagetest/en',\n\t\t'Relevancylanguagetest/ar': 'Relevancylanguagetest/ar',\n\t\t'Relevancyclosetest Foô': 'Relevancyclosetest Foô',\n\t\t'Relevancyclosetest Foo': 'Relevancyclosetest Foo',\n\t\t'Foo Relevancyclosetest': 'Foo Relevancyclosetest',\n\t\t'William Shakespeare': 'William Shakespeare',\n\t\t'William Shakespeare Works': 'To be or not to be is a famous quote from Hamlet'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@fallback_finder' }, runBatchFn( {\n\tedit: {\n\t\t$US: '$US',\n\t\tUS: 'US',\n\t\tUslink: '[[US]]',\n\t\t'Cent (currency)': 'Cent (currency)',\n\t\t'¢': '#REDIRECT [[Cent (currency)]]'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@js_and_css' }, runBatchFn( {\n\tedit: {\n\t\t'User:Admin/Some.js': articleText( 'some.js' ),\n\t\t'User:Admin/Some.css': articleText( 'some.css' )\n\t}\n} ) );\n\nBeforeOnce( { tags: '@special_random' }, runBatchFn( {\n\tedit: {\n\t\t'User:Random Test': 'User:Random Test',\n\t\t'User_talk:Random Test': 'User_talk:Random Test'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@regex' }, runBatchFn( {\n\tedit: {\n\t\tRegexEscapedForwardSlash: 'a/b',\n\t\tRegexEscapedBackslash: 'a\\\\b',\n\t\tRegexEscapedDot: 'a.b',\n\t\tRegexSpaces: 'a b c',\n\t\tRegexComplexResult: 'aaabacccccccccccccccdcccccccccccccccccccccccccccccdcccc'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@linksto' }, Promise.coroutine( function* () {\n\tyield runBatch( this, false, {\n\t\tedit: {\n\t\t\t'LinksToTest Target': 'LinksToTest Target',\n\t\t\t'LinksToTest Plain': '[[LinksToTest Target]]',\n\t\t\t'LinksToTest OtherText': '[[LinksToTest Target]] and more text',\n\t\t\t'LinksToTest No Link': 'LinksToTest Target',\n\t\t\t'Template:LinksToTest Template': '[[LinksToTest Target]]',\n\t\t\t'LinksToTest LinksToTemplate': '[[Template:LinksToTest Template]]'\n\t\t}\n\t} );\n\t// We need to guarantee the template exists before this edit goes through.\n\tyield runBatch( this, false, {\n\t\tedit: {\n\t\t\t'LinksToTest Using Template': '{{LinksToTest Template}}'\n\t\t}\n\t} );\n} ) );\n\nBeforeOnce( { tags: '@filenames' }, runBatchFn( [\n\tjob.upload( 'No_SVG.svg', '[[Category:Red circle with left slash]]' ),\n\tjob.upload( 'Somethingelse_svg_SVG.svg', '[[Category:Red circle with left slash]]' )\n] ) );\n\nBeforeOnce( { tags: '@removed_text' }, runBatchFn( {\n\tedit: {\n\t\t'Autocollapse Example': '<div class=\"autocollapse\">inside autocollapse</div>'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@setup_main or @commons' }, Promise.coroutine( function* () {\n\tyield runBatch( this, 'commons', {\n\t\tdelete: [\n\t\t\t'File:OnCommons.svg',\n\t\t\t'File:DuplicatedLocally.svg'\n\t\t]\n\t} );\n\tyield runBatch( this, false, {\n\t\tdelete: [ 'File:DuplicatedLocally.svg' ]\n\t} );\n\n\tyield runBatch( this, 'commons', [\n\t\t// TODO: Why is overwrite necessary here? Otherwise the upload is rejected\n\t\t// with was-deleted or some such?\n\t\tjob.uploadOverwrite( 'OnCommons.svg', 'File stored on commons for test purposes' ),\n\t\tjob.uploadOverwrite( 'DuplicatedLocally.svg', 'File stored on commons and duplicated locally' )\n\t] );\n\t// For duplications to track correctly commons has to be uploaded first. This is a bug\n\t// in cirrus, but no current plans to fix.\n\tyield runBatch( this, false, [\n\t\tjob.uploadOverwrite( 'DuplicatedLocally.svg', 'Locally stored file duplicated on commons' )\n\t] );\n} ) );\n\nBeforeOnce( { tags: '@ru' }, runBatchFn( 'ru', {\n\tedit: {\n\t\t'Черная дыра': 'Черная дыра́ — область пространства-времени',\n\t\t'Саша Чёрный': 'настоящее имя Алекса́ндр Миха́йлович Гли́кберг',\n\t\tБразер: 'белорусский советский скульптор'\n\t}\n} ) );\n\nBeforeOnce( { tags: '@geo' }, runBatchFn( {\n\tedit: {\n\t\t'San Jose': 'San Jose is a nice city located at {{#coordinates:primary|37.333333|-121.9}}.',\n\t\t'Santa Clara': 'Santa Clara is a nice city located at {{#coordinates:primary|37.354444|-121.969167}}.',\n\t\tCupertino: 'Cupertino is a nice city located at {{#coordinates:primary|37.3175|-122.041944}}.'\n\t}\n} ) );\n\n// This needs to be the *last* hook added. That gives us some hope that everything\n// else is inside elasticsearch by the time cirrus-suggest-index runs and builds\n// the completion suggester\nBeforeOnce( { tags: '@suggest', timeout: 120000 }, Promise.coroutine( function* () {\n\tyield runBatch( this, false, {\n\t\tedit: {\n\t\t\tVenom: 'Venom: or the Venom Symbiote: is a fictional supervillain appearing in American comic books published by Marvel Comics. The character is a sentient alien Symbiote with an amorphous, liquid-like form, who requires a host, usually human, to bond with for its survival.',\n\t\t\t'X-Men': 'The X-Men are a fictional team of superheroes',\n\t\t\t'Xavier: Charles': 'Professor Charles Francis Xavier (also known as Professor X) is the founder of [[X-Men]]',\n\t\t\t'X-Force': 'X-Force is a fictional team of of [[X-Men]]',\n\t\t\tMagneto: 'Magneto is a fictional character appearing in American comic books',\n\t\t\t'Help:Magneto': 'Help:Magneto',\n\t\t\t'Max Eisenhardt': '#REDIRECT [[Magneto]]',\n\t\t\t'Eisenhardt, Max': '#REDIRECT [[Magneto]]',\n\t\t\tMagnetu: '#REDIRECT [[Magneto]]',\n\t\t\tIce: \"It's cold.\",\n\t\t\tIceman: 'Iceman (Robert \"Bobby\" Drake) is a fictional superhero appearing in American comic books published by Marvel Comics and is...',\n\t\t\t'Ice Man (Marvel Comics)': '#REDIRECT [[Iceman]]',\n\t\t\t'Ice-Man (comics books)': '#REDIRECT [[Iceman]]',\n\t\t\t'Ultimate Iceman': '#REDIRECT [[Iceman]]',\n\t\t\tÉlectricité: 'This is electicity in french.',\n\t\t\tElektra: 'Elektra is a fictional character appearing in American comic books published by Marvel Comics.',\n\t\t\t'Help:Navigation': 'When viewing any page on MediaWiki...',\n\t\t\t'V:N': '#REDIRECT [[Help:Navigation]]',\n\t\t\t'Z:Navigation': '#REDIRECT [[Help:Navigation]]',\n\t\t\t'Zam Wilson': '#REDIRECT [[Sam Wilson]]',\n\t\t\t'The Doors': 'The Doors were an American rock band formed in 1965 in Los Angeles.',\n\t\t\t'Hyperion Cantos/Endymion': 'Endymion is the third science fiction novel by Dan Simmons.',\n\t\t\tはーい: 'makes sure we do not fail to index empty tokens (T156234)',\n\t\t\t'Sam Wilson': 'Warren Kenneth Worthington III: originally known as Angel and later as Archangel: ... Marvel Comics like [[Venom]]. {{DEFAULTSORTKEY:Wilson: Sam}}'\n\t\t}\n\t} );\n\n\tconst client = yield this.onWiki();\n\tyield client.request( {\n\t\taction: 'cirrus-suggest-index'\n\t} );\n} ) );\n","usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/integration/features/support/pages/article_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/integration/features/support/pages/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/integration/features/support/pages/search_results_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/integration/features/support/pages/special_undelete.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/integration/features/support/pages/title_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/integration/features/support/world.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/integration/lib/tracker.js","messages":[],"suppressedMessages":[{"ruleId":"no-process-exit","severity":2,"message":"Don't use process.exit(); throw an error instead.","line":106,"column":4,"nodeType":"CallExpression","messageId":"noProcessExit","endLine":106,"endColumn":18,"suppressions":[{"kind":"directive","justification":""}]}],"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/phpunit/fixtures/configDump/enwiki_crosslang_frwiki_config.json","messages":[{"fatal":false,"severity":1,"message":"File ignored because of a matching ignore pattern. Use \"--no-ignore\" to override."}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/fixtures/configDump/enwiki_crosslang_frwiki_invalid_config.json","messages":[{"fatal":false,"severity":1,"message":"File ignored because of a matching ignore pattern. Use \"--no-ignore\" to override."}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/fixtures/configDump/enwiki_sisterproject_configs.json","messages":[{"fatal":false,"severity":1,"message":"File ignored because of a matching ignore pattern. Use \"--no-ignore\" to override."}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/fixtures/regexParser/ref_impl_fixtures.json","messages":[{"fatal":false,"severity":1,"message":"File ignored because of a matching ignore pattern. Use \"--no-ignore\" to override."}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/random.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/smoke_test.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 ---
$ /usr/bin/npm ci --legacy-peer-deps
--- stderr ---
npm WARN deprecated request-promise-native@1.0.5: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated date-format@0.0.2: 0.x is no longer supported. Please upgrade to 4.x or higher.
npm WARN deprecated debug@3.2.6: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
npm WARN deprecated grunt-webdriver@3.0.0: not maintained anymore
npm WARN deprecated formidable@1.2.2: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
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 uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated @babel/polyfill@7.12.1: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.
npm WARN deprecated gherkin@5.1.0: This package is now published under @cucumber/gherkin
npm WARN deprecated cucumber-expressions@6.6.2: This package is now published under @cucumber/cucumber-expressions
npm WARN deprecated cucumber@5.1.0: Cucumber is publishing new releases under @cucumber/cucumber
npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
--- stdout ---

added 890 packages, and audited 891 packages in 12s

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

14 vulnerabilities (8 moderate, 3 high, 3 critical)

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

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

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

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stdout ---

> cirrussearch@0.0.0 test
> grunt test

Running "eslint:all" (eslint) task

/src/repo/tests/integration/features/step_definitions/page_steps.js
  131:5  error  ES2022 'Array.prototype.at' method is forbidden  es-x/no-array-string-prototype-at
  134:4  error  ES2022 'Array.prototype.at' method is forbidden  es-x/no-array-string-prototype-at

/src/repo/tests/integration/features/support/hooks.js
  38:15  error  'job' is already declared in the upper scope on line 106 column 7  no-shadow

/src/repo/tests/phpunit/fixtures/configDump/enwiki_crosslang_frwiki_config.json
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/phpunit/fixtures/configDump/enwiki_crosslang_frwiki_invalid_config.json
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/phpunit/fixtures/configDump/enwiki_sisterproject_configs.json
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/phpunit/fixtures/regexParser/ref_impl_fixtures.json
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

✖ 7 problems (3 errors, 4 warnings)

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.
Source code is licensed under the AGPL.