This run took 28 seconds.
$ date --- stdout --- Mon Mar 13 05:37:35 UTC 2023 --- end --- $ git clone file:///srv/git/mediawiki-extensions-UserAgreement.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 --- dc35e9b6d35a93baae3ecb89472c19bbf7e6c33a 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": 409, "optional": 0, "peer": 0, "peerOptional": 0, "total": 409 } } } --- end --- $ /usr/bin/composer install --- stderr --- No lock file found. Updating dependencies instead of installing from lock file. Use composer update over composer install if you do not have a lock file. Loading composer repositories with package information Info from https://repo.packagist.org: [37;44m#StandWith[30;43mUkraine[0m Updating dependencies Lock file operations: 19 installs, 0 updates, 0 removals - Locking composer/semver (3.3.2) - Locking composer/spdx-licenses (1.5.7) - Locking mediawiki/mediawiki-codesniffer (v41.0.0) - 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.2) - Locking symfony/console (v5.4.21) - Locking symfony/deprecation-contracts (v2.5.2) - Locking symfony/polyfill-ctype (v1.27.0) - Locking symfony/polyfill-intl-grapheme (v1.27.0) - Locking symfony/polyfill-intl-normalizer (v1.27.0) - Locking symfony/polyfill-mbstring (v1.27.0) - Locking symfony/polyfill-php73 (v1.27.0) - Locking symfony/polyfill-php80 (v1.27.0) - Locking symfony/service-contracts (v2.5.2) - Locking symfony/string (v5.4.21) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 19 installs, 0 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] 0 [--->------------------------] - Installing symfony/polyfill-php80 (v1.27.0): Extracting archive - Installing squizlabs/php_codesniffer (3.7.2): Extracting archive - Installing symfony/polyfill-mbstring (v1.27.0): Extracting archive - Installing composer/spdx-licenses (1.5.7): Extracting archive - Installing composer/semver (3.3.2): Extracting archive - Installing mediawiki/mediawiki-codesniffer (v41.0.0): Extracting archive - Installing 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% 9/10 [=========================>--] 90% 10/10 [============================] 100%5 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating autoload files 12 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 $ /usr/bin/npm install --- stdout --- added 419 packages, and audited 420 packages in 4s 65 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 420 packages in 842ms 65 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 . --fix --- stdout --- /src/repo/Gruntfile.js 17:3 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign 18:11 warning Object.assign() is not supported in IE 11 compat/compat 18:11 error ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/renderUserAgreement.js 27:0 warning Missing JSDoc @param "useragreement" type jsdoc/require-param-type 34:0 warning Missing JSDoc @param "useragreement" type jsdoc/require-param-type 36:23 warning 'useragreement' is already declared in the upper scope on line 29 column 42 no-shadow ✖ 6 problems (2 errors, 4 warnings) --- end --- $ ./node_modules/.bin/eslint . -f json --- stdout --- [{"filePath":"/src/repo/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/.stylelintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/Gruntfile.js","messages":[{"ruleId":"es/no-object-assign","message":"Definition for rule 'es/no-object-assign' was not found.","line":17,"column":3,"endLine":17,"endColumn":50,"severity":2,"nodeType":null},{"ruleId":"compat/compat","severity":1,"message":"Object.assign() is not supported in IE 11","line":18,"column":11,"nodeType":"MemberExpression","endLine":18,"endColumn":24},{"ruleId":"es-x/no-object-assign","severity":2,"message":"ES2015 'Object.assign' method is forbidden.","line":18,"column":11,"nodeType":"MemberExpression","messageId":"forbidden","endLine":18,"endColumn":24}],"suppressedMessages":[],"errorCount":2,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/* eslint-env node, es6 */\n\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\tgrunt.loadNpmTasks( 'grunt-stylelint' );\n\n\tgrunt.initConfig( {\n\t\teslint: {\n\t\t\toptions: {\n\t\t\t\tcache: true\n\t\t\t},\n\t\t\tall: '.'\n\t\t},\n\t\t// eslint-disable-next-line es/no-object-assign\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\tstylelint: {\n\t\t\tall: [\n\t\t\t\t'**/*.css',\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', 'stylelint' ] );\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/ar.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ban.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/be-tarask.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/bg.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/bn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/da.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/de.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/el.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/es.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/fr.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/gl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/he.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ia.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/it.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ko.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ku-latn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/lb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/mk.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/nl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/pl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/pt-br.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/pt.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/qqq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/roa-tara.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/ru.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sh.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/skr-arab.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sms.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sr-ec.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sr-el.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sv.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/sw.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/tcy.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/tr.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/uk.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/zh-hans.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/i18n/zh-hant.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/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/renderUserAgreement.js","messages":[{"ruleId":"jsdoc/require-param-type","severity":1,"message":"Missing JSDoc @param \"useragreement\" type.","line":27,"column":null,"nodeType":"Block","endLine":27,"endColumn":null},{"ruleId":"jsdoc/require-param-type","severity":1,"message":"Missing JSDoc @param \"useragreement\" type.","line":34,"column":null,"nodeType":"Block","endLine":34,"endColumn":null},{"ruleId":"no-shadow","severity":1,"message":"'useragreement' is already declared in the upper scope on line 29 column 42.","line":36,"column":23,"nodeType":"Identifier","messageId":"noShadow","endLine":36,"endColumn":36}],"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":51,"column":6,"nodeType":"CallExpression","endLine":51,"endColumn":17,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":53,"column":6,"nodeType":"CallExpression","endLine":53,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":63,"column":8,"nodeType":"MemberExpression","messageId":"unexpected","endLine":63,"endColumn":21,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/*\n * Copyright (c) 2018 The MITRE Corporation\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n * DEALINGS IN THE SOFTWARE.\n */\n\n( function () {\n\t/**\n\t * Gobal function to display a user agreement.\n\t *\n\t * @param useragreement\n\t */\n\twindow.renderUserAgreement = function ( useragreement ) {\n\t\t( {\n\t\t\t/**\n\t\t\t * Render the user agreement on the page.\n\t\t\t *\n\t\t\t * @param useragreement\n\t\t\t */\n\t\t\trender: function ( useragreement ) {\n\t\t\t\tvar submitButton = new OO.ui.ButtonInputWidget( {\n\t\t\t\t\t\tid: 'uaAccept',\n\t\t\t\t\t\tlabel: mw.msg( 'useragreement-dialog-message' ),\n\t\t\t\t\t\ticon: 'check'\n\t\t\t\t\t} ),\n\t\t\t\t\tuseragreementHtml =\n\t\t\t\t\t\t'<div id=\"uaModal\">' +\n\t\t\t\t\t\tJSON.parse( useragreement ).ua +\n\t\t\t\t\t\t'<div id=\"uaAcceptInput\"> \\\n\t\t\t\t\t\t</div> \\\n\t\t\t\t\t\t</div>';\n\n\t\t\t\t$( function () {\n\t\t\t\t\t// eslint-disable-next-line no-jquery/no-global-selector\n\t\t\t\t\t$( 'body' ).html( useragreementHtml );\n\t\t\t\t\t// eslint-disable-next-line no-jquery/no-global-selector\n\t\t\t\t\t$( '#uaAcceptInput' ).append( submitButton.$element );\n\t\t\t\t\tsubmitButton.$input.on( 'click', function () {\n\t\t\t\t\t\tvar api = new mw.Api();\n\t\t\t\t\t\tapi.post( {\n\t\t\t\t\t\t\taction: 'uaAcceptAgreement',\n\t\t\t\t\t\t\ttoken: mw.user.tokens.get( 'csrfToken' )\n\t\t\t\t\t\t} ).done( function ( /* data */ ) {\n\t\t\t\t\t\t\tlocation.reload( true );\n\t\t\t\t\t\t} ).fail( function ( /* data */ ) {\n\t\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\t\tconsole.error( '[UserAgreement] Failed to accept user agreement for the current user.' );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\t\t} )\n\t\t\t.render( useragreement );\n\t};\n}() );\n\n$( function () {\n\tvar uaData;\n\n\tif ( mw.config.exists( 'UserAgreement' ) ) {\n\t\tuaData = mw.config.get( 'UserAgreement' );\n\t\twindow.renderUserAgreement( uaData.useragreement );\n\t}\n} );\n","usedDeprecatedRules":[]}] --- end --- $ /usr/bin/npm ci --legacy-peer-deps --- stdout --- added 419 packages, and audited 420 packages in 3s 65 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/.eslintrc.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/.stylelintrc.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/Gruntfile.js 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign 17:3 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign 18:11 warning Object.assign() is not supported in IE 11 compat/compat 18: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/ar.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/ban.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/be-tarask.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/bg.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/bn.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/da.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/de.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/el.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/en.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/es.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/fr.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/gl.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/he.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/ia.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/it.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/ko.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/ku-latn.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/lb.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/mk.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/nb.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/nl.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/pl.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/pt-br.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/pt.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/qqq.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/roa-tara.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/ru.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/sh.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/skr-arab.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/sl.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/sms.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/sr-ec.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/sr-el.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/sv.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/sw.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/tcy.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/tr.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/uk.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/zh-hans.json 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign /src/repo/i18n/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/renderUserAgreement.js 1:1 error Definition for rule 'es/no-object-assign' was not found es/no-object-assign 27:0 warning Missing JSDoc @param "useragreement" type jsdoc/require-param-type 34:0 warning Missing JSDoc @param "useragreement" type jsdoc/require-param-type 36:23 warning 'useragreement' is already declared in the upper scope on line 29 column 42 no-shadow ✖ 54 problems (49 errors, 5 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.