mediawiki/extensions/NSFileRepo: main (log #953081)

sourcepatches

This run took 33 seconds.

$ date
--- stdout ---
Wed Mar 15 21:22:50 UTC 2023

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

--- end ---
$ /usr/bin/npm audit --json --legacy-peer-deps
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {},
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 0,
      "high": 0,
      "critical": 0,
      "total": 0
    },
    "dependencies": {
      "prod": 1,
      "dev": 291,
      "optional": 0,
      "peer": 0,
      "peerOptional": 0,
      "total": 291
    }
  }
}

--- 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: 20 installs, 0 updates, 0 removals
  - Locking composer/installers (v2.2.0)
  - Locking composer/semver (3.3.2)
  - Locking composer/spdx-licenses (1.5.7)
  - Locking mediawiki/mediawiki-codesniffer (v40.0.1)
  - Locking mediawiki/minus-x (1.1.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 psr/container (1.1.2)
  - Locking squizlabs/php_codesniffer (3.7.1)
  - Locking symfony/console (v5.4.21)
  - Locking symfony/deprecation-contracts (v2.5.2)
  - Locking symfony/polyfill-ctype (v1.27.0)
  - Locking symfony/polyfill-intl-grapheme (v1.27.0)
  - Locking symfony/polyfill-intl-normalizer (v1.27.0)
  - Locking symfony/polyfill-mbstring (v1.27.0)
  - Locking symfony/polyfill-php73 (v1.27.0)
  - Locking symfony/polyfill-php80 (v1.27.0)
  - Locking symfony/service-contracts (v2.5.2)
  - Locking symfony/string (v5.4.21)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 20 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]    0 [--->------------------------]  - Installing composer/installers (v2.2.0): Extracting archive
  - Installing symfony/polyfill-php80 (v1.27.0): Extracting archive
  - Installing squizlabs/php_codesniffer (3.7.1): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.27.0): Extracting archive
  - Installing composer/spdx-licenses (1.5.7): Extracting archive
  - Installing composer/semver (3.3.2): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v40.0.1): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.27.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.27.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.27.0): Extracting archive
  - Installing symfony/string (v5.4.21): Extracting archive
  - Installing symfony/deprecation-contracts (v2.5.2): Extracting archive
  - Installing psr/container (1.1.2): Extracting archive
  - Installing symfony/service-contracts (v2.5.2): Extracting archive
  - Installing symfony/polyfill-php73 (v1.27.0): Extracting archive
  - Installing symfony/console (v5.4.21): Extracting archive
  - Installing mediawiki/minus-x (1.1.1): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.3.2): Extracting archive
  0/10 [>---------------------------]   0%
 10/10 [============================] 100%5 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
13 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---

--- end ---
Upgrading n:eslint-config-wikimedia from 0.22.1 -> 0.24.0
Upgrading n:grunt from 1.5.3 -> 1.6.1
$ /usr/bin/npm install
--- stdout ---

added 278 packages, and audited 279 packages in 5s

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

found 0 vulnerabilities

--- 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 279 packages in 859ms

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

found 0 vulnerabilities

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

--- end ---
$ ./node_modules/.bin/eslint resources/nsfr/ui/dialog/ChangeFileNamespaceAssociation.js i18n/nsfilerepo/el.json i18n/nsfilerepo/qqq.json i18n/nsfilerepo/ja.json tests/qunit/ext.nsfilerepo.upload.paramsProcessor.test.js i18n/nsfilerepo/be-tarask.json i18n/nsfilerepo/sv.json i18n/nsfilerepo/hu.json i18n/nsfilerepo/oc.json i18n/imgauth/qqq.json composer.json i18n/nsfilerepo/uk.json i18n/nsfilerepo/zh-hant.json i18n/nsfilerepo/id.json i18n/nsfilerepo/szy.json i18n/nsfilerepo/ms.json i18n/nsfilerepo/ar.json extension.json i18n/nsfilerepo/br.json i18n/nsfilerepo/bn.json i18n/nsfilerepo/ta.json i18n/nsfilerepo/gl.json i18n/nsfilerepo/sh.json i18n/nsfilerepo/pnb.json i18n/nsfilerepo/dsb.json resources/ext.nsfilerepo.special.upload.js package-lock.json i18n/nsfilerepo/hsb.json i18n/nsfilerepo/en.json i18n/nsfilerepo/ce.json i18n/nsfilerepo/vi.json i18n/nsfilerepo/yi.json i18n/nsfilerepo/vec.json i18n/nsfilerepo/ia.json i18n/nsfilerepo/hil.json package.json resources/ext.nsfilerepo.filepage.bootstrap.js i18n/nsfilerepo/he.json i18n/nsfilerepo/ca.json i18n/nsfilerepo/tly.json i18n/nsfilerepo/ast.json i18n/nsfilerepo/hy.json i18n/nsfilerepo/smn.json i18n/nsfilerepo/sr-el.json resources/nsfr/EnhancedUploadParamsProcessor.js i18n/nsfilerepo/fi.json i18n/nsfilerepo/tl.json i18n/nsfilerepo/ksh.json i18n/nsfilerepo/as.json i18n/nsfilerepo/sje.json i18n/nsfilerepo/tr.json i18n/nsfilerepo/ml.json i18n/nsfilerepo/de.json i18n/nsfilerepo/diq.json i18n/nsfilerepo/frp.json i18n/nsfilerepo/nb.json i18n/nsfilerepo/bg.json i18n/nsfilerepo/bs.json i18n/nsfilerepo/lb.json i18n/nsfilerepo/mr.json i18n/nsfilerepo/io.json i18n/nsfilerepo/sk.json i18n/nsfilerepo/te.json i18n/nsfilerepo/pt-br.json i18n/nsfilerepo/sms.json i18n/nsfilerepo/fa.json i18n/nsfilerepo/sl.json i18n/nsfilerepo/it.json i18n/nsfilerepo/skr-arab.json i18n/nsfilerepo/gsw.json i18n/nsfilerepo/se.json resources/ext.nsfilerepo.namespace.upload.js i18n/nsfilerepo/roa-tara.json i18n/imgauth/en.json i18n/nsfilerepo/es.json i18n/nsfilerepo/mn.json i18n/nsfilerepo/tg-cyrl.json Gruntfile.js i18n/nsfilerepo/scn.json i18n/nsfilerepo/nl.json i18n/nsfilerepo/sr-ec.json i18n/nsfilerepo/pms.json i18n/nsfilerepo/hyw.json i18n/nsfilerepo/pt.json i18n/nsfilerepo/my.json i18n/nsfilerepo/da.json i18n/nsfilerepo/mk.json i18n/nsfilerepo/sd.json i18n/nsfilerepo/ps.json i18n/nsfilerepo/tyv.json i18n/nsfilerepo/hi.json i18n/nsfilerepo/fr.json i18n/nsfilerepo/ko.json i18n/nsfilerepo/pl.json i18n/nsfilerepo/ru.json i18n/nsfilerepo/zh-hans.json --fix
--- stdout ---

/src/repo/Gruntfile.js
   9:3   error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign
  10:11  error  ES2015 'Object.assign' method is forbidden               es-x/no-object-assign

/src/repo/resources/nsfr/EnhancedUploadParamsProcessor.js
   21:54  warning  'enhancedUpload' is not defined                         no-undef
  117:8   error    ES2015 'String.prototype.includes' method is forbidden  es-x/no-string-prototype-includes
  117:8   error    ES2016 'Array.prototype.includes' method is forbidden   es-x/no-array-prototype-includes

✖ 5 problems (4 errors, 1 warning)


--- end ---
$ ./node_modules/.bin/eslint resources/nsfr/ui/dialog/ChangeFileNamespaceAssociation.js i18n/nsfilerepo/el.json i18n/nsfilerepo/qqq.json i18n/nsfilerepo/ja.json tests/qunit/ext.nsfilerepo.upload.paramsProcessor.test.js i18n/nsfilerepo/be-tarask.json i18n/nsfilerepo/sv.json i18n/nsfilerepo/hu.json i18n/nsfilerepo/oc.json i18n/imgauth/qqq.json composer.json i18n/nsfilerepo/uk.json i18n/nsfilerepo/zh-hant.json i18n/nsfilerepo/id.json i18n/nsfilerepo/szy.json i18n/nsfilerepo/ms.json i18n/nsfilerepo/ar.json extension.json i18n/nsfilerepo/br.json i18n/nsfilerepo/bn.json i18n/nsfilerepo/ta.json i18n/nsfilerepo/gl.json i18n/nsfilerepo/sh.json i18n/nsfilerepo/pnb.json i18n/nsfilerepo/dsb.json resources/ext.nsfilerepo.special.upload.js package-lock.json i18n/nsfilerepo/hsb.json i18n/nsfilerepo/en.json i18n/nsfilerepo/ce.json i18n/nsfilerepo/vi.json i18n/nsfilerepo/yi.json i18n/nsfilerepo/vec.json i18n/nsfilerepo/ia.json i18n/nsfilerepo/hil.json package.json resources/ext.nsfilerepo.filepage.bootstrap.js i18n/nsfilerepo/he.json i18n/nsfilerepo/ca.json i18n/nsfilerepo/tly.json i18n/nsfilerepo/ast.json i18n/nsfilerepo/hy.json i18n/nsfilerepo/smn.json i18n/nsfilerepo/sr-el.json resources/nsfr/EnhancedUploadParamsProcessor.js i18n/nsfilerepo/fi.json i18n/nsfilerepo/tl.json i18n/nsfilerepo/ksh.json i18n/nsfilerepo/as.json i18n/nsfilerepo/sje.json i18n/nsfilerepo/tr.json i18n/nsfilerepo/ml.json i18n/nsfilerepo/de.json i18n/nsfilerepo/diq.json i18n/nsfilerepo/frp.json i18n/nsfilerepo/nb.json i18n/nsfilerepo/bg.json i18n/nsfilerepo/bs.json i18n/nsfilerepo/lb.json i18n/nsfilerepo/mr.json i18n/nsfilerepo/io.json i18n/nsfilerepo/sk.json i18n/nsfilerepo/te.json i18n/nsfilerepo/pt-br.json i18n/nsfilerepo/sms.json i18n/nsfilerepo/fa.json i18n/nsfilerepo/sl.json i18n/nsfilerepo/it.json i18n/nsfilerepo/skr-arab.json i18n/nsfilerepo/gsw.json i18n/nsfilerepo/se.json resources/ext.nsfilerepo.namespace.upload.js i18n/nsfilerepo/roa-tara.json i18n/imgauth/en.json i18n/nsfilerepo/es.json i18n/nsfilerepo/mn.json i18n/nsfilerepo/tg-cyrl.json Gruntfile.js i18n/nsfilerepo/scn.json i18n/nsfilerepo/nl.json i18n/nsfilerepo/sr-ec.json i18n/nsfilerepo/pms.json i18n/nsfilerepo/hyw.json i18n/nsfilerepo/pt.json i18n/nsfilerepo/my.json i18n/nsfilerepo/da.json i18n/nsfilerepo/mk.json i18n/nsfilerepo/sd.json i18n/nsfilerepo/ps.json i18n/nsfilerepo/tyv.json i18n/nsfilerepo/hi.json i18n/nsfilerepo/fr.json i18n/nsfilerepo/ko.json i18n/nsfilerepo/pl.json i18n/nsfilerepo/ru.json i18n/nsfilerepo/zh-hans.json -f json
--- stdout ---
[{"filePath":"/src/repo/Gruntfile.js","messages":[{"ruleId":"es/no-object-assign","message":"Definition for rule 'es/no-object-assign' was not found.","line":9,"column":3,"endLine":9,"endColumn":65,"severity":2,"nodeType":null},{"ruleId":"es-x/no-object-assign","severity":2,"message":"ES2015 'Object.assign' method is forbidden.","line":10,"column":11,"nodeType":"MemberExpression","messageId":"forbidden","endLine":10,"endColumn":24}],"suppressedMessages":[{"ruleId":"compat/compat","severity":1,"message":"Object.assign() is not supported in IE 11","line":10,"column":11,"nodeType":"MemberExpression","endLine":10,"endColumn":24,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/* eslint-env node */\nmodule.exports = function ( grunt ) {\n\tvar conf = grunt.file.readJSON( 'extension.json' );\n\n\tgrunt.loadNpmTasks( 'grunt-banana-checker' );\n\tgrunt.loadNpmTasks( 'grunt-eslint' );\n\n\tgrunt.initConfig( {\n\t\t// eslint-disable-next-line es/no-object-assign, compat/compat\n\t\tbanana: Object.assign(\n\t\t\tconf.MessagesDirs,\n\t\t\t{\n\t\t\t\toptions: {\n\t\t\t\t\trequireLowerCase: 'initial'\n\t\t\t\t}\n\t\t\t}\n\t\t),\n\t\teslint: {\n\t\t\toptions: {\n\t\t\t\tcache: true\n\t\t\t},\n\t\t\tall: [\n\t\t\t\t'**/*.{js,json}',\n\t\t\t\t'!node_modules/**',\n\t\t\t\t'!vendor/**'\n\t\t\t]\n\t\t}\n\t} );\n\n\tgrunt.registerTask( 'test', [ 'eslint', 'banana' ] );\n\tgrunt.registerTask( 'default', 'test' );\n};\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/composer.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/extension.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/imgauth/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/imgauth/qqq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ar.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/as.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ast.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/be-tarask.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/bg.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/bn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/br.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/bs.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ca.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ce.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/da.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/de.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/diq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/dsb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/el.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/es.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/fa.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/fi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/fr.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/frp.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/gl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/gsw.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/he.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/hi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/hil.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/hsb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/hu.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/hy.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/hyw.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ia.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/id.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/io.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/it.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ja.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ko.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ksh.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/lb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/mk.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ml.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/mn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/mr.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ms.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/my.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/nb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/nl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/oc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/pl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/pms.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/pnb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ps.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/pt-br.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/pt.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/qqq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/roa-tara.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ru.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/scn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/sd.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/se.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/sh.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/sje.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/sk.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/skr-arab.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/sl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/smn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/sms.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/sr-ec.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/sr-el.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/sv.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/szy.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/ta.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/te.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/tg-cyrl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/tl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/tly.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/tr.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/tyv.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/uk.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/vec.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/vi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/yi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/zh-hans.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nsfilerepo/zh-hant.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/package-lock.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/package.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/resources/ext.nsfilerepo.filepage.bootstrap.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-vars","severity":1,"message":"'oldPageName' is defined but never used.","line":17,"column":56,"nodeType":"Identifier","messageId":"unusedVar","endLine":17,"endColumn":67,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":1,"message":"'newPageName' is defined but never used.","line":17,"column":69,"nodeType":"Identifier","messageId":"unusedVar","endLine":17,"endColumn":80,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/resources/ext.nsfilerepo.namespace.upload.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/resources/ext.nsfilerepo.special.upload.js","messages":[],"suppressedMessages":[{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_setDestName'.","line":3,"column":2,"nodeType":"FunctionDeclaration","messageId":"unexpectedUnderscore","endLine":15,"endColumn":3,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":1,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":5,"column":16,"nodeType":"CallExpression","endLine":5,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":1,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":7,"column":18,"nodeType":"CallExpression","endLine":7,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":1,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":14,"column":3,"nodeType":"CallExpression","endLine":14,"endColumn":35,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":1,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":25,"column":3,"nodeType":"CallExpression","endLine":25,"endColumn":21,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":1,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":25,"column":27,"nodeType":"CallExpression","endLine":25,"endColumn":59,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/resources/nsfr/EnhancedUploadParamsProcessor.js","messages":[{"ruleId":"no-undef","severity":1,"message":"'enhancedUpload' is not defined.","line":21,"column":54,"nodeType":"Identifier","messageId":"undef","endLine":21,"endColumn":68},{"ruleId":"es-x/no-string-prototype-includes","severity":2,"message":"ES2015 'String.prototype.includes' method is forbidden.","line":117,"column":8,"nodeType":"MemberExpression","messageId":"forbidden","endLine":117,"endColumn":36},{"ruleId":"es-x/no-array-prototype-includes","severity":2,"message":"ES2016 'Array.prototype.includes' method is forbidden.","line":117,"column":8,"nodeType":"MemberExpression","messageId":"forbidden","endLine":117,"endColumn":36}],"suppressedMessages":[{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_getInvalidNamespaces'.","line":7,"column":18,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":7,"endColumn":44,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_makeUploadFilenameFromParams'.","line":44,"column":20,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":44,"endColumn":54,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_makeUploadFilenameFromParams'.","line":49,"column":1,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":49,"endColumn":75,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_getInvalidNamespaces'.","line":103,"column":1,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":103,"endColumn":67,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":2,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"window.nsfr = window.nsfr || {};\n\nnsfr.EnhancedUploadParamsProcessor = function () {\n\tthis.config = require( './config.json' );\n\n\t// eslint-disable-next-line no-underscore-dangle\n\tvar excludeNS = this._getInvalidNamespaces();\n\tthis.targetNamespaceSelector = new mw.widgets.NamespaceInputWidget( {\n\t\texclude: excludeNS,\n\t\tdropdown: {\n\t\t\t$overlay: true\n\t\t}\n\t} );\n\n\tthis.targetNamespaceSelectorLayout = new OO.ui.FieldLayout( this.targetNamespaceSelector, {\n\t\tlabel: mw.message( 'nsfilerepo-upload-file-namespace-namespaceselector-label' ).plain(),\n\t\talign: 'left'\n\t} );\n};\n\nOO.inheritClass( nsfr.EnhancedUploadParamsProcessor, enhancedUpload.UiParamsProcessor );\n\nnsfr.EnhancedUploadParamsProcessor.prototype.getElement = function () {\n\treturn this.targetNamespaceSelectorLayout;\n};\n\nnsfr.EnhancedUploadParamsProcessor.prototype.setDefaultPrefix = function ( prefix ) {\n\tvar namespace = prefix.split( ':' );\n\tvar namespaces = mw.config.get( 'wgFormattedNamespaces' );\n\tfor ( var namespaceId in namespaces ) {\n\t\tif ( namespaces[ namespaceId ] === namespace[ 0 ] ) {\n\t\t\tthis.targetNamespaceSelector.setValue( namespaceId );\n\t\t\tbreak;\n\t\t}\n\t}\n};\n\nnsfr.EnhancedUploadParamsProcessor.prototype.getParams = function ( params, item, skipOption ) {\n\tvar skipNamespace = skipOption || false;\n\tif ( !skipNamespace ) {\n\t\tparams.namespace = this.targetNamespaceSelector.getValue();\n\t}\n\t// eslint-disable-next-line no-underscore-dangle\n\tparams.filename = this._makeUploadFilenameFromParams( params );\n\treturn params;\n};\n\n// eslint-disable-next-line no-underscore-dangle\nnsfr.EnhancedUploadParamsProcessor.prototype._makeUploadFilenameFromParams = function ( params ) {\n\tvar prefix = params.prefix || '';\n\tvar filename = params.filename || '';\n\tvar namespace = params.namespace || false;\n\tvar namespaces = mw.config.get( 'wgFormattedNamespaces' );\n\n\tvar prefixNamespace = '';\n\tif ( params.namespace ) {\n\t\tprefixNamespace = namespaces[ namespace ];\n\t}\n\tvar prefixParts = prefix.split( ':' );\n\tif ( prefixParts.length > 1 ) {\n\t\tprefixNamespace = prefixParts[ 0 ];\n\t\tprefixParts.splice( 0, 1 );\n\t}\n\n\tvar prefixStub = prefixParts.join( ':' );\n\tprefixStub = prefixStub.replace( ':', '_' );\n\n\tvar validPrefixNamespace = false;\n\tfor ( var index in namespaces ) {\n\t\tif ( namespaces[ index ] === prefixNamespace ) {\n\t\t\tnamespace = index;\n\t\t\tvalidPrefixNamespace = true;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif ( validPrefixNamespace === false ) {\n\t\tprefixStub = prefixNamespace + '_' + prefixStub;\n\t\tprefixNamespace = '';\n\t}\n\n\tif ( namespace ) {\n\t\tif ( ( namespace !== 0 ) && ( namespaces[ namespace ] !== 'undefined' ) ) {\n\t\t\tprefixNamespace = namespaces[ namespace ];\n\t\t}\n\t}\n\n\tif ( prefixNamespace !== '' ) {\n\t\tprefixNamespace += ':';\n\t}\n\n\t// Avoid double prefixing\n\tif ( prefixStub === filename.slice( 0, prefixStub.length ) ) {\n\t\tprefixStub = '';\n\t}\n\n\tprefix = prefixNamespace + prefixStub;\n\n\treturn prefix + filename;\n};\n\n// eslint-disable-next-line no-underscore-dangle\nnsfr.EnhancedUploadParamsProcessor.prototype._getInvalidNamespaces = function () {\n\tvar excludeNS = [];\n\tvar namespaces = mw.config.get( 'wgNamespaceIds' );\n\tvar namespacesThreshold = this.config.egNSFileRepoNamespaceThreshold;\n\tvar namespacesBlacklist = this.config.egNSFileRepoNamespaceBlacklist;\n\tvar skiptalk = this.config.egNSFileRepoSkipTalk;\n\n\tfor ( var namespace in namespaces ) {\n\t\tvar nsId = namespaces[ namespace ];\n\t\tif ( nsId < namespacesThreshold && nsId !== 0 ) {\n\t\t\texcludeNS.push( nsId );\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ( namespacesBlacklist.includes( nsId ) ) {\n\t\t\texcludeNS.push( nsId );\n\t\t\tcontinue;\n\t\t}\n\t\tif ( skiptalk && nsId % 2 !== 0 ) {\n\t\t\texcludeNS.push( nsId );\n\t\t}\n\t}\n\n\treturn excludeNS;\n};\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/resources/nsfr/ui/dialog/ChangeFileNamespaceAssociation.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-global-selector","severity":1,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":125,"column":3,"nodeType":"CallExpression","endLine":125,"endColumn":31,"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":146,"column":9,"nodeType":"CallExpression","endLine":146,"endColumn":56,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/tests/qunit/ext.nsfilerepo.upload.paramsProcessor.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]}]

--- end ---
$ /usr/bin/npm ci --legacy-peer-deps
--- stdout ---

added 278 packages, and audited 279 packages in 4s

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

found 0 vulnerabilities

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

> test
> grunt test

Running "eslint:all" (eslint) task

/src/repo/Gruntfile.js
   1:1   error    Definition for rule 'es/no-object-assign' was not found  es/no-object-assign
   9:3   error    Definition for rule 'es/no-object-assign' was not found  es/no-object-assign
  10:11  warning  ES2015 'Object.assign' method is forbidden               es-x/no-object-assign

/src/repo/composer.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/extension.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/imgauth/en.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/imgauth/qqq.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ar.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/as.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ast.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/be-tarask.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/bg.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/bn.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/br.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/bs.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ca.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ce.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/da.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/de.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/diq.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/dsb.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/el.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/en.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/es.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/fa.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/fi.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/fr.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/frp.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/gl.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/gsw.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/he.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/hi.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/hil.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/hsb.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/hu.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/hy.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/hyw.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ia.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/id.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/io.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/it.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ja.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ko.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ksh.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/lb.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/mk.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ml.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/mn.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/mr.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ms.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/my.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/nb.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/nl.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/oc.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/pl.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/pms.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/pnb.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ps.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/pt-br.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/pt.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/qqq.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/roa-tara.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ru.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/scn.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/sd.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/se.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/sh.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/sje.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/sk.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/skr-arab.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/sl.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/smn.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/sms.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/sr-ec.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/sr-el.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/sv.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/szy.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/ta.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/te.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/tg-cyrl.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/tl.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/tly.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/tr.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/tyv.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/uk.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/vec.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/vi.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/yi.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/zh-hans.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/i18n/nsfilerepo/zh-hant.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/package-lock.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/package.json
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/resources/ext.nsfilerepo.filepage.bootstrap.js
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/resources/ext.nsfilerepo.namespace.upload.js
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/resources/ext.nsfilerepo.special.upload.js
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/resources/nsfr/EnhancedUploadParamsProcessor.js
    1:1   error    Definition for rule 'es/no-object-assign' was not found  es/no-object-assign
   21:54  warning  'enhancedUpload' is not defined                          no-undef
  117:8   warning  ES2016 'Array.prototype.includes' method is forbidden    es-x/no-array-prototype-includes
  117:8   warning  ES2015 'String.prototype.includes' method is forbidden   es-x/no-string-prototype-includes

/src/repo/resources/nsfr/ui/dialog/ChangeFileNamespaceAssociation.js
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

/src/repo/tests/qunit/ext.nsfilerepo.upload.paramsProcessor.test.js
  1:1  error  Definition for rule 'es/no-object-assign' was not found  es/no-object-assign

✖ 101 problems (97 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.