This run took 59 seconds.
From 688605e823f18d32bc3112c37d01c59ef3143df3 Mon Sep 17 00:00:00 2001 From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org> Date: Sat, 7 Jun 2025 00:39:21 +0000 Subject: [PATCH] build: Updating dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit composer: * mediawiki/mediawiki-codesniffer: 46.0.0 → 47.0.0 npm: * eslint-config-wikimedia: 0.28.2 → 0.30.0 The following rules are failing and were disabled: * no-var Additional changes: * eslint: Replaced `wikimedia/client-es5` with `wikimedia/client`. Change-Id: If08467d8d923cfd7d7e9472666f1d23406692c2c --- .eslintrc.json | 5 ++- Gruntfile.js | 2 +- composer.json | 2 +- package-lock.json | 33 ++++++++------- package.json | 2 +- resources/manage.js | 42 +++++++++---------- resources/validation.js | 90 ++++++++++++++++++++--------------------- 7 files changed, 90 insertions(+), 86 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 115c8ff..de60734 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,13 +1,14 @@ { "root": true, "extends": [ - "wikimedia/client-es5", + "wikimedia/client", "wikimedia/mediawiki" ], "rules": { "camelcase": "off", "no-alert": "off", "no-undef": "off", - "no-unused-vars": "off" + "no-unused-vars": "off", + "no-var": "warn" } } diff --git a/Gruntfile.js b/Gruntfile.js index d2e7a8f..159b532 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,6 +1,6 @@ /* eslint-env node, es6 */ module.exports = function ( grunt ) { - var conf = grunt.file.readJSON( 'extension.json' ); + const conf = grunt.file.readJSON( 'extension.json' ); grunt.loadNpmTasks( 'grunt-banana-checker' ); grunt.loadNpmTasks( 'grunt-eslint' ); diff --git a/composer.json b/composer.json index 4a82507..b070910 100644 --- a/composer.json +++ b/composer.json @@ -5,7 +5,7 @@ "phpoffice/phpspreadsheet": "^1.29" }, "require-dev": { - "mediawiki/mediawiki-codesniffer": "46.0.0", + "mediawiki/mediawiki-codesniffer": "47.0.0", "mediawiki/mediawiki-phan-config": "0.15.1", "mediawiki/minus-x": "1.1.3", "php-parallel-lint/php-console-highlighter": "1.0.0", diff --git a/package-lock.json b/package-lock.json index 5f55465..6ccf1ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "CIForms", "devDependencies": { - "eslint-config-wikimedia": "0.28.2", + "eslint-config-wikimedia": "0.30.0", "grunt": "1.6.1", "grunt-banana-checker": "0.13.0", "grunt-eslint": "24.3.0", @@ -1437,9 +1437,9 @@ } }, "node_modules/eslint-config-wikimedia": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.28.2.tgz", - "integrity": "sha512-5+rdnT7wH1gpKAO6tHYThg78eMhZMruJzvqku3Y5iaEY/A7kSKLFpA/vOj/snys9fKjDHC9BXmArQh+agkOoJQ==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.30.0.tgz", + "integrity": "sha512-i8ESzSoo0x3Jur/0JhAgCVPxbV51zfdI3MN3MVQPnjiFdmo21CNKmiBBmw8JnJ3fx/d5zHDrBa+yDjxSLpnDlA==", "dev": true, "dependencies": { "browserslist-config-wikimedia": "^0.7.0", @@ -1452,13 +1452,16 @@ "eslint-plugin-mediawiki": "^0.7.0", "eslint-plugin-mocha": "^10.4.3", "eslint-plugin-n": "^17.7.0", - "eslint-plugin-no-jquery": "^3.0.1", + "eslint-plugin-no-jquery": "^3.1.1", "eslint-plugin-qunit": "^8.1.1", "eslint-plugin-security": "^1.7.1", "eslint-plugin-unicorn": "^53.0.0", "eslint-plugin-vue": "^9.26.0", "eslint-plugin-wdio": "^8.24.12", "eslint-plugin-yml": "^1.14.0" + }, + "engines": { + "node": ">=18 <23" } }, "node_modules/eslint-plugin-compat": { @@ -1656,9 +1659,9 @@ } }, "node_modules/eslint-plugin-no-jquery": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.0.2.tgz", - "integrity": "sha512-n/+6p6PFhWDNPVLJj1463hw4OTIRBbROGcbhmtOHTgw7yihSKzkwZiQ00EJTneyeR3jRiw5lpWSMCCBhtb8t2g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.1.1.tgz", + "integrity": "sha512-LTLO3jH/Tjr1pmxCEqtV6qmt+OChv8La4fwgG470JRpgxyFF4NOzoC9CRy92GIWD3Yjl0qLEgPmD2FLQWcNEjg==", "dev": true, "peerDependencies": { "eslint": ">=8.0.0" @@ -6010,9 +6013,9 @@ } }, "eslint-config-wikimedia": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.28.2.tgz", - "integrity": "sha512-5+rdnT7wH1gpKAO6tHYThg78eMhZMruJzvqku3Y5iaEY/A7kSKLFpA/vOj/snys9fKjDHC9BXmArQh+agkOoJQ==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.30.0.tgz", + "integrity": "sha512-i8ESzSoo0x3Jur/0JhAgCVPxbV51zfdI3MN3MVQPnjiFdmo21CNKmiBBmw8JnJ3fx/d5zHDrBa+yDjxSLpnDlA==", "dev": true, "requires": { "browserslist-config-wikimedia": "^0.7.0", @@ -6025,7 +6028,7 @@ "eslint-plugin-mediawiki": "^0.7.0", "eslint-plugin-mocha": "^10.4.3", "eslint-plugin-n": "^17.7.0", - "eslint-plugin-no-jquery": "^3.0.1", + "eslint-plugin-no-jquery": "^3.1.1", "eslint-plugin-qunit": "^8.1.1", "eslint-plugin-security": "^1.7.1", "eslint-plugin-unicorn": "^53.0.0", @@ -6160,9 +6163,9 @@ } }, "eslint-plugin-no-jquery": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.0.2.tgz", - "integrity": "sha512-n/+6p6PFhWDNPVLJj1463hw4OTIRBbROGcbhmtOHTgw7yihSKzkwZiQ00EJTneyeR3jRiw5lpWSMCCBhtb8t2g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.1.1.tgz", + "integrity": "sha512-LTLO3jH/Tjr1pmxCEqtV6qmt+OChv8La4fwgG470JRpgxyFF4NOzoC9CRy92GIWD3Yjl0qLEgPmD2FLQWcNEjg==", "dev": true, "requires": {} }, diff --git a/package.json b/package.json index 94734e7..ea293b4 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "test": "grunt test" }, "devDependencies": { - "eslint-config-wikimedia": "0.28.2", + "eslint-config-wikimedia": "0.30.0", "grunt": "1.6.1", "grunt-banana-checker": "0.13.0", "grunt-eslint": "24.3.0", diff --git a/resources/manage.js b/resources/manage.js index 1b105f9..b57e531 100644 --- a/resources/manage.js +++ b/resources/manage.js @@ -19,18 +19,18 @@ * @copyright Copyright © 2021-2024, https://wikisphere.org */ -$( document ).ready( function () { +$( document ).ready( () => { // display every 3 days if ( !mw.cookie.get( 'ciforms-check-latest-version' ) ) { - mw.loader.using( 'mediawiki.api', function () { + mw.loader.using( 'mediawiki.api', () => { new mw.Api() .postWithToken( 'csrf', { action: 'ciforms-check-latest-version' } ) - .done( function ( res ) { + .done( ( res ) => { if ( 'ciforms-check-latest-version' in res ) { if ( res[ 'ciforms-check-latest-version' ].result === 2 ) { - var messageWidget = new OO.ui.MessageWidget( { + const messageWidget = new OO.ui.MessageWidget( { type: 'warning', label: new OO.ui.HtmlSnippet( mw.msg( 'ciforms-jsmodule-outdated-version' ) @@ -38,8 +38,8 @@ $( document ).ready( function () { // *** this does not work before ooui v0.43.0 showClose: true } ); - var closeFunction = function () { - var three_days = 3 * 86400; + const closeFunction = function () { + const three_days = 3 * 86400; mw.cookie.set( 'ciforms-check-latest-version', true, { path: '/', expires: three_days @@ -59,7 +59,7 @@ $( document ).ready( function () { messageWidget.$element.addClass( 'oo-ui-messageWidget-showClose' ); - var closeButton = new OO.ui.ButtonWidget( { + const closeButton = new OO.ui.ButtonWidget( { classes: [ 'oo-ui-messageWidget-close' ], framed: false, icon: 'close', @@ -80,20 +80,20 @@ $( document ).ready( function () { // var checkBox = OO.ui.infuse( $( this ) ); // } ); - var selected = false; - $( '#ci-forms-manage-pager-button-select-all' ).on( 'click', function ( evt ) { + let selected = false; + $( '#ci-forms-manage-pager-button-select-all' ).on( 'click', ( evt ) => { selected = !selected; $( '.ciforms-manage-button-select' ).each( function () { // @see https://www.mediawiki.org/wiki/OOUI/Using_OOUI_in_MediaWiki - var checkBox = OO.ui.infuse( $( this ) ); + const checkBox = OO.ui.infuse( $( this ) ); checkBox.setSelected( selected ); } ); } ); - $( '#ci-forms-manage-pager-button-delete-selected' ).on( 'click', function ( evt ) { - var arr = []; + $( '#ci-forms-manage-pager-button-delete-selected' ).on( 'click', ( evt ) => { + const arr = []; $( '.ciforms-manage-button-select' ).each( function () { - var checkBox = OO.ui.infuse( $( this ) ); + const checkBox = OO.ui.infuse( $( this ) ); if ( checkBox.isSelected() ) { arr.push( checkBox.getData().id ); } @@ -107,8 +107,8 @@ $( document ).ready( function () { return false; } - var url = window.location.href; - var form = $( '<form>', { + const url = window.location.href; + const form = $( '<form>', { action: window.location.href, method: 'POST' // 'target': '_top' @@ -122,11 +122,11 @@ $( document ).ready( function () { } ); $( '.ciforms-manage-button-export' ).each( function () { - var $buttonExport = $( this ); + const $buttonExport = $( this ); - var href = $buttonExport.data().ooui.href; + const href = $buttonExport.data().ooui.href; - var buttonMenu = new OO.ui.ButtonMenuSelectWidget( { + const buttonMenu = new OO.ui.ButtonMenuSelectWidget( { label: mw.msg( 'ci-forms-manage-pager-button-export' ), icon: 'menu', flags: [ 'progressive', 'primary' ], @@ -144,14 +144,14 @@ $( document ).ready( function () { } } ); - var panelLayout = new OO.ui.PanelLayout( { + const panelLayout = new OO.ui.PanelLayout( { padded: false, expanded: false, classes: [ 'ci-forms-manage-pager-panel-layout' ] } ); - buttonMenu.getMenu().on( 'choose', function ( menuOption ) { - var data = menuOption.getData(); + buttonMenu.getMenu().on( 'choose', ( menuOption ) => { + const data = menuOption.getData(); window.location.assign( href.replace( 'format=csv', 'format=' + data ) ); } ); diff --git a/resources/validation.js b/resources/validation.js index d6c7e5b..665749f 100644 --- a/resources/validation.js +++ b/resources/validation.js @@ -19,12 +19,12 @@ * @copyright Copyright © 2021-2024, https://wikisphere.org */ -$( function () { - var msg1 = mw.config.get( 'ci-forms-validation-msg1' ); - var msg2 = mw.config.get( 'ci-forms-validation-msg2' ); +$( () => { + const msg1 = mw.config.get( 'ci-forms-validation-msg1' ); + const msg2 = mw.config.get( 'ci-forms-validation-msg2' ); // var msg3 = mw.config.get( 'ci-forms-validation-msg3' ); - var currentSection = {}; + const currentSection = {}; function escape( s ) { return String( s ) @@ -35,29 +35,29 @@ $( function () { .replace( />/g, '\x3E' ); } - var site_key = mw.config.get( 'ci_forms_google_recaptcha_site_key' ); + const site_key = mw.config.get( 'ci_forms_google_recaptcha_site_key' ); // @see https://www.mediawiki.org/wiki/Topic:Y2pfh94nkkqzsjw3 function executeRecaptchaValidation() { mw.loader .getScript( 'https://www.google.com/recaptcha/api.js?render=' + site_key ) .then( - function () { + () => { if ( $( 'input[name="g-recaptcha-response"]' ).length ) { - grecaptcha.ready( function () { + grecaptcha.ready( () => { grecaptcha .execute( site_key, { action: 'validate_captcha' } ) - .then( function ( token ) { + .then( ( token ) => { $( 'input[name="g-recaptcha-response"]' ).val( token ); } ) - .catch( function ( error ) { + .catch( ( error ) => { // eslint-disable-next-line no-console console.log( error ); } ); } ); } }, - function ( e ) { + ( e ) => { mw.log.error( e.message ); } ); @@ -71,7 +71,7 @@ $( function () { } $( '.ci_form' ).each( function ( index ) { - var paging = $( this ) + const paging = $( this ) .find( 'input[type=hidden][name=form_paging]' ) .first() .val(); @@ -92,19 +92,19 @@ $( function () { } ); $( '.ci_form li' ).each( function ( index ) { - var el = this; - var section_el = $( this ).closest( '.ci_form_section' ); - var radioForCheckboxes = $( section_el ) + const el = this; + const section_el = $( this ).closest( '.ci_form_section' ); + const radioForCheckboxes = $( section_el ) .find( '.radio_for_required_checkboxes' ) .first(); - var max_answers = $( section_el ) + const max_answers = $( section_el ) .find( 'input[type=hidden][name$=_multiple-choice-max-answers]' ) .val(); $( this ) .find( 'input[type=text]' ) .on( 'click', function () { - var count = $( section_el ).find( 'input[type=checkbox]:checked' ).length; + const count = $( section_el ).find( 'input[type=checkbox]:checked' ).length; if ( count > max_answers ) { alert( msg1.replace( '$1', max_answers ) ); @@ -123,8 +123,8 @@ $( function () { $( this ) .find( 'input[type=checkbox]' ) - .on( 'click', function () { - var count = $( section_el ).find( 'input[type=checkbox]:checked' ).length; + .on( 'click', () => { + const count = $( section_el ).find( 'input[type=checkbox]:checked' ).length; if ( count > max_answers ) { alert( msg1.replace( '$1', max_answers ) ); @@ -136,14 +136,14 @@ $( function () { // https://stackoverflow.com/questions/15031513/jquery-help-to-enforce-maxlength-on-textarea $( '.ci_form textarea[maxlength]' ).on( 'keyup', function () { - var limit = parseInt( $( this ).attr( 'maxlength' ) ); - var text = $( this ).val(); - var chars = text.length; + const limit = parseInt( $( this ).attr( 'maxlength' ) ); + const text = $( this ).val(); + const chars = text.length; $( this ) .parents() .each( function () { - var span = $( this ) + const span = $( this ) .find( '.ci_form_section_inputs_textarea_maxlength' ) .first(); @@ -153,7 +153,7 @@ $( function () { } ); if ( chars > limit ) { - var new_text = text.slice( 0, Math.max( 0, limit ) ); + const new_text = text.slice( 0, Math.max( 0, limit ) ); $( this ).val( new_text ); } } ); @@ -168,16 +168,16 @@ $( function () { // is triggered after the native validation $( '.ci_form input[type=radio]' ).on( 'click', function () { - var section_el = $( this ).closest( '.ci_form_section' ); + const section_el = $( this ).closest( '.ci_form_section' ); $( section_el ) .find( 'li' ) .each( function () { - var el = this; + const el = this; $( this ) .find( 'input[type=radio][name$=_selected]:checked' ) - .each( function () { + .each( () => { $( el ) .find( 'input[type=text][data-required="1"]' ) .prop( 'required', true ); @@ -185,23 +185,23 @@ $( function () { $( this ) .find( 'input[type=radio][name$=_selected]:not(:checked)' ) - .each( function () { + .each( () => { $( el ).find( 'input[type=text]' ).removeAttr( 'required' ); } ); } ); } ); $( '.ci_form input[type=checkbox]' ).on( 'click', function () { - var section_el = $( this ).closest( '.ci_form_section' ); + const section_el = $( this ).closest( '.ci_form_section' ); $( section_el ) .find( 'li' ) .each( function () { - var el = this; + const el = this; $( this ) .find( 'input[type=checkbox][name$=_selected]:checked' ) - .each( function () { + .each( () => { $( el ) .find( 'input[type=text][data-required="1"]' ) .prop( 'required', true ); @@ -209,16 +209,16 @@ $( function () { $( this ) .find( 'input[type=checkbox][name$=_selected]:not(:checked)' ) - .each( function () { + .each( () => { $( el ).find( 'input[type=text]' ).removeAttr( 'required' ); } ); } ); } ); $( '.ci_form_section_submit button' ).on( 'click', function ( evt ) { - var form_el = $( this ).closest( '.ci_form' ); + const form_el = $( this ).closest( '.ci_form' ); - var next = $( this ).prop( 'class' ).indexOf( 'next' ) !== -1; + const next = $( this ).prop( 'class' ).includes( 'next' ); if ( next ) { return; @@ -226,10 +226,10 @@ $( function () { form_el.get( 0 ).scrollIntoView(); - var index = form_el.data( 'form-index' ); - var current_section = currentSection[ index ] + ( next ? 1 : -1 ); + const index = form_el.data( 'form-index' ); + const current_section = currentSection[ index ] + ( next ? 1 : -1 ); - var count = + const count = $( form_el ).find( "[class^='ci_form_section_display_']" ).length - 1; // $(form_el).find(".ci_form_section").length - 1; @@ -272,16 +272,16 @@ $( function () { } ); $( '.ci_form' ).on( 'submit', function ( evt ) { - var form_el = $( this ); + const form_el = $( this ); form_el.get( 0 ).scrollIntoView(); - var paging = $( this ) + const paging = $( this ) .find( 'input[type=hidden][name=form_paging]' ) .first() .val(); - var index, current_section, count; + let index, current_section, count; if ( paging && paging !== 'false' ) { index = form_el.data( 'form-index' ); @@ -291,7 +291,7 @@ $( function () { // $(form_el).find(".ci_form_section").length - 1; } - var preventSubmit = false; + let preventSubmit = false; $( this ) .find( ( paging && paging !== 'false' ? @@ -299,15 +299,15 @@ $( function () { '' ) + '.ci_form_section' ) .each( function () { - var section_type = $( this ) + const section_type = $( this ) .find( 'input[type=hidden][name$=_section_type]' ) .val(); - var min_answers = $( this ) + const min_answers = $( this ) .find( 'input[type=hidden][name$=_multiple-choice-min-answers]' ) .val(); - var question_name = $( this ).find( '.ci_form_section_title' ).text(); + let question_name = $( this ).find( '.ci_form_section_title' ).text(); if ( !question_name ) { question_name = $( form_el ).find( '.ci_form_title' ).text(); @@ -321,7 +321,7 @@ $( function () { $( this ) .find( 'input[type=text][name$=_value]' ) .each( function () { - var val = $( this ).val().trim(); + const val = $( this ).val().trim(); if ( val !== '' && val !== null ) { filledIn++; @@ -345,7 +345,7 @@ $( function () { case 'multiple choice': if ( min_answers ) { - var checked = $( this ).find( + const checked = $( this ).find( 'input[type=checkbox][name$=_selected]:checked' ).length; if ( checked < min_answers ) { -- 2.39.5
$ date --- stdout --- Sat Jun 7 00:38:35 UTC 2025 --- end --- $ git clone file:///srv/git/mediawiki-extensions-CIForms.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 --- 378f50b695ab8c7068d6601d24c89c6257e48105 refs/heads/master --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": {}, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 0, "high": 0, "critical": 0, "total": 0 }, "dependencies": { "prod": 1, "dev": 411, "optional": 0, "peer": 1, "peerOptional": 0, "total": 411 } } } --- end --- $ /usr/bin/composer install --- stderr --- No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information. Loading composer repositories with package information Updating dependencies Lock file operations: 53 installs, 0 updates, 0 removals - Locking composer/pcre (3.3.2) - Locking composer/semver (3.4.3) - Locking composer/spdx-licenses (1.5.9) - Locking composer/xdebug-handler (3.0.5) - Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0) - Locking doctrine/deprecations (1.1.5) - Locking dompdf/dompdf (v3.1.0) - Locking dompdf/php-font-lib (1.0.1) - Locking dompdf/php-svg-lib (1.0.0) - Locking ezyang/htmlpurifier (v4.18.0) - Locking felixfbecker/advanced-json-rpc (v3.2.1) - Locking maennchen/zipstream-php (3.1.2) - Locking markbaker/complex (3.0.2) - Locking markbaker/matrix (3.0.1) - Locking masterminds/html5 (2.9.0) - Locking mediawiki/mediawiki-codesniffer (v46.0.0) - Locking mediawiki/mediawiki-phan-config (0.15.1) - Locking mediawiki/minus-x (1.1.3) - Locking mediawiki/phan-taint-check-plugin (6.1.0) - Locking microsoft/tolerant-php-parser (v0.1.2) - Locking netresearch/jsonmapper (v4.5.0) - Locking phan/phan (5.4.5) - 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.4.0) - Locking phpcsstandards/phpcsextra (1.2.1) - Locking phpcsstandards/phpcsutils (1.0.12) - Locking phpdocumentor/reflection-common (2.2.0) - Locking phpdocumentor/reflection-docblock (5.6.2) - Locking phpdocumentor/type-resolver (1.10.0) - Locking phpmailer/phpmailer (v6.10.0) - Locking phpoffice/phpspreadsheet (1.29.10) - Locking phpstan/phpdoc-parser (2.1.0) - Locking psr/container (2.0.2) - Locking psr/http-client (1.0.3) - Locking psr/http-factory (1.1.0) - Locking psr/http-message (2.0) - Locking psr/log (3.0.2) - Locking psr/simple-cache (3.0.0) - Locking sabberworm/php-css-parser (v8.8.0) - Locking sabre/event (5.1.7) - Locking squizlabs/php_codesniffer (3.11.3) - Locking symfony/console (v7.3.0) - Locking symfony/deprecation-contracts (v3.6.0) - Locking symfony/polyfill-ctype (v1.32.0) - Locking symfony/polyfill-intl-grapheme (v1.32.0) - Locking symfony/polyfill-intl-normalizer (v1.32.0) - Locking symfony/polyfill-mbstring (v1.32.0) - Locking symfony/polyfill-php80 (v1.32.0) - Locking symfony/service-contracts (v3.6.0) - Locking symfony/string (v7.3.0) - Locking tysonandre/var_representation_polyfill (0.1.3) - Locking webmozart/assert (1.11.0) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 53 installs, 0 updates, 0 removals - Downloading masterminds/html5 (2.9.0) - Downloading sabberworm/php-css-parser (v8.8.0) - Downloading dompdf/php-svg-lib (1.0.0) - Downloading dompdf/php-font-lib (1.0.1) - Downloading dompdf/dompdf (v3.1.0) - Downloading psr/simple-cache (3.0.0) - Downloading markbaker/matrix (3.0.1) - Downloading markbaker/complex (3.0.2) - Downloading maennchen/zipstream-php (3.1.2) - Downloading phpoffice/phpspreadsheet (1.29.10) 0/10 [>---------------------------] 0% 8/10 [======================>-----] 80% 10/10 [============================] 100% - Installing squizlabs/php_codesniffer (3.11.3): Extracting archive - Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive - Installing masterminds/html5 (2.9.0): Extracting archive - Installing symfony/polyfill-mbstring (v1.32.0): Extracting archive - Installing sabberworm/php-css-parser (v8.8.0): Extracting archive - Installing dompdf/php-svg-lib (1.0.0): Extracting archive - Installing dompdf/php-font-lib (1.0.1): Extracting archive - Installing dompdf/dompdf (v3.1.0): Extracting archive - Installing symfony/polyfill-php80 (v1.32.0): Extracting archive - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive - Installing composer/spdx-licenses (1.5.9): Extracting archive - Installing composer/semver (3.4.3): Extracting archive - Installing mediawiki/mediawiki-codesniffer (v46.0.0): Extracting archive - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.32.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.32.0): Extracting archive - Installing symfony/polyfill-ctype (v1.32.0): Extracting archive - Installing symfony/string (v7.3.0): Extracting archive - Installing symfony/deprecation-contracts (v3.6.0): Extracting archive - Installing psr/container (2.0.2): Extracting archive - Installing symfony/service-contracts (v3.6.0): Extracting archive - Installing symfony/console (v7.3.0): Extracting archive - Installing sabre/event (5.1.7): Extracting archive - Installing netresearch/jsonmapper (v4.5.0): Extracting archive - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive - Installing webmozart/assert (1.11.0): Extracting archive - Installing phpstan/phpdoc-parser (2.1.0): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing doctrine/deprecations (1.1.5): Extracting archive - Installing phpdocumentor/type-resolver (1.10.0): Extracting archive - Installing phpdocumentor/reflection-docblock (5.6.2): Extracting archive - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive - Installing psr/log (3.0.2): Extracting archive - Installing composer/pcre (3.3.2): Extracting archive - Installing composer/xdebug-handler (3.0.5): Extracting archive - Installing phan/phan (5.4.5): Extracting archive - Installing mediawiki/phan-taint-check-plugin (6.1.0): Extracting archive - Installing mediawiki/mediawiki-phan-config (0.15.1): Extracting archive - Installing mediawiki/minus-x (1.1.3): 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.4.0): Extracting archive - Installing phpmailer/phpmailer (v6.10.0): Extracting archive - Installing psr/simple-cache (3.0.0): Extracting archive - Installing psr/http-message (2.0): Extracting archive - Installing psr/http-factory (1.1.0): Extracting archive - Installing psr/http-client (1.0.3): Extracting archive - Installing markbaker/matrix (3.0.1): Extracting archive - Installing markbaker/complex (3.0.2): Extracting archive - Installing maennchen/zipstream-php (3.1.2): Extracting archive - Installing ezyang/htmlpurifier (v4.18.0): Extracting archive - Installing phpoffice/phpspreadsheet (1.29.10): Extracting archive 0/51 [>---------------------------] 0% 19/51 [==========>-----------------] 37% 32/51 [=================>----------] 62% 43/51 [=======================>----] 84% 50/51 [===========================>] 98% 51/51 [============================] 100% 14 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating autoload files 18 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils --- end --- Upgrading n:eslint-config-wikimedia from 0.28.2 -> 0.30.0 $ /usr/bin/npm install --- stdout --- added 411 packages, and audited 412 packages in 5s 92 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.3.0 --save-exact --- stdout --- up to date, audited 412 packages in 989ms 92 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 package-lock.json Gruntfile.js resources/validation.js i18n/en.json resources/manage.js i18n/qqq.json extension.json package.json composer.json i18n/de.json --fix --- stdout --- /src/repo/resources/validation.js 318:7 error Unexpected var, use let or const instead no-var 319:7 error Unexpected var, use let or const instead no-var 332:7 error Unexpected var, use let or const instead no-var ✖ 3 problems (3 errors, 0 warnings) --- end --- $ ./node_modules/.bin/eslint package-lock.json Gruntfile.js resources/validation.js i18n/en.json resources/manage.js i18n/qqq.json extension.json package.json composer.json i18n/de.json -f json --- stdout --- [{"filePath":"/src/repo/Gruntfile.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/composer.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/extension.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/i18n/de.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/i18n/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/i18n/qqq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package-lock.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/manage.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/validation.js","messages":[{"ruleId":"no-var","severity":2,"message":"Unexpected var, use let or const instead.","line":318,"column":7,"nodeType":"VariableDeclaration","messageId":"unexpectedVar","endLine":318,"endColumn":22},{"ruleId":"no-var","severity":2,"message":"Unexpected var, use let or const instead.","line":319,"column":7,"nodeType":"VariableDeclaration","messageId":"unexpectedVar","endLine":319,"endColumn":24},{"ruleId":"no-var","severity":2,"message":"Unexpected var, use let or const instead.","line":332,"column":7,"nodeType":"VariableDeclaration","messageId":"unexpectedVar","endLine":332,"endColumn":67}],"suppressedMessages":[{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":55,"column":10,"nodeType":"MemberExpression","messageId":"unexpected","endLine":55,"endColumn":21,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[1888,1909],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":3,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * This file is part of the MediaWiki extension CIForms.\n *\n * CIForms is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 2 of the License, or\n * (at your option) any later version.\n *\n * CIForms is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with CIForms. If not, see <http://www.gnu.org/licenses/>.\n *\n * @file\n * @author thomas-topway-it <support@topway.it>\n * @copyright Copyright © 2021-2024, https://wikisphere.org\n */\n\n$( () => {\n\tconst msg1 = mw.config.get( 'ci-forms-validation-msg1' );\n\tconst msg2 = mw.config.get( 'ci-forms-validation-msg2' );\n\t// var msg3 = mw.config.get( 'ci-forms-validation-msg3' );\n\n\tconst currentSection = {};\n\n\tfunction escape( s ) {\n\t\treturn String( s )\n\t\t\t.replace( /&/g, '\\x26' )\n\t\t\t.replace( /'/g, '\\x27' )\n\t\t\t.replace( /\"/g, '\\x22' )\n\t\t\t.replace( /</g, '\\x3C' )\n\t\t\t.replace( />/g, '\\x3E' );\n\t}\n\n\tconst site_key = mw.config.get( 'ci_forms_google_recaptcha_site_key' );\n\n\t// @see https://www.mediawiki.org/wiki/Topic:Y2pfh94nkkqzsjw3\n\tfunction executeRecaptchaValidation() {\n\t\tmw.loader\n\t\t\t.getScript( 'https://www.google.com/recaptcha/api.js?render=' + site_key )\n\t\t\t.then(\n\t\t\t\t() => {\n\t\t\t\t\tif ( $( 'input[name=\"g-recaptcha-response\"]' ).length ) {\n\t\t\t\t\t\tgrecaptcha.ready( () => {\n\t\t\t\t\t\t\tgrecaptcha\n\t\t\t\t\t\t\t\t.execute( site_key, { action: 'validate_captcha' } )\n\t\t\t\t\t\t\t\t.then( ( token ) => {\n\t\t\t\t\t\t\t\t\t$( 'input[name=\"g-recaptcha-response\"]' ).val( token );\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\t\t\t\tconsole.log( error );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t( e ) => {\n\t\t\t\t\tmw.log.error( e.message );\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\tif ( site_key ) {\n\t\texecuteRecaptchaValidation();\n\n\t\t// refresh each 90 seconds\n\t\tsetInterval( executeRecaptchaValidation, 90 * 1000 );\n\t}\n\n\t$( '.ci_form' ).each( function ( index ) {\n\t\tconst paging = $( this )\n\t\t\t.find( 'input[type=hidden][name=form_paging]' )\n\t\t\t.first()\n\t\t\t.val();\n\n\t\tif ( paging && paging !== 'false' ) {\n\t\t\t$( this ).find( '.ci_form_input_navigation_next' ).attr( 'type', 'submit' );\n\t\t}\n\n\t\tcurrentSection[ index ] = 0;\n\t\t$( this )\n\t\t\t.find(\n\t\t\t\t( paging && paging !== 'false' ?\n\t\t\t\t\t'.ci_form_section_display_' + currentSection[ index ] + ' ' :\n\t\t\t\t\t'' ) + ':input[data-required=\"1\"]'\n\t\t\t)\n\t\t\t.prop( 'required', true );\n\t\t$( this ).data( 'form-index', index );\n\t} );\n\n\t$( '.ci_form li' ).each( function ( index ) {\n\t\tconst el = this;\n\t\tconst section_el = $( this ).closest( '.ci_form_section' );\n\t\tconst radioForCheckboxes = $( section_el )\n\t\t\t.find( '.radio_for_required_checkboxes' )\n\t\t\t.first();\n\t\tconst max_answers = $( section_el )\n\t\t\t.find( 'input[type=hidden][name$=_multiple-choice-max-answers]' )\n\t\t\t.val();\n\n\t\t$( this )\n\t\t\t.find( 'input[type=text]' )\n\t\t\t.on( 'click', function () {\n\t\t\t\tconst count = $( section_el ).find( 'input[type=checkbox]:checked' ).length;\n\n\t\t\t\tif ( count > max_answers ) {\n\t\t\t\t\talert( msg1.replace( '$1', max_answers ) );\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif ( $( this ).attr( 'data-required' ) === 1 ) {\n\t\t\t\t\t$( this ).prop( 'required', true );\n\t\t\t\t}\n\n\t\t\t\t$( el ).find( 'input[type=radio]' ).prop( 'checked', true );\n\t\t\t\t$( el ).find( 'input[type=checkbox]' ).prop( 'checked', true );\n\n\t\t\t\tradioForCheckboxes[ 0 ].checked = !!count;\n\t\t\t} );\n\n\t\t$( this )\n\t\t\t.find( 'input[type=checkbox]' )\n\t\t\t.on( 'click', () => {\n\t\t\t\tconst count = $( section_el ).find( 'input[type=checkbox]:checked' ).length;\n\n\t\t\t\tif ( count > max_answers ) {\n\t\t\t\t\talert( msg1.replace( '$1', max_answers ) );\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tradioForCheckboxes[ 0 ].checked = !!count;\n\t\t\t} );\n\t} );\n\n\t// https://stackoverflow.com/questions/15031513/jquery-help-to-enforce-maxlength-on-textarea\n\t$( '.ci_form textarea[maxlength]' ).on( 'keyup', function () {\n\t\tconst limit = parseInt( $( this ).attr( 'maxlength' ) );\n\t\tconst text = $( this ).val();\n\t\tconst chars = text.length;\n\n\t\t$( this )\n\t\t\t.parents()\n\t\t\t.each( function () {\n\t\t\t\tconst span = $( this )\n\t\t\t\t\t.find( '.ci_form_section_inputs_textarea_maxlength' )\n\t\t\t\t\t.first();\n\n\t\t\t\tif ( span.length ) {\n\t\t\t\t\tspan.html( chars + '/' + limit + ' characters' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\tif ( chars > limit ) {\n\t\t\tconst new_text = text.slice( 0, Math.max( 0, limit ) );\n\t\t\t$( this ).val( new_text );\n\t\t}\n\t} );\n\n\t$( '.ci_form select' ).each( function () {\n\t\tif ( $( this ).find( 'option' ).length > 20 ) {\n\t\t\t$( this ).select2();\n\t\t}\n\t} );\n\n\t// we cannot use form on submit because\n\t// is triggered after the native validation\n\n\t$( '.ci_form input[type=radio]' ).on( 'click', function () {\n\t\tconst section_el = $( this ).closest( '.ci_form_section' );\n\n\t\t$( section_el )\n\t\t\t.find( 'li' )\n\t\t\t.each( function () {\n\t\t\t\tconst el = this;\n\n\t\t\t\t$( this )\n\t\t\t\t\t.find( 'input[type=radio][name$=_selected]:checked' )\n\t\t\t\t\t.each( () => {\n\t\t\t\t\t\t$( el )\n\t\t\t\t\t\t\t.find( 'input[type=text][data-required=\"1\"]' )\n\t\t\t\t\t\t\t.prop( 'required', true );\n\t\t\t\t\t} );\n\n\t\t\t\t$( this )\n\t\t\t\t\t.find( 'input[type=radio][name$=_selected]:not(:checked)' )\n\t\t\t\t\t.each( () => {\n\t\t\t\t\t\t$( el ).find( 'input[type=text]' ).removeAttr( 'required' );\n\t\t\t\t\t} );\n\t\t\t} );\n\t} );\n\n\t$( '.ci_form input[type=checkbox]' ).on( 'click', function () {\n\t\tconst section_el = $( this ).closest( '.ci_form_section' );\n\n\t\t$( section_el )\n\t\t\t.find( 'li' )\n\t\t\t.each( function () {\n\t\t\t\tconst el = this;\n\n\t\t\t\t$( this )\n\t\t\t\t\t.find( 'input[type=checkbox][name$=_selected]:checked' )\n\t\t\t\t\t.each( () => {\n\t\t\t\t\t\t$( el )\n\t\t\t\t\t\t\t.find( 'input[type=text][data-required=\"1\"]' )\n\t\t\t\t\t\t\t.prop( 'required', true );\n\t\t\t\t\t} );\n\n\t\t\t\t$( this )\n\t\t\t\t\t.find( 'input[type=checkbox][name$=_selected]:not(:checked)' )\n\t\t\t\t\t.each( () => {\n\t\t\t\t\t\t$( el ).find( 'input[type=text]' ).removeAttr( 'required' );\n\t\t\t\t\t} );\n\t\t\t} );\n\t} );\n\n\t$( '.ci_form_section_submit button' ).on( 'click', function ( evt ) {\n\t\tconst form_el = $( this ).closest( '.ci_form' );\n\n\t\tconst next = $( this ).prop( 'class' ).includes( 'next' );\n\n\t\tif ( next ) {\n\t\t\treturn;\n\t\t}\n\n\t\tform_el.get( 0 ).scrollIntoView();\n\n\t\tconst index = form_el.data( 'form-index' );\n\t\tconst current_section = currentSection[ index ] + ( next ? 1 : -1 );\n\n\t\tconst count =\n\t\t\t$( form_el ).find( \"[class^='ci_form_section_display_']\" ).length - 1;\n\n\t\t// $(form_el).find(\".ci_form_section\").length - 1;\n\n\t\tif ( current_section < 0 || current_section > count ) {\n\t\t\treturn;\n\t\t}\n\n\t\t$( form_el )\n\t\t\t.find( '.ci_form_section_display_' + currentSection[ index ] )\n\t\t\t.first()\n\t\t\t.hide();\n\n\t\t$( form_el )\n\t\t\t.find(\n\t\t\t\t'.ci_form_section_display_' +\n\t\t\t\t\tcurrentSection[ index ] +\n\t\t\t\t\t' :input[data-required=\"1\"]'\n\t\t\t)\n\t\t\t.removeAttr( 'required' );\n\n\t\tcurrentSection[ index ] = current_section;\n\n\t\t$( form_el )\n\t\t\t.find( '.ci_form_section_display_' + current_section )\n\t\t\t.first()\n\t\t\t.fadeIn( 'slow' );\n\t\t$( form_el )\n\t\t\t.find( '.ci_form_input_navigation_back' )\n\t\t\t.first()\n\t\t\t.css( 'display', current_section ? 'inline-block' : 'none' );\n\t\t$( form_el )\n\t\t\t.find( '.ci_form_input_navigation_next' )\n\t\t\t.first()\n\t\t\t.css( 'display', current_section !== count ? 'inline-block' : 'none' );\n\t\t$( form_el )\n\t\t\t.find( '.ci_form_input_submit' )\n\t\t\t.first()\n\t\t\t.css( 'display', current_section === count ? 'inline-block' : 'none' );\n\t} );\n\n\t$( '.ci_form' ).on( 'submit', function ( evt ) {\n\t\tconst form_el = $( this );\n\n\t\tform_el.get( 0 ).scrollIntoView();\n\n\t\tconst paging = $( this )\n\t\t\t.find( 'input[type=hidden][name=form_paging]' )\n\t\t\t.first()\n\t\t\t.val();\n\n\t\tlet index, current_section, count;\n\n\t\tif ( paging && paging !== 'false' ) {\n\t\t\tindex = form_el.data( 'form-index' );\n\t\t\tcurrent_section = currentSection[ index ] + 1;\n\t\t\tcount = $( form_el ).find( \"[class^='ci_form_section_display_']\" ).length - 1;\n\n\t\t\t// $(form_el).find(\".ci_form_section\").length - 1;\n\t\t}\n\n\t\tlet preventSubmit = false;\n\t\t$( this )\n\t\t\t.find(\n\t\t\t\t( paging && paging !== 'false' ?\n\t\t\t\t\t'.ci_form_section_display_' + currentSection[ index ] + ' ' :\n\t\t\t\t\t'' ) + '.ci_form_section'\n\t\t\t)\n\t\t\t.each( function () {\n\t\t\t\tconst section_type = $( this )\n\t\t\t\t\t.find( 'input[type=hidden][name$=_section_type]' )\n\t\t\t\t\t.val();\n\n\t\t\t\tconst min_answers = $( this )\n\t\t\t\t\t.find( 'input[type=hidden][name$=_multiple-choice-min-answers]' )\n\t\t\t\t\t.val();\n\n\t\t\t\tlet question_name = $( this ).find( '.ci_form_section_title' ).text();\n\n\t\t\t\tif ( !question_name ) {\n\t\t\t\t\tquestion_name = $( form_el ).find( '.ci_form_title' ).text();\n\t\t\t\t}\n\n\t\t\t\tswitch ( section_type ) {\n\t\t\t\t\tcase 'cloze test':\n\t\t\t\t\t\tvar inputs = 0;\n\t\t\t\t\t\tvar filledIn = 0;\n\n\t\t\t\t\t\t$( this )\n\t\t\t\t\t\t\t.find( 'input[type=text][name$=_value]' )\n\t\t\t\t\t\t\t.each( function () {\n\t\t\t\t\t\t\t\tconst val = $( this ).val().trim();\n\n\t\t\t\t\t\t\t\tif ( val !== '' && val !== null ) {\n\t\t\t\t\t\t\t\t\tfilledIn++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tinputs++;\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\tvar minNumber = min_answers || Math.floor( inputs / 2 ) + 1;\n\n\t\t\t\t\t\tif ( filledIn < minNumber ) {\n\t\t\t\t\t\t\talert(\n\t\t\t\t\t\t\t\tmsg2\n\t\t\t\t\t\t\t\t\t.replace( '$1', minNumber )\n\t\t\t\t\t\t\t\t\t.replace( '$2', escape( question_name ) )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tpreventSubmit = true;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'multiple choice':\n\t\t\t\t\t\tif ( min_answers ) {\n\t\t\t\t\t\t\tconst checked = $( this ).find(\n\t\t\t\t\t\t\t\t'input[type=checkbox][name$=_selected]:checked'\n\t\t\t\t\t\t\t).length;\n\t\t\t\t\t\t\tif ( checked < min_answers ) {\n\t\t\t\t\t\t\t\talert(\n\t\t\t\t\t\t\t\t\tmsg2\n\t\t\t\t\t\t\t\t\t\t.replace( '$1', min_answers )\n\t\t\t\t\t\t\t\t\t\t.replace( '$2', escape( question_name ) )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tpreventSubmit = true;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} );\n\n\t\tif ( preventSubmit ) {\n\t\t\tevt.preventDefault();\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( paging && paging !== 'false' ) {\n\t\t\tif ( current_section <= count ) {\n\t\t\t\t$( form_el )\n\t\t\t\t\t.find( '.ci_form_section_display_' + currentSection[ index ] )\n\t\t\t\t\t.first()\n\t\t\t\t\t.hide();\n\n\t\t\t\t// next section\n\t\t\t\tcurrentSection[ index ] = current_section;\n\n\t\t\t\t$( form_el )\n\t\t\t\t\t.find( '.ci_form_section_display_' + current_section )\n\t\t\t\t\t.first()\n\t\t\t\t\t.fadeIn( 'slow' );\n\n\t\t\t\t$( this )\n\t\t\t\t\t.find( '.ci_form_section_display_' + current_section )\n\t\t\t\t\t.find( ':input[data-required=\"1\"]' )\n\t\t\t\t\t.prop( 'required', true );\n\t\t\t}\n\n\t\t\t$( form_el )\n\t\t\t\t.find( '.ci_form_input_navigation_back' )\n\t\t\t\t.first()\n\t\t\t\t.css( 'display', current_section ? 'inline-block' : 'none' );\n\t\t\t$( form_el )\n\t\t\t\t.find( '.ci_form_input_navigation_next' )\n\t\t\t\t.first()\n\t\t\t\t.css( 'display', current_section !== count ? 'inline-block' : 'none' );\n\t\t\t$( form_el )\n\t\t\t\t.find( '.ci_form_input_submit' )\n\t\t\t\t.first()\n\t\t\t\t.css( 'display', current_section === count ? 'inline-block' : 'none' );\n\n\t\t\tif ( current_section <= count ) {\n\t\t\t\tevt.preventDefault();\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} );\n} );\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]}] --- end --- Disabling eslint rule 'no-var' (broken in .eslintrc.json) on .eslintrc.json $ /usr/bin/npm ci --- stdout --- added 411 packages, and audited 412 packages in 5s 92 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/resources/validation.js 318:7 warning Unexpected var, use let or const instead no-var 319:7 warning Unexpected var, use let or const instead no-var 332:7 warning Unexpected var, use let or const instead no-var ✖ 3 problems (0 errors, 3 warnings) Running "banana:CIForms" (banana) task >> 1 message directory checked. Running "stylelint:all" (stylelint) task >> Linted 2 files without errors Done. --- end --- Upgrading c:mediawiki/mediawiki-codesniffer from 46.0.0 -> 47.0.0 $ /usr/bin/composer update --- stderr --- Loading composer repositories with package information Updating dependencies Lock file operations: 0 installs, 2 updates, 0 removals - Upgrading mediawiki/mediawiki-codesniffer (v46.0.0 => v47.0.0) - Upgrading squizlabs/php_codesniffer (3.11.3 => 3.12.2) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 0 installs, 2 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] - Upgrading squizlabs/php_codesniffer (3.11.3 => 3.12.2): Extracting archive - Upgrading mediawiki/mediawiki-codesniffer (v46.0.0 => v47.0.0): Extracting archive 0/2 [>---------------------------] 0% 1/2 [==============>-------------] 50% 2/2 [============================] 100% Generating autoload files 18 packages you are using are looking for funding. Use the `composer fund` command to find out more! No security vulnerability advisories found --- stdout --- PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils --- end --- Previously failing phpcs rules: {'MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate', 'Generic.CodeAnalysis.AssignmentInCondition.Found', 'MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage', 'MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName', 'MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment', 'Generic.Files.LineLength.TooLong'} $ vendor/bin/phpcs --report=json --- stdout --- {"totals":{"errors":18,"warnings":92,"fixable":0},"files":{"\/src\/repo\/CIForms.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/specials\/PrevNextNavigationRendererCIForms.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/CIForms.i18n.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/api\/CIFormsApiCheckLatestVersion.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/.phan\/config.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/specials\/CIFormsSubmit.php":{"errors":4,"warnings":25,"messages":[{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":32,"column":13},{"message":"Should use function $this->getConfig()->get() rather than global $wgEnableEmail","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":53,"column":16},{"message":"Should use function $this->getConfig()->get() rather than global $wgCIFormsSenderEmail","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":54,"column":16},{"message":"Should use function $this->getConfig()->get() rather than global $wgCIFormsSenderName","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":55,"column":16},{"message":"Should use function $this->getConfig()->get() rather than global $wgPasswordSenderName","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":56,"column":16},{"message":"Should use function $this->getConfig()->get() rather than global $wgPasswordSender","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":57,"column":16},{"message":"Should use function $this->getConfig()->get() rather than global $wgSitename","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":58,"column":16},{"message":"Line exceeds 120 characters; contains 146 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":99,"column":146},{"message":"Line exceeds 120 characters; contains 154 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":100,"column":154},{"message":"Line exceeds 120 characters; contains 152 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":125,"column":152},{"message":"Variable assignment found within a condition. Did you mean to do a comparison ?","source":"Generic.CodeAnalysis.AssignmentInCondition.Found","severity":5,"fixable":false,"type":"WARNING","line":250,"column":25},{"message":"Variable assignment found within a condition. Did you mean to do a comparison ?","source":"Generic.CodeAnalysis.AssignmentInCondition.Found","severity":5,"fixable":false,"type":"WARNING","line":256,"column":25},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":310,"column":53},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":312,"column":48},{"message":"Line exceeds 120 characters; contains 142 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":319,"column":142},{"message":"Line exceeds 120 characters; contains 146 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":323,"column":146},{"message":"Line exceeds 120 characters; contains 141 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":325,"column":9},{"message":"Method name \"exit_message\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":365,"column":15},{"message":"Should use function $this->getConfig()->get() rather than global $wgSitename","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":433,"column":16},{"message":"Line exceeds 120 characters; contains 135 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":435,"column":135},{"message":"Line exceeds 120 characters; contains 231 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":437,"column":231},{"message":"Method name \"check_captcha\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":498,"column":15},{"message":"Should use function $this->getConfig()->get() rather than global $wgCIFormsGoogleRecaptchaSecret","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":499,"column":16},{"message":"Method name \"create_output\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":605,"column":15},{"message":"Line exceeds 120 characters; contains 157 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":643,"column":157},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":670,"column":51},{"message":"Line exceeds 120 characters; contains 176 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":680,"column":176},{"message":"Line exceeds 120 characters; contains 171 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":704,"column":171},{"message":"Line exceeds 120 characters; contains 126 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":726,"column":126}]},"\/src\/repo\/includes\/CIForms.php":{"errors":7,"warnings":43,"messages":[{"message":"Method name \"ci_form\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":179,"column":19},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":185,"column":31},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":188,"column":42},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":194,"column":31},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":199,"column":12},{"message":"Line exceeds 120 characters; contains 128 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":215,"column":128},{"message":"Line exceeds 120 characters; contains 427 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":220,"column":427},{"message":"Line exceeds 120 characters; contains 130 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":223,"column":130},{"message":"Line exceeds 120 characters; contains 200 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":265,"column":200},{"message":"Line exceeds 120 characters; contains 171 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":274,"column":171},{"message":"Line exceeds 120 characters; contains 235 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":284,"column":235},{"message":"Line exceeds 120 characters; contains 283 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":287,"column":283},{"message":"Line exceeds 120 characters; contains 248 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":288,"column":248},{"message":"Line exceeds 120 characters; contains 256 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":289,"column":256},{"message":"Line exceeds 120 characters; contains 171 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":296,"column":171},{"message":"Method name \"parse_function_arguments\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":313,"column":22},{"message":"Method name \"replace_wikitext_and_html\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":367,"column":22},{"message":"Method name \"hidden_input\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":396,"column":22},{"message":"Method name \"ci_form_section_process\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":405,"column":22},{"message":"Line exceeds 120 characters; contains 124 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":437,"column":124},{"message":"Line exceeds 120 characters; contains 155 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":438,"column":155},{"message":"Line exceeds 120 characters; contains 139 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":464,"column":139},{"message":"Line exceeds 120 characters; contains 139 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":467,"column":139},{"message":"Line exceeds 120 characters; contains 133 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":555,"column":133},{"message":"Line exceeds 120 characters; contains 193 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":603,"column":193},{"message":"Line exceeds 120 characters; contains 153 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":607,"column":153},{"message":"Line exceeds 120 characters; contains 128 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":614,"column":128},{"message":"Line exceeds 120 characters; contains 143 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":616,"column":143},{"message":"Line exceeds 120 characters; contains 122 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":619,"column":122},{"message":"Line exceeds 120 characters; contains 140 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":628,"column":140},{"message":"Line exceeds 120 characters; contains 214 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":635,"column":214},{"message":"Line exceeds 120 characters; contains 137 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":641,"column":137},{"message":"Line exceeds 120 characters; contains 258 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":645,"column":258},{"message":"Line exceeds 120 characters; contains 122 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":654,"column":122},{"message":"Line exceeds 120 characters; contains 123 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":659,"column":123},{"message":"Line exceeds 120 characters; contains 122 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":672,"column":122},{"message":"Line exceeds 120 characters; contains 128 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":673,"column":128},{"message":"Line exceeds 120 characters; contains 168 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":688,"column":29},{"message":"Line exceeds 120 characters; contains 189 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":689,"column":29},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":696,"column":38},{"message":"Line exceeds 120 characters; contains 168 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":706,"column":168},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":732,"column":38},{"message":"Line exceeds 120 characters; contains 130 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":765,"column":130},{"message":"Line exceeds 120 characters; contains 126 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":777,"column":126},{"message":"Line exceeds 120 characters; contains 148 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":805,"column":148},{"message":"Line exceeds 120 characters; contains 127 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":811,"column":127},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":829,"column":42},{"message":"Method name \"ci_form_parse_input_symbol\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":845,"column":19},{"message":"Method name \"ci_form_section\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":893,"column":19},{"message":"Line exceeds 120 characters; contains 125 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":905,"column":13}]},"\/src\/repo\/includes\/specials\/CIFormsManage.php":{"errors":7,"warnings":24,"messages":[{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":37,"column":13},{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":38,"column":13},{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":39,"column":13},{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":40,"column":13},{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":41,"column":13},{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":42,"column":13},{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":43,"column":13},{"message":"Should use function $this->getConfig()->get() rather than global $wgDBprefix","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":99,"column":16},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":217,"column":58},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":264,"column":19},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":266,"column":50},{"message":"Line exceeds 120 characters; contains 123 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":316,"column":88},{"message":"Line exceeds 120 characters; contains 135 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":549,"column":135},{"message":"Line exceeds 120 characters; contains 152 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":693,"column":152},{"message":"Line exceeds 120 characters; contains 123 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":708,"column":20},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":750,"column":37},{"message":"Variable assignment found within a condition. Did you mean to do a comparison ?","source":"Generic.CodeAnalysis.AssignmentInCondition.Found","severity":5,"fixable":false,"type":"WARNING","line":826,"column":45},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":885,"column":74},{"message":"Line exceeds 120 characters; contains 146 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":913,"column":146},{"message":"Line exceeds 120 characters; contains 146 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":922,"column":146},{"message":"Line exceeds 120 characters; contains 180 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1009,"column":180},{"message":"Line exceeds 120 characters; contains 127 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1056,"column":127},{"message":"Line exceeds 120 characters; contains 154 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1058,"column":154},{"message":"Line exceeds 120 characters; contains 136 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1065,"column":136},{"message":"Line exceeds 120 characters; contains 147 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1079,"column":147},{"message":"Line exceeds 120 characters; contains 139 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1083,"column":139},{"message":"Line exceeds 120 characters; contains 168 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1100,"column":168},{"message":"Line exceeds 120 characters; contains 139 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1104,"column":139},{"message":"Line exceeds 120 characters; contains 229 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1107,"column":229},{"message":"Line exceeds 120 characters; contains 151 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1111,"column":151},{"message":"Line exceeds 120 characters; contains 171 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1137,"column":171}]}}} --- end --- PHPCS run failed $ vendor/bin/phpcs --report=json --- stdout --- {"totals":{"errors":18,"warnings":92,"fixable":0},"files":{"\/src\/repo\/includes\/specials\/PrevNextNavigationRendererCIForms.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/CIForms.i18n.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/CIForms.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/api\/CIFormsApiCheckLatestVersion.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/.phan\/config.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/specials\/CIFormsSubmit.php":{"errors":4,"warnings":25,"messages":[{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":32,"column":13},{"message":"Should use function $this->getConfig()->get() rather than global $wgEnableEmail","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":53,"column":16},{"message":"Should use function $this->getConfig()->get() rather than global $wgCIFormsSenderEmail","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":54,"column":16},{"message":"Should use function $this->getConfig()->get() rather than global $wgCIFormsSenderName","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":55,"column":16},{"message":"Should use function $this->getConfig()->get() rather than global $wgPasswordSenderName","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":56,"column":16},{"message":"Should use function $this->getConfig()->get() rather than global $wgPasswordSender","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":57,"column":16},{"message":"Should use function $this->getConfig()->get() rather than global $wgSitename","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":58,"column":16},{"message":"Line exceeds 120 characters; contains 146 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":99,"column":146},{"message":"Line exceeds 120 characters; contains 154 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":100,"column":154},{"message":"Line exceeds 120 characters; contains 152 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":125,"column":152},{"message":"Variable assignment found within a condition. Did you mean to do a comparison ?","source":"Generic.CodeAnalysis.AssignmentInCondition.Found","severity":5,"fixable":false,"type":"WARNING","line":250,"column":25},{"message":"Variable assignment found within a condition. Did you mean to do a comparison ?","source":"Generic.CodeAnalysis.AssignmentInCondition.Found","severity":5,"fixable":false,"type":"WARNING","line":256,"column":25},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":310,"column":53},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":312,"column":48},{"message":"Line exceeds 120 characters; contains 142 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":319,"column":142},{"message":"Line exceeds 120 characters; contains 146 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":323,"column":146},{"message":"Line exceeds 120 characters; contains 141 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":325,"column":9},{"message":"Method name \"exit_message\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":365,"column":15},{"message":"Should use function $this->getConfig()->get() rather than global $wgSitename","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":433,"column":16},{"message":"Line exceeds 120 characters; contains 135 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":435,"column":135},{"message":"Line exceeds 120 characters; contains 231 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":437,"column":231},{"message":"Method name \"check_captcha\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":498,"column":15},{"message":"Should use function $this->getConfig()->get() rather than global $wgCIFormsGoogleRecaptchaSecret","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":499,"column":16},{"message":"Method name \"create_output\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":605,"column":15},{"message":"Line exceeds 120 characters; contains 157 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":643,"column":157},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":670,"column":51},{"message":"Line exceeds 120 characters; contains 176 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":680,"column":176},{"message":"Line exceeds 120 characters; contains 171 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":704,"column":171},{"message":"Line exceeds 120 characters; contains 126 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":726,"column":126}]},"\/src\/repo\/includes\/CIForms.php":{"errors":7,"warnings":43,"messages":[{"message":"Method name \"ci_form\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":179,"column":19},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":185,"column":31},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":188,"column":42},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":194,"column":31},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":199,"column":12},{"message":"Line exceeds 120 characters; contains 128 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":215,"column":128},{"message":"Line exceeds 120 characters; contains 427 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":220,"column":427},{"message":"Line exceeds 120 characters; contains 130 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":223,"column":130},{"message":"Line exceeds 120 characters; contains 200 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":265,"column":200},{"message":"Line exceeds 120 characters; contains 171 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":274,"column":171},{"message":"Line exceeds 120 characters; contains 235 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":284,"column":235},{"message":"Line exceeds 120 characters; contains 283 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":287,"column":283},{"message":"Line exceeds 120 characters; contains 248 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":288,"column":248},{"message":"Line exceeds 120 characters; contains 256 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":289,"column":256},{"message":"Line exceeds 120 characters; contains 171 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":296,"column":171},{"message":"Method name \"parse_function_arguments\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":313,"column":22},{"message":"Method name \"replace_wikitext_and_html\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":367,"column":22},{"message":"Method name \"hidden_input\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":396,"column":22},{"message":"Method name \"ci_form_section_process\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":405,"column":22},{"message":"Line exceeds 120 characters; contains 124 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":437,"column":124},{"message":"Line exceeds 120 characters; contains 155 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":438,"column":155},{"message":"Line exceeds 120 characters; contains 139 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":464,"column":139},{"message":"Line exceeds 120 characters; contains 139 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":467,"column":139},{"message":"Line exceeds 120 characters; contains 133 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":555,"column":133},{"message":"Line exceeds 120 characters; contains 193 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":603,"column":193},{"message":"Line exceeds 120 characters; contains 153 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":607,"column":153},{"message":"Line exceeds 120 characters; contains 128 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":614,"column":128},{"message":"Line exceeds 120 characters; contains 143 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":616,"column":143},{"message":"Line exceeds 120 characters; contains 122 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":619,"column":122},{"message":"Line exceeds 120 characters; contains 140 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":628,"column":140},{"message":"Line exceeds 120 characters; contains 214 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":635,"column":214},{"message":"Line exceeds 120 characters; contains 137 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":641,"column":137},{"message":"Line exceeds 120 characters; contains 258 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":645,"column":258},{"message":"Line exceeds 120 characters; contains 122 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":654,"column":122},{"message":"Line exceeds 120 characters; contains 123 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":659,"column":123},{"message":"Line exceeds 120 characters; contains 122 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":672,"column":122},{"message":"Line exceeds 120 characters; contains 128 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":673,"column":128},{"message":"Line exceeds 120 characters; contains 168 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":688,"column":29},{"message":"Line exceeds 120 characters; contains 189 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":689,"column":29},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":696,"column":38},{"message":"Line exceeds 120 characters; contains 168 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":706,"column":168},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":732,"column":38},{"message":"Line exceeds 120 characters; contains 130 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":765,"column":130},{"message":"Line exceeds 120 characters; contains 126 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":777,"column":126},{"message":"Line exceeds 120 characters; contains 148 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":805,"column":148},{"message":"Line exceeds 120 characters; contains 127 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":811,"column":127},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":829,"column":42},{"message":"Method name \"ci_form_parse_input_symbol\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":845,"column":19},{"message":"Method name \"ci_form_section\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":893,"column":19},{"message":"Line exceeds 120 characters; contains 125 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":905,"column":13}]},"\/src\/repo\/includes\/specials\/CIFormsManage.php":{"errors":7,"warnings":24,"messages":[{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":37,"column":13},{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":38,"column":13},{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":39,"column":13},{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":40,"column":13},{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":41,"column":13},{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":42,"column":13},{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":43,"column":13},{"message":"Should use function $this->getConfig()->get() rather than global $wgDBprefix","source":"MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage","severity":5,"fixable":false,"type":"WARNING","line":99,"column":16},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":217,"column":58},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":264,"column":19},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":266,"column":50},{"message":"Line exceeds 120 characters; contains 123 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":316,"column":88},{"message":"Line exceeds 120 characters; contains 135 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":549,"column":135},{"message":"Line exceeds 120 characters; contains 152 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":693,"column":152},{"message":"Line exceeds 120 characters; contains 123 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":708,"column":20},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":750,"column":37},{"message":"Variable assignment found within a condition. Did you mean to do a comparison ?","source":"Generic.CodeAnalysis.AssignmentInCondition.Found","severity":5,"fixable":false,"type":"WARNING","line":826,"column":45},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":885,"column":74},{"message":"Line exceeds 120 characters; contains 146 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":913,"column":146},{"message":"Line exceeds 120 characters; contains 146 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":922,"column":146},{"message":"Line exceeds 120 characters; contains 180 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1009,"column":180},{"message":"Line exceeds 120 characters; contains 127 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1056,"column":127},{"message":"Line exceeds 120 characters; contains 154 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1058,"column":154},{"message":"Line exceeds 120 characters; contains 136 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1065,"column":136},{"message":"Line exceeds 120 characters; contains 147 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1079,"column":147},{"message":"Line exceeds 120 characters; contains 139 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1083,"column":139},{"message":"Line exceeds 120 characters; contains 168 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1100,"column":168},{"message":"Line exceeds 120 characters; contains 139 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1104,"column":139},{"message":"Line exceeds 120 characters; contains 229 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1107,"column":229},{"message":"Line exceeds 120 characters; contains 151 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1111,"column":151},{"message":"Line exceeds 120 characters; contains 171 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":1137,"column":171}]}}} --- end --- $ git checkout .phpcs.xml --- stderr --- Updated 1 path from the index --- stdout --- --- end --- $ /usr/bin/composer install --- stderr --- Installing dependencies from lock file (including require-dev) Verifying lock file contents can be installed on current platform. Nothing to install, update or remove Generating autoload files 18 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- --- end --- $ /usr/bin/composer test --- stderr --- > parallel-lint . --exclude vendor --exclude node_modules > phpcs -sp --cache > minus-x check . --- stdout --- PHP 8.2.28 | 10 parallel jobs ........ 8/8 (100%) Checked 8 files in 0.1 seconds No syntax error found ........ 8 / 8 (100%) Time: 131ms; Memory: 8MB MinusX ====== Processing /src/repo... ....................................... All good! --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": {}, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 0, "high": 0, "critical": 0, "total": 0 }, "dependencies": { "prod": 1, "dev": 411, "optional": 0, "peer": 1, "peerOptional": 0, "total": 411 } } } --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- build: Updating dependencies composer: * mediawiki/mediawiki-codesniffer: 46.0.0 → 47.0.0 npm: * eslint-config-wikimedia: 0.28.2 → 0.30.0 The following rules are failing and were disabled: * no-var Additional changes: * eslint: Replaced `wikimedia/client-es5` with `wikimedia/client`. $ git add . --- stdout --- --- end --- $ git commit -F /tmp/tmp8n9fyo7m --- stdout --- [master 688605e] build: Updating dependencies 7 files changed, 90 insertions(+), 86 deletions(-) --- end --- $ git format-patch HEAD~1 --stdout --- stdout --- From 688605e823f18d32bc3112c37d01c59ef3143df3 Mon Sep 17 00:00:00 2001 From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org> Date: Sat, 7 Jun 2025 00:39:21 +0000 Subject: [PATCH] build: Updating dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit composer: * mediawiki/mediawiki-codesniffer: 46.0.0 → 47.0.0 npm: * eslint-config-wikimedia: 0.28.2 → 0.30.0 The following rules are failing and were disabled: * no-var Additional changes: * eslint: Replaced `wikimedia/client-es5` with `wikimedia/client`. Change-Id: If08467d8d923cfd7d7e9472666f1d23406692c2c --- .eslintrc.json | 5 ++- Gruntfile.js | 2 +- composer.json | 2 +- package-lock.json | 33 ++++++++------- package.json | 2 +- resources/manage.js | 42 +++++++++---------- resources/validation.js | 90 ++++++++++++++++++++--------------------- 7 files changed, 90 insertions(+), 86 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 115c8ff..de60734 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,13 +1,14 @@ { "root": true, "extends": [ - "wikimedia/client-es5", + "wikimedia/client", "wikimedia/mediawiki" ], "rules": { "camelcase": "off", "no-alert": "off", "no-undef": "off", - "no-unused-vars": "off" + "no-unused-vars": "off", + "no-var": "warn" } } diff --git a/Gruntfile.js b/Gruntfile.js index d2e7a8f..159b532 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,6 +1,6 @@ /* eslint-env node, es6 */ module.exports = function ( grunt ) { - var conf = grunt.file.readJSON( 'extension.json' ); + const conf = grunt.file.readJSON( 'extension.json' ); grunt.loadNpmTasks( 'grunt-banana-checker' ); grunt.loadNpmTasks( 'grunt-eslint' ); diff --git a/composer.json b/composer.json index 4a82507..b070910 100644 --- a/composer.json +++ b/composer.json @@ -5,7 +5,7 @@ "phpoffice/phpspreadsheet": "^1.29" }, "require-dev": { - "mediawiki/mediawiki-codesniffer": "46.0.0", + "mediawiki/mediawiki-codesniffer": "47.0.0", "mediawiki/mediawiki-phan-config": "0.15.1", "mediawiki/minus-x": "1.1.3", "php-parallel-lint/php-console-highlighter": "1.0.0", diff --git a/package-lock.json b/package-lock.json index 5f55465..6ccf1ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "CIForms", "devDependencies": { - "eslint-config-wikimedia": "0.28.2", + "eslint-config-wikimedia": "0.30.0", "grunt": "1.6.1", "grunt-banana-checker": "0.13.0", "grunt-eslint": "24.3.0", @@ -1437,9 +1437,9 @@ } }, "node_modules/eslint-config-wikimedia": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.28.2.tgz", - "integrity": "sha512-5+rdnT7wH1gpKAO6tHYThg78eMhZMruJzvqku3Y5iaEY/A7kSKLFpA/vOj/snys9fKjDHC9BXmArQh+agkOoJQ==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.30.0.tgz", + "integrity": "sha512-i8ESzSoo0x3Jur/0JhAgCVPxbV51zfdI3MN3MVQPnjiFdmo21CNKmiBBmw8JnJ3fx/d5zHDrBa+yDjxSLpnDlA==", "dev": true, "dependencies": { "browserslist-config-wikimedia": "^0.7.0", @@ -1452,13 +1452,16 @@ "eslint-plugin-mediawiki": "^0.7.0", "eslint-plugin-mocha": "^10.4.3", "eslint-plugin-n": "^17.7.0", - "eslint-plugin-no-jquery": "^3.0.1", + "eslint-plugin-no-jquery": "^3.1.1", "eslint-plugin-qunit": "^8.1.1", "eslint-plugin-security": "^1.7.1", "eslint-plugin-unicorn": "^53.0.0", "eslint-plugin-vue": "^9.26.0", "eslint-plugin-wdio": "^8.24.12", "eslint-plugin-yml": "^1.14.0" + }, + "engines": { + "node": ">=18 <23" } }, "node_modules/eslint-plugin-compat": { @@ -1656,9 +1659,9 @@ } }, "node_modules/eslint-plugin-no-jquery": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.0.2.tgz", - "integrity": "sha512-n/+6p6PFhWDNPVLJj1463hw4OTIRBbROGcbhmtOHTgw7yihSKzkwZiQ00EJTneyeR3jRiw5lpWSMCCBhtb8t2g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.1.1.tgz", + "integrity": "sha512-LTLO3jH/Tjr1pmxCEqtV6qmt+OChv8La4fwgG470JRpgxyFF4NOzoC9CRy92GIWD3Yjl0qLEgPmD2FLQWcNEjg==", "dev": true, "peerDependencies": { "eslint": ">=8.0.0" @@ -6010,9 +6013,9 @@ } }, "eslint-config-wikimedia": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.28.2.tgz", - "integrity": "sha512-5+rdnT7wH1gpKAO6tHYThg78eMhZMruJzvqku3Y5iaEY/A7kSKLFpA/vOj/snys9fKjDHC9BXmArQh+agkOoJQ==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.30.0.tgz", + "integrity": "sha512-i8ESzSoo0x3Jur/0JhAgCVPxbV51zfdI3MN3MVQPnjiFdmo21CNKmiBBmw8JnJ3fx/d5zHDrBa+yDjxSLpnDlA==", "dev": true, "requires": { "browserslist-config-wikimedia": "^0.7.0", @@ -6025,7 +6028,7 @@ "eslint-plugin-mediawiki": "^0.7.0", "eslint-plugin-mocha": "^10.4.3", "eslint-plugin-n": "^17.7.0", - "eslint-plugin-no-jquery": "^3.0.1", + "eslint-plugin-no-jquery": "^3.1.1", "eslint-plugin-qunit": "^8.1.1", "eslint-plugin-security": "^1.7.1", "eslint-plugin-unicorn": "^53.0.0", @@ -6160,9 +6163,9 @@ } }, "eslint-plugin-no-jquery": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.0.2.tgz", - "integrity": "sha512-n/+6p6PFhWDNPVLJj1463hw4OTIRBbROGcbhmtOHTgw7yihSKzkwZiQ00EJTneyeR3jRiw5lpWSMCCBhtb8t2g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.1.1.tgz", + "integrity": "sha512-LTLO3jH/Tjr1pmxCEqtV6qmt+OChv8La4fwgG470JRpgxyFF4NOzoC9CRy92GIWD3Yjl0qLEgPmD2FLQWcNEjg==", "dev": true, "requires": {} }, diff --git a/package.json b/package.json index 94734e7..ea293b4 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "test": "grunt test" }, "devDependencies": { - "eslint-config-wikimedia": "0.28.2", + "eslint-config-wikimedia": "0.30.0", "grunt": "1.6.1", "grunt-banana-checker": "0.13.0", "grunt-eslint": "24.3.0", diff --git a/resources/manage.js b/resources/manage.js index 1b105f9..b57e531 100644 --- a/resources/manage.js +++ b/resources/manage.js @@ -19,18 +19,18 @@ * @copyright Copyright © 2021-2024, https://wikisphere.org */ -$( document ).ready( function () { +$( document ).ready( () => { // display every 3 days if ( !mw.cookie.get( 'ciforms-check-latest-version' ) ) { - mw.loader.using( 'mediawiki.api', function () { + mw.loader.using( 'mediawiki.api', () => { new mw.Api() .postWithToken( 'csrf', { action: 'ciforms-check-latest-version' } ) - .done( function ( res ) { + .done( ( res ) => { if ( 'ciforms-check-latest-version' in res ) { if ( res[ 'ciforms-check-latest-version' ].result === 2 ) { - var messageWidget = new OO.ui.MessageWidget( { + const messageWidget = new OO.ui.MessageWidget( { type: 'warning', label: new OO.ui.HtmlSnippet( mw.msg( 'ciforms-jsmodule-outdated-version' ) @@ -38,8 +38,8 @@ $( document ).ready( function () { // *** this does not work before ooui v0.43.0 showClose: true } ); - var closeFunction = function () { - var three_days = 3 * 86400; + const closeFunction = function () { + const three_days = 3 * 86400; mw.cookie.set( 'ciforms-check-latest-version', true, { path: '/', expires: three_days @@ -59,7 +59,7 @@ $( document ).ready( function () { messageWidget.$element.addClass( 'oo-ui-messageWidget-showClose' ); - var closeButton = new OO.ui.ButtonWidget( { + const closeButton = new OO.ui.ButtonWidget( { classes: [ 'oo-ui-messageWidget-close' ], framed: false, icon: 'close', @@ -80,20 +80,20 @@ $( document ).ready( function () { // var checkBox = OO.ui.infuse( $( this ) ); // } ); - var selected = false; - $( '#ci-forms-manage-pager-button-select-all' ).on( 'click', function ( evt ) { + let selected = false; + $( '#ci-forms-manage-pager-button-select-all' ).on( 'click', ( evt ) => { selected = !selected; $( '.ciforms-manage-button-select' ).each( function () { // @see https://www.mediawiki.org/wiki/OOUI/Using_OOUI_in_MediaWiki - var checkBox = OO.ui.infuse( $( this ) ); + const checkBox = OO.ui.infuse( $( this ) ); checkBox.setSelected( selected ); } ); } ); - $( '#ci-forms-manage-pager-button-delete-selected' ).on( 'click', function ( evt ) { - var arr = []; + $( '#ci-forms-manage-pager-button-delete-selected' ).on( 'click', ( evt ) => { + const arr = []; $( '.ciforms-manage-button-select' ).each( function () { - var checkBox = OO.ui.infuse( $( this ) ); + const checkBox = OO.ui.infuse( $( this ) ); if ( checkBox.isSelected() ) { arr.push( checkBox.getData().id ); } @@ -107,8 +107,8 @@ $( document ).ready( function () { return false; } - var url = window.location.href; - var form = $( '<form>', { + const url = window.location.href; + const form = $( '<form>', { action: window.location.href, method: 'POST' // 'target': '_top' @@ -122,11 +122,11 @@ $( document ).ready( function () { } ); $( '.ciforms-manage-button-export' ).each( function () { - var $buttonExport = $( this ); + const $buttonExport = $( this ); - var href = $buttonExport.data().ooui.href; + const href = $buttonExport.data().ooui.href; - var buttonMenu = new OO.ui.ButtonMenuSelectWidget( { + const buttonMenu = new OO.ui.ButtonMenuSelectWidget( { label: mw.msg( 'ci-forms-manage-pager-button-export' ), icon: 'menu', flags: [ 'progressive', 'primary' ], @@ -144,14 +144,14 @@ $( document ).ready( function () { } } ); - var panelLayout = new OO.ui.PanelLayout( { + const panelLayout = new OO.ui.PanelLayout( { padded: false, expanded: false, classes: [ 'ci-forms-manage-pager-panel-layout' ] } ); - buttonMenu.getMenu().on( 'choose', function ( menuOption ) { - var data = menuOption.getData(); + buttonMenu.getMenu().on( 'choose', ( menuOption ) => { + const data = menuOption.getData(); window.location.assign( href.replace( 'format=csv', 'format=' + data ) ); } ); diff --git a/resources/validation.js b/resources/validation.js index d6c7e5b..665749f 100644 --- a/resources/validation.js +++ b/resources/validation.js @@ -19,12 +19,12 @@ * @copyright Copyright © 2021-2024, https://wikisphere.org */ -$( function () { - var msg1 = mw.config.get( 'ci-forms-validation-msg1' ); - var msg2 = mw.config.get( 'ci-forms-validation-msg2' ); +$( () => { + const msg1 = mw.config.get( 'ci-forms-validation-msg1' ); + const msg2 = mw.config.get( 'ci-forms-validation-msg2' ); // var msg3 = mw.config.get( 'ci-forms-validation-msg3' ); - var currentSection = {}; + const currentSection = {}; function escape( s ) { return String( s ) @@ -35,29 +35,29 @@ $( function () { .replace( />/g, '\x3E' ); } - var site_key = mw.config.get( 'ci_forms_google_recaptcha_site_key' ); + const site_key = mw.config.get( 'ci_forms_google_recaptcha_site_key' ); // @see https://www.mediawiki.org/wiki/Topic:Y2pfh94nkkqzsjw3 function executeRecaptchaValidation() { mw.loader .getScript( 'https://www.google.com/recaptcha/api.js?render=' + site_key ) .then( - function () { + () => { if ( $( 'input[name="g-recaptcha-response"]' ).length ) { - grecaptcha.ready( function () { + grecaptcha.ready( () => { grecaptcha .execute( site_key, { action: 'validate_captcha' } ) - .then( function ( token ) { + .then( ( token ) => { $( 'input[name="g-recaptcha-response"]' ).val( token ); } ) - .catch( function ( error ) { + .catch( ( error ) => { // eslint-disable-next-line no-console console.log( error ); } ); } ); } }, - function ( e ) { + ( e ) => { mw.log.error( e.message ); } ); @@ -71,7 +71,7 @@ $( function () { } $( '.ci_form' ).each( function ( index ) { - var paging = $( this ) + const paging = $( this ) .find( 'input[type=hidden][name=form_paging]' ) .first() .val(); @@ -92,19 +92,19 @@ $( function () { } ); $( '.ci_form li' ).each( function ( index ) { - var el = this; - var section_el = $( this ).closest( '.ci_form_section' ); - var radioForCheckboxes = $( section_el ) + const el = this; + const section_el = $( this ).closest( '.ci_form_section' ); + const radioForCheckboxes = $( section_el ) .find( '.radio_for_required_checkboxes' ) .first(); - var max_answers = $( section_el ) + const max_answers = $( section_el ) .find( 'input[type=hidden][name$=_multiple-choice-max-answers]' ) .val(); $( this ) .find( 'input[type=text]' ) .on( 'click', function () { - var count = $( section_el ).find( 'input[type=checkbox]:checked' ).length; + const count = $( section_el ).find( 'input[type=checkbox]:checked' ).length; if ( count > max_answers ) { alert( msg1.replace( '$1', max_answers ) ); @@ -123,8 +123,8 @@ $( function () { $( this ) .find( 'input[type=checkbox]' ) - .on( 'click', function () { - var count = $( section_el ).find( 'input[type=checkbox]:checked' ).length; + .on( 'click', () => { + const count = $( section_el ).find( 'input[type=checkbox]:checked' ).length; if ( count > max_answers ) { alert( msg1.replace( '$1', max_answers ) ); @@ -136,14 +136,14 @@ $( function () { // https://stackoverflow.com/questions/15031513/jquery-help-to-enforce-maxlength-on-textarea $( '.ci_form textarea[maxlength]' ).on( 'keyup', function () { - var limit = parseInt( $( this ).attr( 'maxlength' ) ); - var text = $( this ).val(); - var chars = text.length; + const limit = parseInt( $( this ).attr( 'maxlength' ) ); + const text = $( this ).val(); + const chars = text.length; $( this ) .parents() .each( function () { - var span = $( this ) + const span = $( this ) .find( '.ci_form_section_inputs_textarea_maxlength' ) .first(); @@ -153,7 +153,7 @@ $( function () { } ); if ( chars > limit ) { - var new_text = text.slice( 0, Math.max( 0, limit ) ); + const new_text = text.slice( 0, Math.max( 0, limit ) ); $( this ).val( new_text ); } } ); @@ -168,16 +168,16 @@ $( function () { // is triggered after the native validation $( '.ci_form input[type=radio]' ).on( 'click', function () { - var section_el = $( this ).closest( '.ci_form_section' ); + const section_el = $( this ).closest( '.ci_form_section' ); $( section_el ) .find( 'li' ) .each( function () { - var el = this; + const el = this; $( this ) .find( 'input[type=radio][name$=_selected]:checked' ) - .each( function () { + .each( () => { $( el ) .find( 'input[type=text][data-required="1"]' ) .prop( 'required', true ); @@ -185,23 +185,23 @@ $( function () { $( this ) .find( 'input[type=radio][name$=_selected]:not(:checked)' ) - .each( function () { + .each( () => { $( el ).find( 'input[type=text]' ).removeAttr( 'required' ); } ); } ); } ); $( '.ci_form input[type=checkbox]' ).on( 'click', function () { - var section_el = $( this ).closest( '.ci_form_section' ); + const section_el = $( this ).closest( '.ci_form_section' ); $( section_el ) .find( 'li' ) .each( function () { - var el = this; + const el = this; $( this ) .find( 'input[type=checkbox][name$=_selected]:checked' ) - .each( function () { + .each( () => { $( el ) .find( 'input[type=text][data-required="1"]' ) .prop( 'required', true ); @@ -209,16 +209,16 @@ $( function () { $( this ) .find( 'input[type=checkbox][name$=_selected]:not(:checked)' ) - .each( function () { + .each( () => { $( el ).find( 'input[type=text]' ).removeAttr( 'required' ); } ); } ); } ); $( '.ci_form_section_submit button' ).on( 'click', function ( evt ) { - var form_el = $( this ).closest( '.ci_form' ); + const form_el = $( this ).closest( '.ci_form' ); - var next = $( this ).prop( 'class' ).indexOf( 'next' ) !== -1; + const next = $( this ).prop( 'class' ).includes( 'next' ); if ( next ) { return; @@ -226,10 +226,10 @@ $( function () { form_el.get( 0 ).scrollIntoView(); - var index = form_el.data( 'form-index' ); - var current_section = currentSection[ index ] + ( next ? 1 : -1 ); + const index = form_el.data( 'form-index' ); + const current_section = currentSection[ index ] + ( next ? 1 : -1 ); - var count = + const count = $( form_el ).find( "[class^='ci_form_section_display_']" ).length - 1; // $(form_el).find(".ci_form_section").length - 1; @@ -272,16 +272,16 @@ $( function () { } ); $( '.ci_form' ).on( 'submit', function ( evt ) { - var form_el = $( this ); + const form_el = $( this ); form_el.get( 0 ).scrollIntoView(); - var paging = $( this ) + const paging = $( this ) .find( 'input[type=hidden][name=form_paging]' ) .first() .val(); - var index, current_section, count; + let index, current_section, count; if ( paging && paging !== 'false' ) { index = form_el.data( 'form-index' ); @@ -291,7 +291,7 @@ $( function () { // $(form_el).find(".ci_form_section").length - 1; } - var preventSubmit = false; + let preventSubmit = false; $( this ) .find( ( paging && paging !== 'false' ? @@ -299,15 +299,15 @@ $( function () { '' ) + '.ci_form_section' ) .each( function () { - var section_type = $( this ) + const section_type = $( this ) .find( 'input[type=hidden][name$=_section_type]' ) .val(); - var min_answers = $( this ) + const min_answers = $( this ) .find( 'input[type=hidden][name$=_multiple-choice-min-answers]' ) .val(); - var question_name = $( this ).find( '.ci_form_section_title' ).text(); + let question_name = $( this ).find( '.ci_form_section_title' ).text(); if ( !question_name ) { question_name = $( form_el ).find( '.ci_form_title' ).text(); @@ -321,7 +321,7 @@ $( function () { $( this ) .find( 'input[type=text][name$=_value]' ) .each( function () { - var val = $( this ).val().trim(); + const val = $( this ).val().trim(); if ( val !== '' && val !== null ) { filledIn++; @@ -345,7 +345,7 @@ $( function () { case 'multiple choice': if ( min_answers ) { - var checked = $( this ).find( + const checked = $( this ).find( 'input[type=checkbox][name$=_selected]:checked' ).length; if ( checked < min_answers ) { -- 2.39.5 --- end ---