This run took 58 seconds.
From eea91b9f618e73f227c93e596634c8935b002727 Mon Sep 17 00:00:00 2001 From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org> Date: Thu, 11 Apr 2024 10:46:43 +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: 41.0.0 → 43.0.0 The following sniffs are failing and were disabled: * Generic.CodeAnalysis.AssignmentInCondition.Found * Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition The following sniffs now pass and were enabled: * MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures * mediawiki/mediawiki-phan-config: 0.12.1 → 0.14.0 npm: * grunt-banana-checker: 0.11.0 → 0.11.1 * grunt-eslint: 24.0.1 → 24.3.0 * eslint-plugin-compat: 4.0.2 → 4.2.0 * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw * semver: 5.7.1, 6.3.0, 7.3.5, 7.3.8 → 5.7.2, 6.3.1, 7.6.0 * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw Change-Id: Ibd05bbab658e9e1982bc91276239b31686e5afb7 --- .phpcs.xml | 3 +- composer.json | 7 +- includes/PF_AutoeditAPI.php | 4 +- includes/PF_FormField.php | 2 +- includes/PF_FormLinker.php | 2 +- includes/PF_FormPrinter.php | 32 +- includes/PF_Hooks.php | 2 +- includes/PF_MappingUtils.php | 2 +- includes/PF_PageSection.php | 24 +- includes/PF_Template.php | 4 +- includes/PF_TemplateInForm.php | 4 +- includes/PF_ValuesUtils.php | 6 +- includes/forminputs/PF_ComboBoxInput.php | 2 +- includes/forminputs/PF_DateInput.php | 2 +- includes/forminputs/PF_DatePickerInput.php | 2 +- includes/forminputs/PF_DateTimePicker.php | 2 +- includes/forminputs/PF_LeafletInput.php | 2 +- includes/forminputs/PF_OpenLayersInput.php | 2 +- includes/forminputs/PF_TokensInput.php | 2 +- .../parserfunctions/PF_TemplateDisplay.php | 2 +- .../parserfunctions/PF_TemplateParams.php | 2 +- package-lock.json | 650 +++++++++--------- package.json | 4 +- specials/PF_CreateForm.php | 2 +- specials/PF_CreateTemplate.php | 2 +- specials/PF_RunQuery.php | 2 +- specials/PF_UploadWindow.php | 88 +-- .../includes/PFFormPrinterTest.php | 6 +- .../forminputs/PFRadioButtonInputTest.php | 6 +- 29 files changed, 430 insertions(+), 440 deletions(-) diff --git a/.phpcs.xml b/.phpcs.xml index 3e3cf53..d5853e8 100644 --- a/.phpcs.xml +++ b/.phpcs.xml @@ -1,6 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <ruleset> <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki"> + <exclude name="Generic.CodeAnalysis.AssignmentInCondition.Found" /> + <exclude name="Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition" /> <exclude name="Generic.Files.LineLength.TooLong" /> <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate" /> <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" /> @@ -9,7 +11,6 @@ <exclude name="MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationProtected" /> <exclude name="MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPublic" /> <exclude name="MediaWiki.Commenting.PropertyDocumentation.MissingVar" /> - <exclude name="MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures" /> <exclude name="MediaWiki.Files.ClassMatchesFilename.NotMatch" /> <exclude name="MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgTitle" /> <exclude name="MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage" /> diff --git a/composer.json b/composer.json index 78e2d88..c60ea6f 100644 --- a/composer.json +++ b/composer.json @@ -34,8 +34,8 @@ } }, "require-dev": { - "mediawiki/mediawiki-codesniffer": "41.0.0", - "mediawiki/mediawiki-phan-config": "0.12.1", + "mediawiki/mediawiki-codesniffer": "43.0.0", + "mediawiki/mediawiki-phan-config": "0.14.0", "mediawiki/minus-x": "1.1.1", "php-parallel-lint/php-console-highlighter": "1.0.0", "php-parallel-lint/php-parallel-lint": "1.3.2" @@ -56,7 +56,8 @@ }, "config": { "allow-plugins": { - "composer/installers": true + "composer/installers": true, + "dealerdirect/phpcodesniffer-composer-installer": true } } } diff --git a/includes/PF_AutoeditAPI.php b/includes/PF_AutoeditAPI.php index 74f0162..d63068f 100644 --- a/includes/PF_AutoeditAPI.php +++ b/includes/PF_AutoeditAPI.php @@ -940,7 +940,7 @@ class PFAutoeditAPI extends ApiBase { $wgRequest = new FauxRequest( $this->mOptions, true, $session ); // Call PFFormPrinter::formHTML() to get at the form // HTML of the existing page. - list( $formHTML, $targetContent, $form_page_title, $generatedTargetNameFormula ) = + [ $formHTML, $targetContent, $form_page_title, $generatedTargetNameFormula ] = $wgPageFormsFormPrinter->formHTML( // Special handling for autoedit edits - // otherwise, multi-instance templates @@ -976,7 +976,7 @@ class PFAutoeditAPI extends ApiBase { // Spoof $wgRequest for PFFormPrinter::formHTML(). $session = RequestContext::getMain()->getRequest()->getSession(); $wgRequest = new FauxRequest( $this->mOptions, true, $session ); - list( $formHTML, $targetContent, $generatedFormName, $generatedTargetNameFormula ) = + [ $formHTML, $targetContent, $generatedFormName, $generatedTargetNameFormula ] = $wgPageFormsFormPrinter->formHTML( $formContent, $isFormSubmitted, $pageExists, $formArticleId, $preloadContent, $targetName, $targetNameFormula, diff --git a/includes/PF_FormField.php b/includes/PF_FormField.php index 1f26012..a946bea 100644 --- a/includes/PF_FormField.php +++ b/includes/PF_FormField.php @@ -789,7 +789,7 @@ class PFFormField { if ( $fullCargoField != null ) { // It's inefficient to get these values via // text parsing, but oh well. - list( $cargo_table, $cargo_field ) = explode( '|', $fullCargoField, 2 ); + [ $cargo_table, $cargo_field ] = explode( '|', $fullCargoField, 2 ); $text .= Html::hidden( 'input_' . $wgPageFormsFieldNum . '_unique_cargo_table', $cargo_table ); $text .= Html::hidden( 'input_' . $wgPageFormsFieldNum . '_unique_cargo_field', $cargo_field ); } diff --git a/includes/PF_FormLinker.php b/includes/PF_FormLinker.php index d0ca5e5..cc8252d 100644 --- a/includes/PF_FormLinker.php +++ b/includes/PF_FormLinker.php @@ -47,7 +47,7 @@ class PFFormLinker { // Allow outside code to set/change the preloaded text. MediaWikiServices::getInstance()->getHookContainer()->run( 'PageForms::EditFormPreloadText', [ &$preloadContent, $title, $formTitle ] ); - list( $formText, $pageText, $formPageTitle, $generatedPageName ) = + [ $formText, $pageText, $formPageTitle, $generatedPageName ] = $wgPageFormsFormPrinter->formHTML( $formDefinition, false, false, null, $preloadContent, 'Some very long page name that will hopefully never get created ABCDEF123', diff --git a/includes/PF_FormPrinter.php b/includes/PF_FormPrinter.php index 2345840..beb1f85 100644 --- a/includes/PF_FormPrinter.php +++ b/includes/PF_FormPrinter.php @@ -566,7 +566,7 @@ END; $inputType = $formField->getInputType(); $gridParamValues = [ 'name' => $templateField->getFieldName() ]; - list( $autocompletedatatype, $autocompletesettings ) = $this->getSpreadsheetAutocompleteAttributes( $formFieldArgs ); + [ $autocompletedatatype, $autocompletesettings ] = $this->getSpreadsheetAutocompleteAttributes( $formFieldArgs ); if ( $formField->getLabel() !== null ) { $gridParamValues['label'] = $formField->getLabel(); } @@ -1309,12 +1309,12 @@ END; $mappingCargoTable = $form_field->getFieldArg( 'mapping cargo table' ); $mappingCargoField = $form_field->getFieldArg( 'mapping cargo field' ); $mappingCargoValueField = $form_field->getFieldArg( 'mapping cargo value field' ); - if ( !$form_submitted && $cur_value !== null && $cur_value !== '' ) { - $cur_value = $this->getCargoBasedMapping( $cur_value, $mappingCargoTable, $mappingCargoField, $mappingCargoValueField, $form_field ); - } - if ( $form_submitted && $cur_value_in_template !== null && $cur_value_in_template !== '' ) { - $cur_value_in_template = $this->getCargoBasedMapping( $cur_value_in_template, $mappingCargoTable, $mappingCargoValueField, $mappingCargoField, $form_field ); - } + if ( !$form_submitted && $cur_value !== null && $cur_value !== '' ) { + $cur_value = $this->getCargoBasedMapping( $cur_value, $mappingCargoTable, $mappingCargoField, $mappingCargoValueField, $form_field ); + } + if ( $form_submitted && $cur_value_in_template !== null && $cur_value_in_template !== '' ) { + $cur_value_in_template = $this->getCargoBasedMapping( $cur_value_in_template, $mappingCargoTable, $mappingCargoValueField, $mappingCargoField, $form_field ); + } } if ( $cur_value !== '' && ( $form_field->hasFieldArg( 'mapping template' ) || @@ -1465,15 +1465,15 @@ END; } } elseif ( count( $sub_components ) == 2 ) { switch ( $sub_components[0] ) { - case 'label': - $input_label = self::getParsedValue( $parser, $sub_components[1] ); - break; - case 'class': - $attr['class'] = $sub_components[1]; - break; - case 'style': - $attr['style'] = Sanitizer::checkCSS( $sub_components[1] ); - break; + case 'label': + $input_label = self::getParsedValue( $parser, $sub_components[1] ); + break; + case 'class': + $attr['class'] = $sub_components[1]; + break; + case 'style': + $attr['style'] = Sanitizer::checkCSS( $sub_components[1] ); + break; } } } diff --git a/includes/PF_Hooks.php b/includes/PF_Hooks.php index bc48a26..6515bda 100644 --- a/includes/PF_Hooks.php +++ b/includes/PF_Hooks.php @@ -347,7 +347,7 @@ class PFHooks { '<div id="pfForm" class="previewnote" style="font-weight: bold">' . $previewNote . "</div>\n<hr />\n"; $form_definition = StringUtils::delimiterReplace( '<noinclude>', '</noinclude>', '', $editpage->textbox1 ); - list( $form_text, $data_text, $form_page_title, $generated_page_name ) = + [ $form_text, $data_text, $form_page_title, $generated_page_name ] = $wgPageFormsFormPrinter->formHTML( $form_definition, null, false, null, null, "Page Forms form preview dummy title", null ); $parserOutput = PFUtils::getParser()->getOutput(); diff --git a/includes/PF_MappingUtils.php b/includes/PF_MappingUtils.php index 35e5d97..3a64585 100644 --- a/includes/PF_MappingUtils.php +++ b/includes/PF_MappingUtils.php @@ -404,7 +404,7 @@ class PFMappingUtils { * @return string */ private static function removeNSPrefixFromLabel( string $label ) { - $labelArr = explode( ':', trim( $label ) ); + $labelArr = explode( ':', trim( $label ) ); if ( count( $labelArr ) > 1 ) { $prefix = array_shift( $labelArr ); $res = implode( ':', $labelArr ); diff --git a/includes/PF_PageSection.php b/includes/PF_PageSection.php index 591541e..5737954 100644 --- a/includes/PF_PageSection.php +++ b/includes/PF_PageSection.php @@ -48,18 +48,18 @@ class PFPageSection { if ( count( $sub_components ) === 2 ) { switch ( $sub_components[0] ) { - case 'level': - $ps->mSectionLevel = $sub_components[1]; - break; - case 'rows': - case 'cols': - case 'class': - case 'editor': - case 'placeholder': - $ps->mSectionArgs[$sub_components[0]] = $sub_components[1]; - break; - default: - // Ignore unknown + case 'level': + $ps->mSectionLevel = $sub_components[1]; + break; + case 'rows': + case 'cols': + case 'class': + case 'editor': + case 'placeholder': + $ps->mSectionArgs[$sub_components[0]] = $sub_components[1]; + break; + default: + // Ignore unknown } } } diff --git a/includes/PF_Template.php b/includes/PF_Template.php index 6176438..0a8c5e2 100644 --- a/includes/PF_Template.php +++ b/includes/PF_Template.php @@ -242,7 +242,7 @@ class PFTemplate { // First, get the table name, and fields, declared for this // template, if any. - list( $tableName, $tableSchema ) = $this->getCargoTableAndSchema( $templateTitle ); + [ $tableName, $tableSchema ] = $this->getCargoTableAndSchema( $templateTitle ); if ( $tableName == null ) { $fieldDescriptions = []; } else { @@ -365,7 +365,7 @@ class PFTemplate { if ( $tableSchemaString === null ) { // There's no declared table - but see if there's an // attached table. - list( $tableName, $isDeclared ) = CargoUtils::getTableNameForTemplate( $templateTitle ); + [ $tableName, $isDeclared ] = CargoUtils::getTableNameForTemplate( $templateTitle ); if ( $tableName == null ) { return [ null, null ]; } diff --git a/includes/PF_TemplateInForm.php b/includes/PF_TemplateInForm.php index c31b717..02fe94e 100644 --- a/includes/PF_TemplateInForm.php +++ b/includes/PF_TemplateInForm.php @@ -78,7 +78,7 @@ class PFTemplateInForm { $tif->mAddButtonText = wfMessage( 'pf_formedit_addanother' )->text(); if ( array_key_exists( $tif->mTemplateName, $wgPageFormsEmbeddedTemplates ) ) { - list( $tif->mEmbedInTemplate, $tif->mEmbedInField ) = + [ $tif->mEmbedInTemplate, $tif->mEmbedInField ] = $wgPageFormsEmbeddedTemplates[$tif->mTemplateName]; $tif->mPlaceholder = PFFormPrinter::placeholderFormat( $tif->mEmbedInTemplate, $tif->mEmbedInField ); } @@ -381,7 +381,7 @@ class PFTemplateInForm { [ '<nowiki', 'nowiki>' ] ]; foreach ( $startAndEndTags as $tags ) { - list( $startTag, $endTag ) = $tags; + [ $startTag, $endTag ] = $tags; $startTagLoc = -1; while ( ( $startTagLoc + strlen( $startTag ) < strlen( $str ) ) && diff --git a/includes/PF_ValuesUtils.php b/includes/PF_ValuesUtils.php index 9851815..d3b3f47 100644 --- a/includes/PF_ValuesUtils.php +++ b/includes/PF_ValuesUtils.php @@ -661,7 +661,7 @@ SERVICE wikibase:label { bd:serviceParam wikibase:language \"" . $wgLanguageCode if ( count( $arr ) == 3 ) { $names_array = self::getValuesForCargoField( $arr[0], $arr[1], $arr[2] ); } else { - list( $table_name, $field_name ) = explode( '|', $source_name, 2 ); + [ $table_name, $field_name ] = explode( '|', $source_name, 2 ); $names_array = self::getAllValuesForCargoField( $table_name, $field_name ); } // Remove blank/null values from the array. @@ -794,7 +794,7 @@ SERVICE wikibase:label { bd:serviceParam wikibase:language \"" . $wgLanguageCode * @return string[] */ public static function setAutocompleteValues( $field_args, $is_list ) { - list( $autocompleteFieldType, $autocompletionSource ) = + [ $autocompleteFieldType, $autocompletionSource ] = self::getAutocompletionTypeAndSource( $field_args ); $autocompleteSettings = $autocompletionSource; if ( $is_list ) { @@ -912,7 +912,7 @@ SERVICE wikibase:label { bd:serviceParam wikibase:language \"" . $wgLanguageCode $rawQuery = $rawQuery . "|named args=yes|link=none|limit=$wgPageFormsMaxAutocompleteValues|searchlabel="; $rawQueryArray = explode( "|", $rawQuery ); - list( $queryString, $processedParams, $printouts ) = SMWQueryProcessor::getComponentsFromFunctionParams( $rawQueryArray, false ); + [ $queryString, $processedParams, $printouts ] = SMWQueryProcessor::getComponentsFromFunctionParams( $rawQueryArray, false ); SMWQueryProcessor::addThisPrintout( $printouts, $processedParams ); $processedParams = SMWQueryProcessor::getProcessedParams( $processedParams, $printouts ); diff --git a/includes/forminputs/PF_ComboBoxInput.php b/includes/forminputs/PF_ComboBoxInput.php index b220c30..64278df 100644 --- a/includes/forminputs/PF_ComboBoxInput.php +++ b/includes/forminputs/PF_ComboBoxInput.php @@ -98,7 +98,7 @@ class PFComboBoxInput extends PFFormInput { } } } else { - list( $autocompleteSettings, $remoteDataType, $delimiter ) = PFValuesUtils::setAutocompleteValues( $other_args, false ); + [ $autocompleteSettings, $remoteDataType, $delimiter ] = PFValuesUtils::setAutocompleteValues( $other_args, false ); $autocompleteSettings = str_replace( "'", "\'", $autocompleteSettings ); } diff --git a/includes/forminputs/PF_DateInput.php b/includes/forminputs/PF_DateInput.php index c5801c4..ac301eb 100644 --- a/includes/forminputs/PF_DateInput.php +++ b/includes/forminputs/PF_DateInput.php @@ -174,7 +174,7 @@ class PFDateInput extends PFFormInput { $month = $date['month']; $day = $date['day']; } else { - list( $year, $month, $day ) = self::parseDate( $date ); + [ $year, $month, $day ] = self::parseDate( $date ); } } else { // Just keep everything at null. diff --git a/includes/forminputs/PF_DatePickerInput.php b/includes/forminputs/PF_DatePickerInput.php index 6d1f575..ea7283c 100644 --- a/includes/forminputs/PF_DatePickerInput.php +++ b/includes/forminputs/PF_DatePickerInput.php @@ -30,7 +30,7 @@ class PFDatePickerInput extends PFFormInput { */ public function __construct( $input_number, $cur_value, $input_name, $disabled, array $other_args ) { if ( $cur_value != '' ) { - list( $year, $month, $day ) = PFDateInput::parseDate( $cur_value ); + [ $year, $month, $day ] = PFDateInput::parseDate( $cur_value ); $cur_value = sprintf( '%04d-%02d-%02d', $year, $month, $day ); } diff --git a/includes/forminputs/PF_DateTimePicker.php b/includes/forminputs/PF_DateTimePicker.php index 75fd4ca..097271d 100644 --- a/includes/forminputs/PF_DateTimePicker.php +++ b/includes/forminputs/PF_DateTimePicker.php @@ -30,7 +30,7 @@ class PFDateTimePicker extends PFFormInput { */ public function __construct( $input_number, $cur_value, $input_name, $disabled, array $other_args ) { if ( $cur_value != '' ) { - list( $year, $month, $day, $time ) = PFDateInput::parseDate( $cur_value, true ); + [ $year, $month, $day, $time ] = PFDateInput::parseDate( $cur_value, true ); $cur_value = sprintf( '%04d-%02d-%02dT%sZ', $year, $month, $day, $time ); } parent::__construct( $input_number, $cur_value, $input_name, $disabled, $other_args ); diff --git a/includes/forminputs/PF_LeafletInput.php b/includes/forminputs/PF_LeafletInput.php index 10b695a..bbee11a 100644 --- a/includes/forminputs/PF_LeafletInput.php +++ b/includes/forminputs/PF_LeafletInput.php @@ -51,7 +51,7 @@ class PFLeafletInput extends PFOpenLayersInput { $imagePage = new ImagePage( $fileTitle ); $file = $imagePage->getDisplayedFile(); $filePath = $wgUploadDirectory . '/' . $file->getUrlRel(); - list( $imageWidth, $imageHeight, $type, $attr ) = getimagesize( $filePath ); + [ $imageWidth, $imageHeight, $type, $attr ] = getimagesize( $filePath ); if ( !array_key_exists( 'height', $other_args ) && !array_key_exists( 'width', $other_args ) ) { // Scale down image if it's huge. $maxDimension = max( $imageHeight, $imageWidth ); diff --git a/includes/forminputs/PF_OpenLayersInput.php b/includes/forminputs/PF_OpenLayersInput.php index b4076ae..cbc4a35 100644 --- a/includes/forminputs/PF_OpenLayersInput.php +++ b/includes/forminputs/PF_OpenLayersInput.php @@ -278,7 +278,7 @@ class PFOpenLayersInput extends PFFormInput { if ( count( $latAndLonStrings ) != 2 ) { throw new MWException( "Error parsing coordinates string: \"$coordinatesString\"." ); } - list( $latString, $lonString ) = $latAndLonStrings; + [ $latString, $lonString ] = $latAndLonStrings; // Handle strings one at a time. $latIsNegative = false; diff --git a/includes/forminputs/PF_TokensInput.php b/includes/forminputs/PF_TokensInput.php index 8309c0a..562a15e 100644 --- a/includes/forminputs/PF_TokensInput.php +++ b/includes/forminputs/PF_TokensInput.php @@ -95,7 +95,7 @@ class PFTokensInput extends PFFormInput { $delimiter = ','; } } else { - list( $autocompleteSettings, $remoteDataType, $delimiter ) = PFValuesUtils::setAutocompleteValues( $other_args, true ); + [ $autocompleteSettings, $remoteDataType, $delimiter ] = PFValuesUtils::setAutocompleteValues( $other_args, true ); } if ( is_array( $cur_value ) ) { diff --git a/includes/parserfunctions/PF_TemplateDisplay.php b/includes/parserfunctions/PF_TemplateDisplay.php index 4418599..93f8b23 100644 --- a/includes/parserfunctions/PF_TemplateDisplay.php +++ b/includes/parserfunctions/PF_TemplateDisplay.php @@ -171,7 +171,7 @@ class PFTemplateDisplay { $mappingFormat = new CargoMapsFormat( $parser->getOutput() ); try { - list( $lat, $lon ) = CargoUtils::parseCoordinatesString( $coordinatesStr ); + [ $lat, $lon ] = CargoUtils::parseCoordinatesString( $coordinatesStr ); } catch ( MWException $e ) { return ''; } diff --git a/includes/parserfunctions/PF_TemplateParams.php b/includes/parserfunctions/PF_TemplateParams.php index 5f0df47..b4f3375 100644 --- a/includes/parserfunctions/PF_TemplateParams.php +++ b/includes/parserfunctions/PF_TemplateParams.php @@ -33,7 +33,7 @@ class PFTemplateParams { $fieldData = []; foreach ( $params as $param ) { - list( $fieldName, $fieldParams ) = self::parseWikitextString( $param ); + [ $fieldName, $fieldParams ] = self::parseWikitextString( $param ); if ( $fieldName !== '' ) { $fieldData[$fieldName] = $fieldParams; } diff --git a/package-lock.json b/package-lock.json index c55e8b2..48ed1ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,17 @@ "devDependencies": { "eslint-config-wikimedia": "0.25.0", "grunt": "1.6.1", - "grunt-banana-checker": "0.11.0", - "grunt-eslint": "24.0.1" + "grunt-banana-checker": "0.11.1", + "grunt-eslint": "24.3.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/@babel/code-frame": { @@ -109,23 +118,23 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", - "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.0", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -171,22 +180,22 @@ } }, "node_modules/@eslint/js": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", - "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -207,15 +216,15 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "node_modules/@mdn/browser-compat-data": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", - "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", + "version": "5.5.20", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.20.tgz", + "integrity": "sha512-33H+GJToNcLfMfWFdzPQIwYN/MYRQ58AAVd/hjWT0ptNiXNWeMs2JWHqv/nrfA/nONTJkAzmyh3XhRXpjYLdTw==", "dev": true }, "node_modules/@nodelib/fs.scandir": { @@ -259,6 +268,12 @@ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -266,9 +281,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -357,20 +372,14 @@ } }, "node_modules/ast-metadata-inferer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz", - "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz", + "integrity": "sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==", "dev": true, "dependencies": { - "@mdn/browser-compat-data": "^3.3.14" + "@mdn/browser-compat-data": "^5.2.34" } }, - "node_modules/ast-metadata-inferer/node_modules/@mdn/browser-compat-data": { - "version": "3.3.14", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz", - "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==", - "dev": true - }, "node_modules/async": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", @@ -412,9 +421,9 @@ } }, "node_modules/browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -424,14 +433,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -468,9 +480,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001341", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001341.tgz", - "integrity": "sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA==", + "version": "1.0.30001608", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001608.tgz", + "integrity": "sha512-cjUJTQkk9fQlJR2s4HMuPMvTiRggl0rAVMtthQuyOlDWuqHXqN8azLq+pi8B2TjwKJ32diHjUqRIKeFX4z1FoA==", "dev": true, "funding": [ { @@ -480,6 +492,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -625,17 +641,6 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "node_modules/core-js": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.5.tgz", - "integrity": "sha512-VP/xYuvJ0MJWRAobcmQ8F2H6Bsn+s7zqAAjFaHGBMc5AQm7zaelhD1LGduFn2EehEcQcU+br6t+fwbpQ5d1ZWA==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -716,9 +721,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", + "version": "1.4.733", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.733.tgz", + "integrity": "sha512-gUI9nhI2iBGF0OaYYLKOaOtliFMl+Bt1rY7VmEjwxOxqoYLub/D9xmduPEhbw2imE6gYkJKhIE5it+KE2ulVxQ==", "dev": true }, "node_modules/error-ex": { @@ -731,9 +736,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -752,27 +757,28 @@ } }, "node_modules/eslint": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", - "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.1", - "@eslint/js": "8.36.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.5.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -780,22 +786,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -833,22 +836,21 @@ } }, "node_modules/eslint-plugin-compat": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz", - "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz", + "integrity": "sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==", "dev": true, "dependencies": { - "@mdn/browser-compat-data": "^4.1.5", - "ast-metadata-inferer": "^0.7.0", - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001304", - "core-js": "^3.16.2", + "@mdn/browser-compat-data": "^5.3.13", + "ast-metadata-inferer": "^0.8.0", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001524", "find-up": "^5.0.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.5" + "lodash.memoize": "^4.1.2", + "semver": "^7.5.4" }, "engines": { - "node": ">=9.x" + "node": ">=14.x" }, "peerDependencies": { "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" @@ -894,21 +896,6 @@ "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-json-es": { "version": "1.5.7", "resolved": "https://registry.npmjs.org/eslint-plugin-json-es/-/eslint-plugin-json-es-1.5.7.tgz", @@ -1027,9 +1014,9 @@ } }, "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -1220,9 +1207,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -1230,6 +1217,9 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-utils": { @@ -1260,12 +1250,15 @@ "dev": true }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/js-yaml": { @@ -1293,14 +1286,14 @@ } }, "node_modules/espree": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", - "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1310,12 +1303,15 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -1421,7 +1417,7 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastq": { @@ -1646,9 +1642,9 @@ } }, "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1660,10 +1656,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "node_modules/grunt": { @@ -1694,9 +1690,9 @@ } }, "node_modules/grunt-banana-checker": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.11.0.tgz", - "integrity": "sha512-qXtcxu7y9GFEIx6ELm5jSf+JqvCafdco+t/YsrUhUDNe9AgCnP7X0R+PxT0qZaDftKVrDrR2gPOYqpaAye5bDw==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.11.1.tgz", + "integrity": "sha512-CF0h/TXaX9sbF2yIz+fUfJc4Zvms7XGYQ7ZYMD5+vv0LMZzSFf7JSHXDaBEs72nQWw4r4ap5fOW3baAliW+0bQ==", "dev": true, "bin": { "banana-checker": "src/cli.js" @@ -1738,13 +1734,13 @@ } }, "node_modules/grunt-eslint": { - "version": "24.0.1", - "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.0.1.tgz", - "integrity": "sha512-gFzp+ikAkwyu6nqBE2zx1pLVL0JPrerG7jaO4uJV3XUGKPIipv4mfhDOS5MyiMrzUtGdXSW8FkRHjoUnfqbW+g==", + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.3.0.tgz", + "integrity": "sha512-dUPiRgX8fhmh4uwTAn9xrzg7HV5j5DhGmZZGJdHfjy/AN9G4jD+5IjfbcAJ209JcIG8m4B7xz3crIhuDSm3siQ==", "dev": true, "dependencies": { "chalk": "^4.1.2", - "eslint": "^8.0.1" + "eslint": "^8.44.0" }, "engines": { "node": ">=12" @@ -2087,16 +2083,6 @@ "node": ">=0.10.0" } }, - "node_modules/js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2318,9 +2304,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/nopt": { @@ -2348,9 +2334,9 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -2418,17 +2404,17 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -2658,9 +2644,9 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" @@ -2936,9 +2922,9 @@ "dev": true }, "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3143,6 +3129,36 @@ "yarn": "*" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -3231,15 +3247,6 @@ "node": ">= 8" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -3298,6 +3305,12 @@ } }, "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, "@babel/code-frame": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", @@ -3372,20 +3385,20 @@ } }, "@eslint-community/regexpp": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true }, "@eslint/eslintrc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", - "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.0", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -3421,19 +3434,19 @@ } }, "@eslint/js": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", - "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true }, "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" } }, @@ -3444,15 +3457,15 @@ "dev": true }, "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "@mdn/browser-compat-data": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", - "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", + "version": "5.5.20", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.20.tgz", + "integrity": "sha512-33H+GJToNcLfMfWFdzPQIwYN/MYRQ58AAVd/hjWT0ptNiXNWeMs2JWHqv/nrfA/nONTJkAzmyh3XhRXpjYLdTw==", "dev": true }, "@nodelib/fs.scandir": { @@ -3487,6 +3500,12 @@ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -3494,9 +3513,9 @@ "dev": true }, "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true }, "acorn-jsx": { @@ -3563,20 +3582,12 @@ "dev": true }, "ast-metadata-inferer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz", - "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz", + "integrity": "sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==", "dev": true, "requires": { - "@mdn/browser-compat-data": "^3.3.14" - }, - "dependencies": { - "@mdn/browser-compat-data": { - "version": "3.3.14", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz", - "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==", - "dev": true - } + "@mdn/browser-compat-data": "^5.2.34" } }, "async": { @@ -3617,16 +3628,15 @@ } }, "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" } }, "browserslist-config-wikimedia": { @@ -3648,9 +3658,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001341", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001341.tgz", - "integrity": "sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA==", + "version": "1.0.30001608", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001608.tgz", + "integrity": "sha512-cjUJTQkk9fQlJR2s4HMuPMvTiRggl0rAVMtthQuyOlDWuqHXqN8azLq+pi8B2TjwKJ32diHjUqRIKeFX4z1FoA==", "dev": true }, "chalk": { @@ -3760,12 +3770,6 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "core-js": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.5.tgz", - "integrity": "sha512-VP/xYuvJ0MJWRAobcmQ8F2H6Bsn+s7zqAAjFaHGBMc5AQm7zaelhD1LGduFn2EehEcQcU+br6t+fwbpQ5d1ZWA==", - "dev": true - }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3820,9 +3824,9 @@ } }, "electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", + "version": "1.4.733", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.733.tgz", + "integrity": "sha512-gUI9nhI2iBGF0OaYYLKOaOtliFMl+Bt1rY7VmEjwxOxqoYLub/D9xmduPEhbw2imE6gYkJKhIE5it+KE2ulVxQ==", "dev": true }, "error-ex": { @@ -3835,9 +3839,9 @@ } }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true }, "escape-string-regexp": { @@ -3847,27 +3851,28 @@ "dev": true }, "eslint": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", - "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.1", - "@eslint/js": "8.36.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.5.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -3875,22 +3880,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "dependencies": { @@ -3901,9 +3903,9 @@ "dev": true }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, "js-yaml": { @@ -3951,19 +3953,18 @@ } }, "eslint-plugin-compat": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz", - "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz", + "integrity": "sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==", "dev": true, "requires": { - "@mdn/browser-compat-data": "^4.1.5", - "ast-metadata-inferer": "^0.7.0", - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001304", - "core-js": "^3.16.2", + "@mdn/browser-compat-data": "^5.3.13", + "ast-metadata-inferer": "^0.8.0", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001524", "find-up": "^5.0.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.5" + "lodash.memoize": "^4.1.2", + "semver": "^7.5.4" } }, "eslint-plugin-es-x": { @@ -3989,17 +3990,6 @@ "esquery": "^1.4.0", "semver": "^7.3.7", "spdx-expression-parse": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "eslint-plugin-json-es": { @@ -4089,9 +4079,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -4221,9 +4211,9 @@ } }, "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -4246,20 +4236,20 @@ "dev": true }, "espree": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", - "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "requires": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "dependencies": { "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true } } @@ -4342,7 +4332,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastq": { @@ -4521,18 +4511,18 @@ } }, "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "grunt": { @@ -4557,9 +4547,9 @@ } }, "grunt-banana-checker": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.11.0.tgz", - "integrity": "sha512-qXtcxu7y9GFEIx6ELm5jSf+JqvCafdco+t/YsrUhUDNe9AgCnP7X0R+PxT0qZaDftKVrDrR2gPOYqpaAye5bDw==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.11.1.tgz", + "integrity": "sha512-CF0h/TXaX9sbF2yIz+fUfJc4Zvms7XGYQ7ZYMD5+vv0LMZzSFf7JSHXDaBEs72nQWw4r4ap5fOW3baAliW+0bQ==", "dev": true }, "grunt-cli": { @@ -4588,13 +4578,13 @@ } }, "grunt-eslint": { - "version": "24.0.1", - "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.0.1.tgz", - "integrity": "sha512-gFzp+ikAkwyu6nqBE2zx1pLVL0JPrerG7jaO4uJV3XUGKPIipv4mfhDOS5MyiMrzUtGdXSW8FkRHjoUnfqbW+g==", + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.3.0.tgz", + "integrity": "sha512-dUPiRgX8fhmh4uwTAn9xrzg7HV5j5DhGmZZGJdHfjy/AN9G4jD+5IjfbcAJ209JcIG8m4B7xz3crIhuDSm3siQ==", "dev": true, "requires": { "chalk": "^4.1.2", - "eslint": "^8.0.1" + "eslint": "^8.44.0" } }, "grunt-known-options": { @@ -4847,12 +4837,6 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, - "js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5034,9 +5018,9 @@ "dev": true }, "node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "nopt": { @@ -5061,9 +5045,9 @@ }, "dependencies": { "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true } } @@ -5118,17 +5102,17 @@ } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" } }, "os-homedir": { @@ -5289,9 +5273,9 @@ "dev": true }, "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true }, "queue-microtask": { @@ -5476,9 +5460,9 @@ "dev": true }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -5628,6 +5612,16 @@ "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", "dev": true }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -5694,12 +5688,6 @@ "isexe": "^2.0.0" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 888ac1c..9a7dc31 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "devDependencies": { "eslint-config-wikimedia": "0.25.0", "grunt": "1.6.1", - "grunt-banana-checker": "0.11.0", - "grunt-eslint": "24.0.1" + "grunt-banana-checker": "0.11.1", + "grunt-eslint": "24.3.0" } } diff --git a/specials/PF_CreateForm.php b/specials/PF_CreateForm.php index d7ed52f..d46c5da 100644 --- a/specials/PF_CreateForm.php +++ b/specials/PF_CreateForm.php @@ -78,7 +78,7 @@ class PFCreateForm extends SpecialPage { # ignore variables that are not of the right form if ( strpos( $var, "_" ) != false ) { # get the template declarations and work from there - list( $action, $id ) = explode( "_", $var, 2 ); + [ $action, $id ] = explode( "_", $var, 2 ); if ( $action == "template" ) { // If the button was pressed to remove // this template, just don't add it to diff --git a/specials/PF_CreateTemplate.php b/specials/PF_CreateTemplate.php index cdb94c9..5151304 100644 --- a/specials/PF_CreateTemplate.php +++ b/specials/PF_CreateTemplate.php @@ -328,7 +328,7 @@ END; if ( count( $var_elements ) != 2 ) { continue; } - list( $field_field, $id ) = $var_elements; + [ $field_field, $id ] = $var_elements; if ( $field_field == 'name' && $id != 'starter' ) { $field = PFTemplateField::create( $val, diff --git a/specials/PF_RunQuery.php b/specials/PF_RunQuery.php index f3a0bc3..b62101f 100644 --- a/specials/PF_RunQuery.php +++ b/specials/PF_RunQuery.php @@ -87,7 +87,7 @@ class PFRunQuery extends IncludableSpecialPage { } $form_context = $embedded ? PFFormPrinter::CONTEXT_EMBEDDED_QUERY : PFFormPrinter::CONTEXT_QUERY; - list( $form_text, $data_text, $form_page_title ) = + [ $form_text, $data_text, $form_page_title ] = $wgPageFormsFormPrinter->formHTML( $form_definition, $form_submitted, false, $form_title->getArticleID(), $content, null, null, $form_context, [], $user diff --git a/specials/PF_UploadWindow.php b/specials/PF_UploadWindow.php index ad2a7c5..ba2fb46 100644 --- a/specials/PF_UploadWindow.php +++ b/specials/PF_UploadWindow.php @@ -303,52 +303,52 @@ class PFUploadWindow extends UnlistedSpecialPage { . '<ul class="warningbox">'; foreach ( $warnings as $warning => $args ) { // Unlike the other warnings, this one can be worked around. - if ( $warning == 'badfilename' ) { - $this->mDesiredDestName = Title::makeTitle( NS_FILE, $args )->getText(); - } + if ( $warning == 'badfilename' ) { + $this->mDesiredDestName = Title::makeTitle( NS_FILE, $args )->getText(); + } - if ( $warning == 'exists' ) { - $msg = self::getExistsWarning( $args ); - } elseif ( $warning == 'no-change' ) { - $file = $args; - $filename = $file->getTitle()->getPrefixedText(); - $msg = "\t<li>" . $this->msg( 'fileexists-no-change', $filename )->parse() . "</li>\n"; - } elseif ( $warning == 'duplicate-version' ) { - $file = $args[0]; - $count = count( $args ); - $filename = $file->getTitle()->getPrefixedText(); - $message = $this->msg( 'fileexists-duplicate-version' ) - ->params( $filename ) - ->numParams( $count ); - $msg = "\t<li>" . $message->parse() . "</li>\n"; - } elseif ( $warning == 'was-deleted' ) { - # If the file existed before and was deleted, warn the user of this - $ltitle = SpecialPage::getTitleFor( 'Log' ); - $llink = $linkRenderer->makeKnownLink( - $ltitle, - $this->msg( 'deletionlog' )->text(), - [], - [ - 'type' => 'delete', - 'page' => Title::makeTitle( NS_FILE, $args )->getPrefixedText(), - ] - ); - $msg = "\t<li>" . $this->msg( 'filewasdeleted' )->rawParams( $llink )->parse() . "</li>\n"; - } elseif ( $warning == 'duplicate' ) { - $msg = $this->getDupeWarning( $args ); - } elseif ( $warning == 'duplicate-archive' ) { - $msg = "\t<li>" . $this->msg( - 'file-deleted-duplicate', - [ Title::makeTitle( NS_FILE, $args )->getPrefixedText() ] - )->parse() . "</li>\n"; - } else { - if ( is_bool( $args ) ) { - $args = []; - } elseif ( !is_array( $args ) ) { - $args = [ $args ]; - } - $msg = "\t<li>" . $this->msg( $warning, $args )->parse() . "</li>\n"; + if ( $warning == 'exists' ) { + $msg = self::getExistsWarning( $args ); + } elseif ( $warning == 'no-change' ) { + $file = $args; + $filename = $file->getTitle()->getPrefixedText(); + $msg = "\t<li>" . $this->msg( 'fileexists-no-change', $filename )->parse() . "</li>\n"; + } elseif ( $warning == 'duplicate-version' ) { + $file = $args[0]; + $count = count( $args ); + $filename = $file->getTitle()->getPrefixedText(); + $message = $this->msg( 'fileexists-duplicate-version' ) + ->params( $filename ) + ->numParams( $count ); + $msg = "\t<li>" . $message->parse() . "</li>\n"; + } elseif ( $warning == 'was-deleted' ) { + # If the file existed before and was deleted, warn the user of this + $ltitle = SpecialPage::getTitleFor( 'Log' ); + $llink = $linkRenderer->makeKnownLink( + $ltitle, + $this->msg( 'deletionlog' )->text(), + [], + [ + 'type' => 'delete', + 'page' => Title::makeTitle( NS_FILE, $args )->getPrefixedText(), + ] + ); + $msg = "\t<li>" . $this->msg( 'filewasdeleted' )->rawParams( $llink )->parse() . "</li>\n"; + } elseif ( $warning == 'duplicate' ) { + $msg = $this->getDupeWarning( $args ); + } elseif ( $warning == 'duplicate-archive' ) { + $msg = "\t<li>" . $this->msg( + 'file-deleted-duplicate', + [ Title::makeTitle( NS_FILE, $args )->getPrefixedText() ] + )->parse() . "</li>\n"; + } else { + if ( is_bool( $args ) ) { + $args = []; + } elseif ( !is_array( $args ) ) { + $args = [ $args ]; } + $msg = "\t<li>" . $this->msg( $warning, $args )->parse() . "</li>\n"; + } $warningHtml .= $msg; } $warningHtml .= "</ul>\n"; diff --git a/tests/phpunit/integration/includes/PFFormPrinterTest.php b/tests/phpunit/integration/includes/PFFormPrinterTest.php index ce29f80..630be16 100644 --- a/tests/phpunit/integration/includes/PFFormPrinterTest.php +++ b/tests/phpunit/integration/includes/PFFormPrinterTest.php @@ -38,7 +38,7 @@ class PFFormPrinterTest extends MediaWikiIntegrationTestCase { $wgOut->getContext()->setTitle( $this->getTitle() ); - list( $form_text, $page_text, $form_page_title, $generated_page_name ) = + [ $form_text, $page_text, $form_page_title, $generated_page_name ] = $wgPageFormsFormPrinter->formHTML( $form_def = $setup['form_definition'], $form_submitted = true, @@ -134,11 +134,11 @@ class PFFormPrinterTest extends MediaWikiIntegrationTestCase { $mockTitle->expects( $this->any() ) ->method( 'getDBkey' ) - ->will( $this->returnValue( 'Sometitle' ) ); + ->willReturn( 'Sometitle' ); $mockTitle->expects( $this->any() ) ->method( 'getNamespace' ) - ->will( $this->returnValue( PF_NS_FORM ) ); + ->willReturn( PF_NS_FORM ); return $mockTitle; } diff --git a/tests/phpunit/integration/includes/forminputs/PFRadioButtonInputTest.php b/tests/phpunit/integration/includes/forminputs/PFRadioButtonInputTest.php index 03335d0..b0d54de 100644 --- a/tests/phpunit/integration/includes/forminputs/PFRadioButtonInputTest.php +++ b/tests/phpunit/integration/includes/forminputs/PFRadioButtonInputTest.php @@ -367,7 +367,7 @@ class PFRadioButtonInputTest extends MediaWikiIntegrationTestCase { if ( isset( $setup['form_definition'] ) ) { // We have to specify a template name $form_definition = "{{{for template|TestTemplate123}}}\n{$setup['form_definition']}\n{{{end template}}}\n{{{standard input|save}}}"; - list( $form_text, $page_text, $form_page_title, $generated_page_name ) + [ $form_text, $page_text, $form_page_title, $generated_page_name ] = $wgPageFormsFormPrinter->formHTML( $form_definition, true, false, null, null, 'TestStringForFormPageTitle', null, @@ -652,11 +652,11 @@ class PFRadioButtonInputTest extends MediaWikiIntegrationTestCase { $mockTitle->expects( $this->any() ) ->method( 'getDBkey' ) - ->will( $this->returnValue( 'Sometitle' ) ); + ->willReturn( 'Sometitle' ); $mockTitle->expects( $this->any() ) ->method( 'getNamespace' ) - ->will( $this->returnValue( PF_NS_FORM ) ); + ->willReturn( PF_NS_FORM ); return $mockTitle; } -- 2.39.2
$ date --- stdout --- Thu Apr 11 10:45:55 UTC 2024 --- end --- $ git clone file:///srv/git/mediawiki-extensions-PageForms.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 --- b3be227fa9650f1a165ab1cc549100f643646714 refs/heads/master --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "eslint-plugin-compat": { "name": "eslint-plugin-compat", "severity": "moderate", "isDirect": false, "via": [ "semver" ], "effects": [], "range": "3.6.0-0 - 4.1.4", "nodes": [ "node_modules/eslint-plugin-compat" ], "fixAvailable": true }, "semver": { "name": "semver", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096482, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": ">=7.0.0 <7.5.2" }, { "source": 1096483, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<5.7.2" }, { "source": 1096484, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": ">=6.0.0 <6.3.1" } ], "effects": [ "eslint-plugin-compat" ], "range": "<=5.7.1 || 6.0.0 - 6.3.0 || 7.0.0 - 7.5.1", "nodes": [ "node_modules/eslint-plugin-jsdoc/node_modules/semver", "node_modules/eslint-plugin-node/node_modules/semver", "node_modules/normalize-package-data/node_modules/semver", "node_modules/semver" ], "fixAvailable": true }, "word-wrap": { "name": "word-wrap", "severity": "moderate", "isDirect": false, "via": [ { "source": 1095091, "name": "word-wrap", "dependency": "word-wrap", "title": "word-wrap vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-j8xg-fqg3-53r7", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<1.2.4" } ], "effects": [], "range": "<1.2.4", "nodes": [ "node_modules/word-wrap" ], "fixAvailable": true } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 3, "high": 0, "critical": 0, "total": 3 }, "dependencies": { "prod": 1, "dev": 289, "optional": 0, "peer": 0, "peerOptional": 0, "total": 289 } } } --- 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: 37 installs, 0 updates, 0 removals - Locking composer/installers (v2.2.0) - Locking composer/pcre (3.1.3) - Locking composer/semver (3.3.2) - Locking composer/spdx-licenses (1.5.8) - Locking composer/xdebug-handler (3.0.4) - Locking doctrine/deprecations (1.1.3) - Locking felixfbecker/advanced-json-rpc (v3.2.1) - Locking mediawiki/mediawiki-codesniffer (v41.0.0) - Locking mediawiki/mediawiki-phan-config (0.12.1) - Locking mediawiki/minus-x (1.1.1) - Locking mediawiki/phan-taint-check-plugin (4.0.0) - Locking microsoft/tolerant-php-parser (v0.1.1) - Locking netresearch/jsonmapper (v4.4.1) - Locking phan/phan (5.4.1) - Locking php-parallel-lint/php-console-color (v1.0.1) - Locking php-parallel-lint/php-console-highlighter (v1.0.0) - Locking php-parallel-lint/php-parallel-lint (v1.3.2) - Locking phpdocumentor/reflection-common (2.2.0) - Locking phpdocumentor/reflection-docblock (5.3.0) - Locking phpdocumentor/type-resolver (1.8.2) - Locking phpstan/phpdoc-parser (1.28.0) - Locking psr/container (2.0.2) - Locking psr/log (2.0.0) - Locking sabre/event (5.1.4) - Locking squizlabs/php_codesniffer (3.7.2) - Locking symfony/console (v5.4.36) - Locking symfony/deprecation-contracts (v3.4.0) - Locking symfony/polyfill-ctype (v1.29.0) - Locking symfony/polyfill-intl-grapheme (v1.29.0) - Locking symfony/polyfill-intl-normalizer (v1.29.0) - Locking symfony/polyfill-mbstring (v1.29.0) - Locking symfony/polyfill-php73 (v1.29.0) - Locking symfony/polyfill-php80 (v1.29.0) - Locking symfony/service-contracts (v3.4.2) - Locking symfony/string (v6.4.4) - 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: 37 installs, 0 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] - Installing composer/installers (v2.2.0): Extracting archive - Installing composer/pcre (3.1.3): Extracting archive - Installing symfony/polyfill-php80 (v1.29.0): Extracting archive - Installing squizlabs/php_codesniffer (3.7.2): Extracting archive - Installing symfony/polyfill-mbstring (v1.29.0): Extracting archive - Installing composer/spdx-licenses (1.5.8): Extracting archive - Installing composer/semver (3.3.2): Extracting archive - Installing mediawiki/mediawiki-codesniffer (v41.0.0): Extracting archive - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.29.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.29.0): Extracting archive - Installing symfony/polyfill-ctype (v1.29.0): Extracting archive - Installing symfony/string (v6.4.4): Extracting archive - Installing psr/container (2.0.2): Extracting archive - Installing symfony/service-contracts (v3.4.2): Extracting archive - Installing symfony/polyfill-php73 (v1.29.0): Extracting archive - Installing symfony/deprecation-contracts (v3.4.0): Extracting archive - Installing symfony/console (v5.4.36): Extracting archive - Installing sabre/event (5.1.4): Extracting archive - Installing netresearch/jsonmapper (v4.4.1): Extracting archive - Installing microsoft/tolerant-php-parser (v0.1.1): Extracting archive - Installing webmozart/assert (1.11.0): Extracting archive - Installing phpstan/phpdoc-parser (1.28.0): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing doctrine/deprecations (1.1.3): Extracting archive - Installing phpdocumentor/type-resolver (1.8.2): Extracting archive - Installing phpdocumentor/reflection-docblock (5.3.0): Extracting archive - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive - Installing psr/log (2.0.0): Extracting archive - Installing composer/xdebug-handler (3.0.4): Extracting archive - Installing phan/phan (5.4.1): Extracting archive - Installing mediawiki/phan-taint-check-plugin (4.0.0): Extracting archive - Installing mediawiki/mediawiki-phan-config (0.12.1): Extracting archive - Installing mediawiki/minus-x (1.1.1): Extracting archive - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive - Installing php-parallel-lint/php-parallel-lint (v1.3.2): Extracting archive 0/36 [>---------------------------] 0% 20/36 [===============>------------] 55% 35/36 [===========================>] 97% 36/36 [============================] 100% 4 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating autoload files 16 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- --- end --- Upgrading n:grunt-banana-checker from 0.11.0 -> 0.11.1 Upgrading n:grunt-eslint from 24.0.1 -> 24.3.0 $ /usr/bin/npm install --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@es-joy/jsdoccomment@0.23.6', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'eslint-plugin-jsdoc@39.2.2', npm WARN EBADENGINE required: { node: '^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } --- stdout --- added 289 packages, and audited 290 packages in 4s 42 packages are looking for funding run `npm fund` for details 2 moderate severity vulnerabilities To address all issues, run: npm audit fix Run `npm audit` for details. --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- $ /usr/bin/npm ci --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@es-joy/jsdoccomment@0.23.6', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'eslint-plugin-jsdoc@39.2.2', npm WARN EBADENGINE required: { node: '^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } --- stdout --- added 289 packages, and audited 290 packages in 4s 42 packages are looking for funding run `npm fund` for details 2 moderate severity vulnerabilities To address all issues, run: npm audit fix Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stdout --- > test > grunt test Running "eslint:all" (eslint) task /src/repo/i18n/he.json 238:89 warning Detected potential trojan source attack with unicode bidi introduced in this code: '"{{PLURAL:$1|אסור שיהיה יותר ממופע אחד|אסור שיהיו יותר מ־$1 מופעים}} של תבנית זו."' security/detect-bidi-characters /src/repo/i18n/ky.json 13:37 warning Detected potential trojan source attack with unicode bidi introduced in this code: '"«$1» калыбын түзүү"' security/detect-bidi-characters 19:31 warning Detected potential trojan source attack with unicode bidi introduced in this code: '"«$1» түзүү: $2"' security/detect-bidi-characters 20:39 warning Detected potential trojan source attack with unicode bidi introduced in this code: '"«$1» түзүү"' security/detect-bidi-characters /src/repo/libs/PF_AutoEditRating.js 63:21 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 113:21 warning '$' is already declared in the upper scope on line 1 column 13 no-shadow /src/repo/libs/PF_AutocompleteWidget.js 130:21 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 139:18 warning Prefer `String#slice()` over `String#substr()` unicorn/prefer-string-slice /src/repo/libs/PF_ComboBoxInput.js 120:9 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 136:51 warning ES2015 default parameters are forbidden es-x/no-default-parameters 149:8 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 231:13 warning 'optionVal' is already declared in the upper scope on line 308 column 12 no-shadow 232:13 warning 'optionLabel' is already declared in the upper scope on line 309 column 12 no-shadow 307:12 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 537:22 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 546:18 warning Prefer `String#slice()` over `String#substr()` unicorn/prefer-string-slice 555:3 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 560:3 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 560:15 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp /src/repo/libs/PF_FullCalendar.js 124:11 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 124:11 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 128:19 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 128:19 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 132:19 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 132:19 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 157:11 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 157:11 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 161:19 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 161:19 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 165:19 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 165:19 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 172:11 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 172:11 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 176:19 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 176:19 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 180:19 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 180:19 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 270:9 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 270:9 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 272:17 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 272:17 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 279:17 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 279:17 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 281:17 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 281:17 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 290:17 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 290:17 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 299:17 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 299:17 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 308:17 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 308:17 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 613:11 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 744:11 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 744:11 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 754:18 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 754:18 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 761:52 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 761:52 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 769:54 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 769:54 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 770:13 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 770:13 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 780:51 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 780:51 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 781:13 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 781:13 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 816:11 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1073:12 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1073:12 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1074:13 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1074:13 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1076:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1076:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1078:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1078:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1114:12 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1114:12 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1115:13 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1115:13 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1117:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1117:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1119:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1119:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1121:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1121:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1123:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1123:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1125:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1125:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1127:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1127:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1147:14 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1147:14 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1147:71 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1147:71 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1161:14 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1161:14 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes /src/repo/libs/PF_SpreadsheetAutocompleteWidget.js 114:9 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 131:5 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 135:21 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 135:21 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 171:21 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 179:17 warning Prefer `String#slice()` over `String#substr()` unicorn/prefer-string-slice 212:14 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp /src/repo/libs/PF_SpreadsheetComboBoxInput.js 54:11 warning 'valueFilter' declared on line 56 column 11 is used outside of binding context block-scoped-var 56:11 warning 'valueFilter' declared on line 54 column 11 is used outside of binding context block-scoped-var 58:11 warning 'valueFilter' declared on line 54 column 11 is used outside of binding context block-scoped-var 58:11 warning 'valueFilter' declared on line 56 column 11 is used outside of binding context block-scoped-var 108:23 warning 'data' is already declared in the upper scope on line 46 column 4 no-shadow 114:13 warning 'i' declared on line 50 column 9 is used outside of binding context block-scoped-var 114:20 warning 'i' declared on line 50 column 9 is used outside of binding context block-scoped-var 114:37 warning 'i' declared on line 50 column 9 is used outside of binding context block-scoped-var 116:20 warning 'i' declared on line 50 column 9 is used outside of binding context block-scoped-var 116:62 warning 'i' declared on line 50 column 9 is used outside of binding context block-scoped-var 131:0 warning Missing JSDoc @return type jsdoc/require-returns-type 138:21 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 146:17 warning Prefer `String#slice()` over `String#substr()` unicorn/prefer-string-slice 173:14 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 184:9 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 184:9 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 190:0 warning The type 'integer' is undefined jsdoc/no-undefined-types 197:2 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern /src/repo/libs/PF_autoedit.js 15:16 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 83:21 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 95:38 warning '$' is already declared in the upper scope on line 9 column 13 no-shadow /src/repo/libs/PF_checkboxes.js 47:24 warning '$' is already declared in the upper scope on line 7 column 14 no-shadow /src/repo/libs/PF_collapsible.js 30:8 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state /src/repo/libs/PF_datepicker.js 14:9 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state /src/repo/libs/PF_editWarning.js 32:9 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 61:11 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state /src/repo/libs/PF_formInput.js 19:4 warning ES2015 'for-of' statements are forbidden es-x/no-for-of-loops 76:4 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 80:4 warning ES2015 'for-of' statements are forbidden es-x/no-for-of-loops 104:4 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables /src/repo/libs/PF_maps.js 201:5 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 208:5 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 209:5 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 210:5 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 262:6 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 263:6 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 264:6 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables /src/repo/libs/PF_popupform.js 374:3 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 758:12 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 772:12 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state /src/repo/libs/PF_rating.js 43:4 warning Selector extensions are not allowed no-jquery/no-sizzle /src/repo/libs/PF_regexp.js 31:12 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp /src/repo/libs/PF_spreadsheet.js 10:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 11:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 12:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 13:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 14:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 15:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 16:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 17:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 72:11 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 72:11 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 394:3 warning ES2015 'for-of' statements are forbidden es-x/no-for-of-loops 440:3 warning ES2015 'for-of' statements are forbidden es-x/no-for-of-loops 523:16 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 689:6 warning ES2015 'for-of' statements are forbidden es-x/no-for-of-loops 689:11 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 692:7 warning ES2015 'for-of' statements are forbidden es-x/no-for-of-loops 692:12 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 753:10 warning 'columnParams' is already declared in the upper scope on line 853 column 9 no-shadow 771:22 warning Positional selector extensions are not allowed no-jquery/no-sizzle 863:28 warning Positional selector extensions are not allowed no-jquery/no-sizzle 867:6 warning Positional selector extensions are not allowed no-jquery/no-sizzle 928:25 warning Positional selector extensions are not allowed no-jquery/no-sizzle 933:4 warning Positional selector extensions are not allowed no-jquery/no-sizzle /src/repo/libs/PF_submit.js 141:46 warning Prefer `String#slice()` over `String#substring()` unicorn/prefer-string-slice 174:8 warning '$form' is already declared in the upper scope on line 14 column 6 no-shadow /src/repo/libs/PF_timepicker.js 64:9 warning Selector extensions are not allowed no-jquery/no-sizzle /src/repo/libs/PF_upload.js 56:41 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state /src/repo/libs/PageForms.js 199:10 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 230:19 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 241:9 warning Selector extensions are not allowed no-jquery/no-sizzle 406:61 warning All possible message keys should be documented. See https://w.wiki/4r9a for details mediawiki/msg-doc 413:58 warning All possible message keys should be documented. See https://w.wiki/4r9a for details mediawiki/msg-doc 676:19 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 688:21 warning Unsafe Regular Expression security/detect-unsafe-regex 702:17 warning Unsafe Regular Expression security/detect-unsafe-regex 770:9 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 770:9 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 771:5 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 771:5 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 834:6 warning 'negative' declared on line 837 column 7 is used outside of binding context block-scoped-var 843:7 warning 'negative' declared on line 837 column 7 is used outside of binding context block-scoped-var 1014:6 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1015:6 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1021:6 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1022:6 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1112:11 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1112:11 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1118:9 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1225:7 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1226:8 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 1258:10 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1262:8 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1533:8 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1646:7 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1653:8 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1929:30 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1942:8 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1946:8 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1951:7 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state /src/repo/libs/ext.pf.select2.base.js 73:6 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 93:8 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 318:6 warning Prefer `String#slice()` over `String#substr()` unicorn/prefer-string-slice 319:6 warning Prefer `String#slice()` over `String#substr()` unicorn/prefer-string-slice /src/repo/libs/ext.pf.select2.tokens.js 89:11 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 288:9 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 288:9 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes ✖ 212 problems (0 errors, 212 warnings) Running "banana:all" (banana) task >> 1 message directory checked. Done. --- end --- Upgrading c:mediawiki/mediawiki-codesniffer from 41.0.0 -> 43.0.0 Upgrading c:mediawiki/mediawiki-phan-config from 0.12.1 -> 0.14.0 $ /usr/bin/composer update --- stderr --- Loading composer repositories with package information Updating dependencies Lock file operations: 3 installs, 7 updates, 0 removals - Upgrading composer/semver (3.3.2 => 3.4.0) - Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0) - Upgrading mediawiki/mediawiki-codesniffer (v41.0.0 => v43.0.0) - Upgrading mediawiki/mediawiki-phan-config (0.12.1 => 0.14.0) - Upgrading mediawiki/phan-taint-check-plugin (4.0.0 => 6.0.0) - Upgrading microsoft/tolerant-php-parser (v0.1.1 => v0.1.2) - Upgrading phan/phan (5.4.1 => 5.4.3) - Locking phpcsstandards/phpcsextra (1.1.2) - Locking phpcsstandards/phpcsutils (1.0.9) - Upgrading squizlabs/php_codesniffer (3.7.2 => 3.8.1) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 3 installs, 7 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] - Upgrading squizlabs/php_codesniffer (3.7.2 => 3.8.1): Extracting archive - Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive - Installing phpcsstandards/phpcsutils (1.0.9): Extracting archive - Installing phpcsstandards/phpcsextra (1.1.2): Extracting archive - Upgrading composer/semver (3.3.2 => 3.4.0): Extracting archive - Upgrading mediawiki/mediawiki-codesniffer (v41.0.0 => v43.0.0): Extracting archive - Upgrading microsoft/tolerant-php-parser (v0.1.1 => v0.1.2): Extracting archive - Upgrading phan/phan (5.4.1 => 5.4.3): Extracting archive - Upgrading mediawiki/phan-taint-check-plugin (4.0.0 => 6.0.0): Extracting archive - Upgrading mediawiki/mediawiki-phan-config (0.12.1 => 0.14.0): Extracting archive 0/8 [>---------------------------] 0% 7/8 [========================>---] 87% 8/8 [============================] 100% Generating autoload files 17 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 --- {'MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationProtected', 'MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected', 'MediaWiki.Usage.ExtendClassUsage.FunctionVarUsage', 'MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures', 'MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic', 'MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate', 'MediaWiki.Files.ClassMatchesFilename.NotMatch', 'MediaWiki.Commenting.PropertyDocumentation.MissingVar', 'Squiz.Scope.MethodScope.Missing', 'Generic.Files.LineLength.TooLong', 'MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage', 'MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPublic', 'MediaWiki.Usage.ForbiddenFunctions.passthru', 'MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgTitle', 'MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate'} Tests fail! $ vendor/bin/phpcbf --- stdout --- PHPCBF RESULT SUMMARY -------------------------------------------------------------------------------- FILE FIXED REMAINING -------------------------------------------------------------------------------- /src/repo/includes/parserfunctions/PF_TemplateParams.php 1 3 /src/repo/includes/forminputs/PF_LeafletInput.php 1 5 ...po/tests/phpunit/integration/includes/PFFormPrinterTest.php 3 4 /src/repo/includes/forminputs/PF_DateInput.php 1 11 /src/repo/includes/forminputs/PF_TokensInput.php 1 12 /src/repo/includes/parserfunctions/PF_TemplateDisplay.php 1 10 /src/repo/includes/PF_FormLinker.php 1 8 /src/repo/includes/forminputs/PF_ComboBoxInput.php 1 9 /src/repo/includes/forminputs/PF_DateTimePicker.php 1 1 /src/repo/includes/forminputs/PF_DatePickerInput.php 1 6 /src/repo/includes/forminputs/PF_OpenLayersInput.php 1 9 .../integration/includes/forminputs/PFRadioButtonInputTest.php 3 1 /src/repo/includes/PF_PageSection.php 9 26 /src/repo/includes/PF_Hooks.php 1 15 /src/repo/includes/PF_Template.php 2 44 /src/repo/includes/PF_MappingUtils.php 1 4 /src/repo/specials/PF_CreateForm.php 1 40 /src/repo/specials/PF_CreateTemplate.php 1 28 /src/repo/specials/PF_UploadWindow.php 13 21 /src/repo/includes/PF_ValuesUtils.php 3 21 /src/repo/includes/PF_TemplateInForm.php 2 105 /src/repo/specials/PF_RunQuery.php 1 14 /src/repo/includes/PF_AutoeditAPI.php 2 57 /src/repo/includes/PF_FormField.php 1 70 /src/repo/includes/PF_FormPrinter.php 11 107 -------------------------------------------------------------------------------- A TOTAL OF 64 ERRORS WERE FIXED IN 25 FILES -------------------------------------------------------------------------------- Time: 2.78 secs; Memory: 6MB --- 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 17 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 > minus-x check . > phpcs -p -s . --- stdout --- PHP 8.2.7 | 10 parallel jobs ............................................................ 60/89 (67 %) ............................. 89/89 (100 %) Checked 89 files in 0.4 seconds No syntax error found MinusX ====== Processing /src/repo... ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ........................................ All good! ............................................. 45 / 45 (100%) Time: 1.18 secs; Memory: 6MB --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "eslint-plugin-compat": { "name": "eslint-plugin-compat", "severity": "moderate", "isDirect": false, "via": [ "semver" ], "effects": [], "range": "3.6.0-0 - 4.1.4", "nodes": [ "node_modules/eslint-plugin-compat" ], "fixAvailable": true }, "semver": { "name": "semver", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096482, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": ">=7.0.0 <7.5.2" }, { "source": 1096483, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<5.7.2" }, { "source": 1096484, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": ">=6.0.0 <6.3.1" } ], "effects": [ "eslint-plugin-compat" ], "range": "<=5.7.1 || 6.0.0 - 6.3.0 || 7.0.0 - 7.5.1", "nodes": [ "node_modules/eslint-plugin-jsdoc/node_modules/semver", "node_modules/eslint-plugin-node/node_modules/semver", "node_modules/normalize-package-data/node_modules/semver", "node_modules/semver" ], "fixAvailable": true } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 2, "high": 0, "critical": 0, "total": 2 }, "dependencies": { "prod": 1, "dev": 289, "optional": 0, "peer": 0, "peerOptional": 0, "total": 289 } } } --- end --- Attempting to npm audit fix $ /usr/bin/npm audit fix --dry-run --only=dev --json --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@es-joy/jsdoccomment@0.23.6', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'eslint-plugin-jsdoc@39.2.2', npm WARN EBADENGINE required: { node: '^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } --- stdout --- { "added": 1, "removed": 3, "changed": 11, "audited": 288, "funding": 42, "audit": { "auditReportVersion": 2, "vulnerabilities": { "eslint-plugin-compat": { "name": "eslint-plugin-compat", "severity": "moderate", "isDirect": false, "via": [ "semver" ], "effects": [], "range": "3.6.0-0 - 4.1.4", "nodes": [ "" ], "fixAvailable": true }, "semver": { "name": "semver", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096482, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": ">=7.0.0 <7.5.2" }, { "source": 1096483, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": "<5.7.2" }, { "source": 1096484, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": [ "CWE-1333" ], "cvss": { "score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, "range": ">=6.0.0 <6.3.1" } ], "effects": [ "eslint-plugin-compat" ], "range": "<=5.7.1 || 6.0.0 - 6.3.0 || 7.0.0 - 7.5.1", "nodes": [ "", "", "", "" ], "fixAvailable": true } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 2, "high": 0, "critical": 0, "total": 2 }, "dependencies": { "prod": 1, "dev": 287, "optional": 0, "peer": 0, "peerOptional": 0, "total": 287 } } } } --- end --- {"added": 1, "removed": 3, "changed": 11, "audited": 288, "funding": 42, "audit": {"auditReportVersion": 2, "vulnerabilities": {"eslint-plugin-compat": {"name": "eslint-plugin-compat", "severity": "moderate", "isDirect": false, "via": ["semver"], "effects": [], "range": "3.6.0-0 - 4.1.4", "nodes": [""], "fixAvailable": true}, "semver": {"name": "semver", "severity": "moderate", "isDirect": false, "via": [{"source": 1096482, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=7.0.0 <7.5.2"}, {"source": 1096483, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<5.7.2"}, {"source": 1096484, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=6.0.0 <6.3.1"}], "effects": ["eslint-plugin-compat"], "range": "<=5.7.1 || 6.0.0 - 6.3.0 || 7.0.0 - 7.5.1", "nodes": ["", "", "", ""], "fixAvailable": true}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 2, "high": 0, "critical": 0, "total": 2}, "dependencies": {"prod": 1, "dev": 287, "optional": 0, "peer": 0, "peerOptional": 0, "total": 287}}}} $ /usr/bin/npm audit fix --only=dev --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@es-joy/jsdoccomment@0.23.6', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'eslint-plugin-jsdoc@39.2.2', npm WARN EBADENGINE required: { node: '^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } --- stdout --- added 1 package, removed 3 packages, changed 11 packages, and audited 288 packages in 2s 42 packages are looking for funding run `npm fund` for details found 0 vulnerabilities --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- Verifying that tests still pass $ /usr/bin/npm ci --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@es-joy/jsdoccomment@0.23.6', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'eslint-plugin-jsdoc@39.2.2', npm WARN EBADENGINE required: { node: '^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } --- stdout --- added 287 packages, and audited 288 packages in 3s 42 packages are looking for funding run `npm fund` for details found 0 vulnerabilities --- end --- $ /usr/bin/npm test --- stdout --- > test > grunt test Running "eslint:all" (eslint) task /src/repo/i18n/he.json 238:89 warning Detected potential trojan source attack with unicode bidi introduced in this code: '"{{PLURAL:$1|אסור שיהיה יותר ממופע אחד|אסור שיהיו יותר מ־$1 מופעים}} של תבנית זו."' security/detect-bidi-characters /src/repo/i18n/ky.json 13:37 warning Detected potential trojan source attack with unicode bidi introduced in this code: '"«$1» калыбын түзүү"' security/detect-bidi-characters 19:31 warning Detected potential trojan source attack with unicode bidi introduced in this code: '"«$1» түзүү: $2"' security/detect-bidi-characters 20:39 warning Detected potential trojan source attack with unicode bidi introduced in this code: '"«$1» түзүү"' security/detect-bidi-characters /src/repo/libs/PF_AutoEditRating.js 63:21 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 113:21 warning '$' is already declared in the upper scope on line 1 column 13 no-shadow /src/repo/libs/PF_AutocompleteWidget.js 130:21 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 139:18 warning Prefer `String#slice()` over `String#substr()` unicorn/prefer-string-slice /src/repo/libs/PF_ComboBoxInput.js 120:9 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 136:51 warning ES2015 default parameters are forbidden es-x/no-default-parameters 149:8 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 231:13 warning 'optionVal' is already declared in the upper scope on line 308 column 12 no-shadow 232:13 warning 'optionLabel' is already declared in the upper scope on line 309 column 12 no-shadow 307:12 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 537:22 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 546:18 warning Prefer `String#slice()` over `String#substr()` unicorn/prefer-string-slice 555:3 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 560:3 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 560:15 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp /src/repo/libs/PF_FullCalendar.js 124:11 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 124:11 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 128:19 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 128:19 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 132:19 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 132:19 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 157:11 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 157:11 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 161:19 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 161:19 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 165:19 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 165:19 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 172:11 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 172:11 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 176:19 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 176:19 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 180:19 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 180:19 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 270:9 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 270:9 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 272:17 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 272:17 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 279:17 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 279:17 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 281:17 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 281:17 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 290:17 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 290:17 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 299:17 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 299:17 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 308:17 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 308:17 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 613:11 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 744:11 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 744:11 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 754:18 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 754:18 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 761:52 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 761:52 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 769:54 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 769:54 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 770:13 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 770:13 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 780:51 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 780:51 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 781:13 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 781:13 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 816:11 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1073:12 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1073:12 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1074:13 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1074:13 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1076:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1076:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1078:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1078:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1114:12 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1114:12 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1115:13 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1115:13 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1117:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1117:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1119:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1119:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1121:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1121:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1123:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1123:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1125:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1125:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1127:20 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1127:20 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1147:14 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1147:14 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1147:71 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1147:71 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1161:14 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1161:14 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes /src/repo/libs/PF_SpreadsheetAutocompleteWidget.js 114:9 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 131:5 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 135:21 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 135:21 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 171:21 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 179:17 warning Prefer `String#slice()` over `String#substr()` unicorn/prefer-string-slice 212:14 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp /src/repo/libs/PF_SpreadsheetComboBoxInput.js 54:11 warning 'valueFilter' declared on line 56 column 11 is used outside of binding context block-scoped-var 56:11 warning 'valueFilter' declared on line 54 column 11 is used outside of binding context block-scoped-var 58:11 warning 'valueFilter' declared on line 54 column 11 is used outside of binding context block-scoped-var 58:11 warning 'valueFilter' declared on line 56 column 11 is used outside of binding context block-scoped-var 108:23 warning 'data' is already declared in the upper scope on line 46 column 4 no-shadow 114:13 warning 'i' declared on line 50 column 9 is used outside of binding context block-scoped-var 114:20 warning 'i' declared on line 50 column 9 is used outside of binding context block-scoped-var 114:37 warning 'i' declared on line 50 column 9 is used outside of binding context block-scoped-var 116:20 warning 'i' declared on line 50 column 9 is used outside of binding context block-scoped-var 116:62 warning 'i' declared on line 50 column 9 is used outside of binding context block-scoped-var 131:0 warning Missing JSDoc @return type jsdoc/require-returns-type 138:21 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 146:17 warning Prefer `String#slice()` over `String#substr()` unicorn/prefer-string-slice 173:14 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 184:9 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 184:9 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 190:0 warning The type 'integer' is undefined jsdoc/no-undefined-types 197:2 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern /src/repo/libs/PF_autoedit.js 15:16 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 83:21 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 95:38 warning '$' is already declared in the upper scope on line 9 column 13 no-shadow /src/repo/libs/PF_checkboxes.js 47:24 warning '$' is already declared in the upper scope on line 7 column 14 no-shadow /src/repo/libs/PF_collapsible.js 30:8 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state /src/repo/libs/PF_datepicker.js 14:9 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state /src/repo/libs/PF_editWarning.js 32:9 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 61:11 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state /src/repo/libs/PF_formInput.js 19:4 warning ES2015 'for-of' statements are forbidden es-x/no-for-of-loops 76:4 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 80:4 warning ES2015 'for-of' statements are forbidden es-x/no-for-of-loops 104:4 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables /src/repo/libs/PF_maps.js 201:5 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 208:5 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 209:5 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 210:5 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 262:6 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 263:6 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 264:6 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables /src/repo/libs/PF_popupform.js 374:3 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 758:12 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 772:12 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state /src/repo/libs/PF_rating.js 43:4 warning Selector extensions are not allowed no-jquery/no-sizzle /src/repo/libs/PF_regexp.js 31:12 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp /src/repo/libs/PF_spreadsheet.js 10:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 11:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 12:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 13:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 14:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 15:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 16:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 17:1 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 72:11 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 72:11 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 394:3 warning ES2015 'for-of' statements are forbidden es-x/no-for-of-loops 440:3 warning ES2015 'for-of' statements are forbidden es-x/no-for-of-loops 523:16 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 689:6 warning ES2015 'for-of' statements are forbidden es-x/no-for-of-loops 689:11 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 692:7 warning ES2015 'for-of' statements are forbidden es-x/no-for-of-loops 692:12 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 753:10 warning 'columnParams' is already declared in the upper scope on line 853 column 9 no-shadow 771:22 warning Positional selector extensions are not allowed no-jquery/no-sizzle 863:28 warning Positional selector extensions are not allowed no-jquery/no-sizzle 867:6 warning Positional selector extensions are not allowed no-jquery/no-sizzle 928:25 warning Positional selector extensions are not allowed no-jquery/no-sizzle 933:4 warning Positional selector extensions are not allowed no-jquery/no-sizzle /src/repo/libs/PF_submit.js 141:46 warning Prefer `String#slice()` over `String#substring()` unicorn/prefer-string-slice 174:8 warning '$form' is already declared in the upper scope on line 14 column 6 no-shadow /src/repo/libs/PF_timepicker.js 64:9 warning Selector extensions are not allowed no-jquery/no-sizzle /src/repo/libs/PF_upload.js 56:41 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state /src/repo/libs/PageForms.js 199:10 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 230:19 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 241:9 warning Selector extensions are not allowed no-jquery/no-sizzle 406:61 warning All possible message keys should be documented. See https://w.wiki/4r9a for details mediawiki/msg-doc 413:58 warning All possible message keys should be documented. See https://w.wiki/4r9a for details mediawiki/msg-doc 676:19 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp 688:21 warning Unsafe Regular Expression security/detect-unsafe-regex 702:17 warning Unsafe Regular Expression security/detect-unsafe-regex 770:9 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 770:9 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 771:5 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 771:5 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 834:6 warning 'negative' declared on line 837 column 7 is used outside of binding context block-scoped-var 843:7 warning 'negative' declared on line 837 column 7 is used outside of binding context block-scoped-var 1014:6 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1015:6 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1021:6 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1022:6 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1112:11 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 1112:11 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes 1118:9 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1225:7 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1226:8 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 1258:10 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1262:8 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1533:8 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1646:7 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1653:8 warning jQuery collection names must match the variablePattern no-jquery/variable-pattern 1929:30 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1942:8 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1946:8 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state 1951:7 warning Where possible, maintain application state in JS to avoid slower DOM queries no-jquery/no-class-state /src/repo/libs/ext.pf.select2.base.js 73:6 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 93:8 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 318:6 warning Prefer `String#slice()` over `String#substr()` unicorn/prefer-string-slice 319:6 warning Prefer `String#slice()` over `String#substr()` unicorn/prefer-string-slice /src/repo/libs/ext.pf.select2.tokens.js 89:11 warning ES2015 block-scoped variables are forbidden es-x/no-block-scoped-variables 288:9 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes 288:9 warning ES2015 'String.prototype.includes' method is forbidden es-x/no-string-prototype-includes ✖ 212 problems (0 errors, 212 warnings) Running "banana:all" (banana) task >> 1 message directory checked. Done. --- end --- {"1096482": {"source": 1096482, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=7.0.0 <7.5.2"}, "1096483": {"source": 1096483, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<5.7.2"}, "1096484": {"source": 1096484, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=6.0.0 <6.3.1"}} Upgrading n:eslint-plugin-compat from 4.0.2 -> 4.2.0 {"1096482": {"source": 1096482, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=7.0.0 <7.5.2"}, "1096483": {"source": 1096483, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<5.7.2"}, "1096484": {"source": 1096484, "name": "semver", "dependency": "semver", "title": "semver vulnerable to Regular Expression Denial of Service", "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=6.0.0 <6.3.1"}} Upgrading n:semver from 5.7.1, 6.3.0, 7.3.5, 7.3.8 -> 5.7.2, 6.3.1, 7.6.0 $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- build: Updating dependencies composer: * mediawiki/mediawiki-codesniffer: 41.0.0 → 43.0.0 The following sniffs are failing and were disabled: * Generic.CodeAnalysis.AssignmentInCondition.Found * Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition The following sniffs now pass and were enabled: * MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures * mediawiki/mediawiki-phan-config: 0.12.1 → 0.14.0 npm: * grunt-banana-checker: 0.11.0 → 0.11.1 * grunt-eslint: 24.0.1 → 24.3.0 * eslint-plugin-compat: 4.0.2 → 4.2.0 * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw * semver: 5.7.1, 6.3.0, 7.3.5, 7.3.8 → 5.7.2, 6.3.1, 7.6.0 * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw $ git add . --- stdout --- --- end --- $ git commit -F /tmp/tmpty2pw3ht --- stdout --- [master eea91b9] build: Updating dependencies 29 files changed, 430 insertions(+), 440 deletions(-) --- end --- $ git format-patch HEAD~1 --stdout --- stdout --- From eea91b9f618e73f227c93e596634c8935b002727 Mon Sep 17 00:00:00 2001 From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org> Date: Thu, 11 Apr 2024 10:46:43 +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: 41.0.0 → 43.0.0 The following sniffs are failing and were disabled: * Generic.CodeAnalysis.AssignmentInCondition.Found * Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition The following sniffs now pass and were enabled: * MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures * mediawiki/mediawiki-phan-config: 0.12.1 → 0.14.0 npm: * grunt-banana-checker: 0.11.0 → 0.11.1 * grunt-eslint: 24.0.1 → 24.3.0 * eslint-plugin-compat: 4.0.2 → 4.2.0 * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw * semver: 5.7.1, 6.3.0, 7.3.5, 7.3.8 → 5.7.2, 6.3.1, 7.6.0 * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw Change-Id: Ibd05bbab658e9e1982bc91276239b31686e5afb7 --- .phpcs.xml | 3 +- composer.json | 7 +- includes/PF_AutoeditAPI.php | 4 +- includes/PF_FormField.php | 2 +- includes/PF_FormLinker.php | 2 +- includes/PF_FormPrinter.php | 32 +- includes/PF_Hooks.php | 2 +- includes/PF_MappingUtils.php | 2 +- includes/PF_PageSection.php | 24 +- includes/PF_Template.php | 4 +- includes/PF_TemplateInForm.php | 4 +- includes/PF_ValuesUtils.php | 6 +- includes/forminputs/PF_ComboBoxInput.php | 2 +- includes/forminputs/PF_DateInput.php | 2 +- includes/forminputs/PF_DatePickerInput.php | 2 +- includes/forminputs/PF_DateTimePicker.php | 2 +- includes/forminputs/PF_LeafletInput.php | 2 +- includes/forminputs/PF_OpenLayersInput.php | 2 +- includes/forminputs/PF_TokensInput.php | 2 +- .../parserfunctions/PF_TemplateDisplay.php | 2 +- .../parserfunctions/PF_TemplateParams.php | 2 +- package-lock.json | 650 +++++++++--------- package.json | 4 +- specials/PF_CreateForm.php | 2 +- specials/PF_CreateTemplate.php | 2 +- specials/PF_RunQuery.php | 2 +- specials/PF_UploadWindow.php | 88 +-- .../includes/PFFormPrinterTest.php | 6 +- .../forminputs/PFRadioButtonInputTest.php | 6 +- 29 files changed, 430 insertions(+), 440 deletions(-) diff --git a/.phpcs.xml b/.phpcs.xml index 3e3cf53..d5853e8 100644 --- a/.phpcs.xml +++ b/.phpcs.xml @@ -1,6 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <ruleset> <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki"> + <exclude name="Generic.CodeAnalysis.AssignmentInCondition.Found" /> + <exclude name="Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition" /> <exclude name="Generic.Files.LineLength.TooLong" /> <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate" /> <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" /> @@ -9,7 +11,6 @@ <exclude name="MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationProtected" /> <exclude name="MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPublic" /> <exclude name="MediaWiki.Commenting.PropertyDocumentation.MissingVar" /> - <exclude name="MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures" /> <exclude name="MediaWiki.Files.ClassMatchesFilename.NotMatch" /> <exclude name="MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgTitle" /> <exclude name="MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage" /> diff --git a/composer.json b/composer.json index 78e2d88..c60ea6f 100644 --- a/composer.json +++ b/composer.json @@ -34,8 +34,8 @@ } }, "require-dev": { - "mediawiki/mediawiki-codesniffer": "41.0.0", - "mediawiki/mediawiki-phan-config": "0.12.1", + "mediawiki/mediawiki-codesniffer": "43.0.0", + "mediawiki/mediawiki-phan-config": "0.14.0", "mediawiki/minus-x": "1.1.1", "php-parallel-lint/php-console-highlighter": "1.0.0", "php-parallel-lint/php-parallel-lint": "1.3.2" @@ -56,7 +56,8 @@ }, "config": { "allow-plugins": { - "composer/installers": true + "composer/installers": true, + "dealerdirect/phpcodesniffer-composer-installer": true } } } diff --git a/includes/PF_AutoeditAPI.php b/includes/PF_AutoeditAPI.php index 74f0162..d63068f 100644 --- a/includes/PF_AutoeditAPI.php +++ b/includes/PF_AutoeditAPI.php @@ -940,7 +940,7 @@ class PFAutoeditAPI extends ApiBase { $wgRequest = new FauxRequest( $this->mOptions, true, $session ); // Call PFFormPrinter::formHTML() to get at the form // HTML of the existing page. - list( $formHTML, $targetContent, $form_page_title, $generatedTargetNameFormula ) = + [ $formHTML, $targetContent, $form_page_title, $generatedTargetNameFormula ] = $wgPageFormsFormPrinter->formHTML( // Special handling for autoedit edits - // otherwise, multi-instance templates @@ -976,7 +976,7 @@ class PFAutoeditAPI extends ApiBase { // Spoof $wgRequest for PFFormPrinter::formHTML(). $session = RequestContext::getMain()->getRequest()->getSession(); $wgRequest = new FauxRequest( $this->mOptions, true, $session ); - list( $formHTML, $targetContent, $generatedFormName, $generatedTargetNameFormula ) = + [ $formHTML, $targetContent, $generatedFormName, $generatedTargetNameFormula ] = $wgPageFormsFormPrinter->formHTML( $formContent, $isFormSubmitted, $pageExists, $formArticleId, $preloadContent, $targetName, $targetNameFormula, diff --git a/includes/PF_FormField.php b/includes/PF_FormField.php index 1f26012..a946bea 100644 --- a/includes/PF_FormField.php +++ b/includes/PF_FormField.php @@ -789,7 +789,7 @@ class PFFormField { if ( $fullCargoField != null ) { // It's inefficient to get these values via // text parsing, but oh well. - list( $cargo_table, $cargo_field ) = explode( '|', $fullCargoField, 2 ); + [ $cargo_table, $cargo_field ] = explode( '|', $fullCargoField, 2 ); $text .= Html::hidden( 'input_' . $wgPageFormsFieldNum . '_unique_cargo_table', $cargo_table ); $text .= Html::hidden( 'input_' . $wgPageFormsFieldNum . '_unique_cargo_field', $cargo_field ); } diff --git a/includes/PF_FormLinker.php b/includes/PF_FormLinker.php index d0ca5e5..cc8252d 100644 --- a/includes/PF_FormLinker.php +++ b/includes/PF_FormLinker.php @@ -47,7 +47,7 @@ class PFFormLinker { // Allow outside code to set/change the preloaded text. MediaWikiServices::getInstance()->getHookContainer()->run( 'PageForms::EditFormPreloadText', [ &$preloadContent, $title, $formTitle ] ); - list( $formText, $pageText, $formPageTitle, $generatedPageName ) = + [ $formText, $pageText, $formPageTitle, $generatedPageName ] = $wgPageFormsFormPrinter->formHTML( $formDefinition, false, false, null, $preloadContent, 'Some very long page name that will hopefully never get created ABCDEF123', diff --git a/includes/PF_FormPrinter.php b/includes/PF_FormPrinter.php index 2345840..beb1f85 100644 --- a/includes/PF_FormPrinter.php +++ b/includes/PF_FormPrinter.php @@ -566,7 +566,7 @@ END; $inputType = $formField->getInputType(); $gridParamValues = [ 'name' => $templateField->getFieldName() ]; - list( $autocompletedatatype, $autocompletesettings ) = $this->getSpreadsheetAutocompleteAttributes( $formFieldArgs ); + [ $autocompletedatatype, $autocompletesettings ] = $this->getSpreadsheetAutocompleteAttributes( $formFieldArgs ); if ( $formField->getLabel() !== null ) { $gridParamValues['label'] = $formField->getLabel(); } @@ -1309,12 +1309,12 @@ END; $mappingCargoTable = $form_field->getFieldArg( 'mapping cargo table' ); $mappingCargoField = $form_field->getFieldArg( 'mapping cargo field' ); $mappingCargoValueField = $form_field->getFieldArg( 'mapping cargo value field' ); - if ( !$form_submitted && $cur_value !== null && $cur_value !== '' ) { - $cur_value = $this->getCargoBasedMapping( $cur_value, $mappingCargoTable, $mappingCargoField, $mappingCargoValueField, $form_field ); - } - if ( $form_submitted && $cur_value_in_template !== null && $cur_value_in_template !== '' ) { - $cur_value_in_template = $this->getCargoBasedMapping( $cur_value_in_template, $mappingCargoTable, $mappingCargoValueField, $mappingCargoField, $form_field ); - } + if ( !$form_submitted && $cur_value !== null && $cur_value !== '' ) { + $cur_value = $this->getCargoBasedMapping( $cur_value, $mappingCargoTable, $mappingCargoField, $mappingCargoValueField, $form_field ); + } + if ( $form_submitted && $cur_value_in_template !== null && $cur_value_in_template !== '' ) { + $cur_value_in_template = $this->getCargoBasedMapping( $cur_value_in_template, $mappingCargoTable, $mappingCargoValueField, $mappingCargoField, $form_field ); + } } if ( $cur_value !== '' && ( $form_field->hasFieldArg( 'mapping template' ) || @@ -1465,15 +1465,15 @@ END; } } elseif ( count( $sub_components ) == 2 ) { switch ( $sub_components[0] ) { - case 'label': - $input_label = self::getParsedValue( $parser, $sub_components[1] ); - break; - case 'class': - $attr['class'] = $sub_components[1]; - break; - case 'style': - $attr['style'] = Sanitizer::checkCSS( $sub_components[1] ); - break; + case 'label': + $input_label = self::getParsedValue( $parser, $sub_components[1] ); + break; + case 'class': + $attr['class'] = $sub_components[1]; + break; + case 'style': + $attr['style'] = Sanitizer::checkCSS( $sub_components[1] ); + break; } } } diff --git a/includes/PF_Hooks.php b/includes/PF_Hooks.php index bc48a26..6515bda 100644 --- a/includes/PF_Hooks.php +++ b/includes/PF_Hooks.php @@ -347,7 +347,7 @@ class PFHooks { '<div id="pfForm" class="previewnote" style="font-weight: bold">' . $previewNote . "</div>\n<hr />\n"; $form_definition = StringUtils::delimiterReplace( '<noinclude>', '</noinclude>', '', $editpage->textbox1 ); - list( $form_text, $data_text, $form_page_title, $generated_page_name ) = + [ $form_text, $data_text, $form_page_title, $generated_page_name ] = $wgPageFormsFormPrinter->formHTML( $form_definition, null, false, null, null, "Page Forms form preview dummy title", null ); $parserOutput = PFUtils::getParser()->getOutput(); diff --git a/includes/PF_MappingUtils.php b/includes/PF_MappingUtils.php index 35e5d97..3a64585 100644 --- a/includes/PF_MappingUtils.php +++ b/includes/PF_MappingUtils.php @@ -404,7 +404,7 @@ class PFMappingUtils { * @return string */ private static function removeNSPrefixFromLabel( string $label ) { - $labelArr = explode( ':', trim( $label ) ); + $labelArr = explode( ':', trim( $label ) ); if ( count( $labelArr ) > 1 ) { $prefix = array_shift( $labelArr ); $res = implode( ':', $labelArr ); diff --git a/includes/PF_PageSection.php b/includes/PF_PageSection.php index 591541e..5737954 100644 --- a/includes/PF_PageSection.php +++ b/includes/PF_PageSection.php @@ -48,18 +48,18 @@ class PFPageSection { if ( count( $sub_components ) === 2 ) { switch ( $sub_components[0] ) { - case 'level': - $ps->mSectionLevel = $sub_components[1]; - break; - case 'rows': - case 'cols': - case 'class': - case 'editor': - case 'placeholder': - $ps->mSectionArgs[$sub_components[0]] = $sub_components[1]; - break; - default: - // Ignore unknown + case 'level': + $ps->mSectionLevel = $sub_components[1]; + break; + case 'rows': + case 'cols': + case 'class': + case 'editor': + case 'placeholder': + $ps->mSectionArgs[$sub_components[0]] = $sub_components[1]; + break; + default: + // Ignore unknown } } } diff --git a/includes/PF_Template.php b/includes/PF_Template.php index 6176438..0a8c5e2 100644 --- a/includes/PF_Template.php +++ b/includes/PF_Template.php @@ -242,7 +242,7 @@ class PFTemplate { // First, get the table name, and fields, declared for this // template, if any. - list( $tableName, $tableSchema ) = $this->getCargoTableAndSchema( $templateTitle ); + [ $tableName, $tableSchema ] = $this->getCargoTableAndSchema( $templateTitle ); if ( $tableName == null ) { $fieldDescriptions = []; } else { @@ -365,7 +365,7 @@ class PFTemplate { if ( $tableSchemaString === null ) { // There's no declared table - but see if there's an // attached table. - list( $tableName, $isDeclared ) = CargoUtils::getTableNameForTemplate( $templateTitle ); + [ $tableName, $isDeclared ] = CargoUtils::getTableNameForTemplate( $templateTitle ); if ( $tableName == null ) { return [ null, null ]; } diff --git a/includes/PF_TemplateInForm.php b/includes/PF_TemplateInForm.php index c31b717..02fe94e 100644 --- a/includes/PF_TemplateInForm.php +++ b/includes/PF_TemplateInForm.php @@ -78,7 +78,7 @@ class PFTemplateInForm { $tif->mAddButtonText = wfMessage( 'pf_formedit_addanother' )->text(); if ( array_key_exists( $tif->mTemplateName, $wgPageFormsEmbeddedTemplates ) ) { - list( $tif->mEmbedInTemplate, $tif->mEmbedInField ) = + [ $tif->mEmbedInTemplate, $tif->mEmbedInField ] = $wgPageFormsEmbeddedTemplates[$tif->mTemplateName]; $tif->mPlaceholder = PFFormPrinter::placeholderFormat( $tif->mEmbedInTemplate, $tif->mEmbedInField ); } @@ -381,7 +381,7 @@ class PFTemplateInForm { [ '<nowiki', 'nowiki>' ] ]; foreach ( $startAndEndTags as $tags ) { - list( $startTag, $endTag ) = $tags; + [ $startTag, $endTag ] = $tags; $startTagLoc = -1; while ( ( $startTagLoc + strlen( $startTag ) < strlen( $str ) ) && diff --git a/includes/PF_ValuesUtils.php b/includes/PF_ValuesUtils.php index 9851815..d3b3f47 100644 --- a/includes/PF_ValuesUtils.php +++ b/includes/PF_ValuesUtils.php @@ -661,7 +661,7 @@ SERVICE wikibase:label { bd:serviceParam wikibase:language \"" . $wgLanguageCode if ( count( $arr ) == 3 ) { $names_array = self::getValuesForCargoField( $arr[0], $arr[1], $arr[2] ); } else { - list( $table_name, $field_name ) = explode( '|', $source_name, 2 ); + [ $table_name, $field_name ] = explode( '|', $source_name, 2 ); $names_array = self::getAllValuesForCargoField( $table_name, $field_name ); } // Remove blank/null values from the array. @@ -794,7 +794,7 @@ SERVICE wikibase:label { bd:serviceParam wikibase:language \"" . $wgLanguageCode * @return string[] */ public static function setAutocompleteValues( $field_args, $is_list ) { - list( $autocompleteFieldType, $autocompletionSource ) = + [ $autocompleteFieldType, $autocompletionSource ] = self::getAutocompletionTypeAndSource( $field_args ); $autocompleteSettings = $autocompletionSource; if ( $is_list ) { @@ -912,7 +912,7 @@ SERVICE wikibase:label { bd:serviceParam wikibase:language \"" . $wgLanguageCode $rawQuery = $rawQuery . "|named args=yes|link=none|limit=$wgPageFormsMaxAutocompleteValues|searchlabel="; $rawQueryArray = explode( "|", $rawQuery ); - list( $queryString, $processedParams, $printouts ) = SMWQueryProcessor::getComponentsFromFunctionParams( $rawQueryArray, false ); + [ $queryString, $processedParams, $printouts ] = SMWQueryProcessor::getComponentsFromFunctionParams( $rawQueryArray, false ); SMWQueryProcessor::addThisPrintout( $printouts, $processedParams ); $processedParams = SMWQueryProcessor::getProcessedParams( $processedParams, $printouts ); diff --git a/includes/forminputs/PF_ComboBoxInput.php b/includes/forminputs/PF_ComboBoxInput.php index b220c30..64278df 100644 --- a/includes/forminputs/PF_ComboBoxInput.php +++ b/includes/forminputs/PF_ComboBoxInput.php @@ -98,7 +98,7 @@ class PFComboBoxInput extends PFFormInput { } } } else { - list( $autocompleteSettings, $remoteDataType, $delimiter ) = PFValuesUtils::setAutocompleteValues( $other_args, false ); + [ $autocompleteSettings, $remoteDataType, $delimiter ] = PFValuesUtils::setAutocompleteValues( $other_args, false ); $autocompleteSettings = str_replace( "'", "\'", $autocompleteSettings ); } diff --git a/includes/forminputs/PF_DateInput.php b/includes/forminputs/PF_DateInput.php index c5801c4..ac301eb 100644 --- a/includes/forminputs/PF_DateInput.php +++ b/includes/forminputs/PF_DateInput.php @@ -174,7 +174,7 @@ class PFDateInput extends PFFormInput { $month = $date['month']; $day = $date['day']; } else { - list( $year, $month, $day ) = self::parseDate( $date ); + [ $year, $month, $day ] = self::parseDate( $date ); } } else { // Just keep everything at null. diff --git a/includes/forminputs/PF_DatePickerInput.php b/includes/forminputs/PF_DatePickerInput.php index 6d1f575..ea7283c 100644 --- a/includes/forminputs/PF_DatePickerInput.php +++ b/includes/forminputs/PF_DatePickerInput.php @@ -30,7 +30,7 @@ class PFDatePickerInput extends PFFormInput { */ public function __construct( $input_number, $cur_value, $input_name, $disabled, array $other_args ) { if ( $cur_value != '' ) { - list( $year, $month, $day ) = PFDateInput::parseDate( $cur_value ); + [ $year, $month, $day ] = PFDateInput::parseDate( $cur_value ); $cur_value = sprintf( '%04d-%02d-%02d', $year, $month, $day ); } diff --git a/includes/forminputs/PF_DateTimePicker.php b/includes/forminputs/PF_DateTimePicker.php index 75fd4ca..097271d 100644 --- a/includes/forminputs/PF_DateTimePicker.php +++ b/includes/forminputs/PF_DateTimePicker.php @@ -30,7 +30,7 @@ class PFDateTimePicker extends PFFormInput { */ public function __construct( $input_number, $cur_value, $input_name, $disabled, array $other_args ) { if ( $cur_value != '' ) { - list( $year, $month, $day, $time ) = PFDateInput::parseDate( $cur_value, true ); + [ $year, $month, $day, $time ] = PFDateInput::parseDate( $cur_value, true ); $cur_value = sprintf( '%04d-%02d-%02dT%sZ', $year, $month, $day, $time ); } parent::__construct( $input_number, $cur_value, $input_name, $disabled, $other_args ); diff --git a/includes/forminputs/PF_LeafletInput.php b/includes/forminputs/PF_LeafletInput.php index 10b695a..bbee11a 100644 --- a/includes/forminputs/PF_LeafletInput.php +++ b/includes/forminputs/PF_LeafletInput.php @@ -51,7 +51,7 @@ class PFLeafletInput extends PFOpenLayersInput { $imagePage = new ImagePage( $fileTitle ); $file = $imagePage->getDisplayedFile(); $filePath = $wgUploadDirectory . '/' . $file->getUrlRel(); - list( $imageWidth, $imageHeight, $type, $attr ) = getimagesize( $filePath ); + [ $imageWidth, $imageHeight, $type, $attr ] = getimagesize( $filePath ); if ( !array_key_exists( 'height', $other_args ) && !array_key_exists( 'width', $other_args ) ) { // Scale down image if it's huge. $maxDimension = max( $imageHeight, $imageWidth ); diff --git a/includes/forminputs/PF_OpenLayersInput.php b/includes/forminputs/PF_OpenLayersInput.php index b4076ae..cbc4a35 100644 --- a/includes/forminputs/PF_OpenLayersInput.php +++ b/includes/forminputs/PF_OpenLayersInput.php @@ -278,7 +278,7 @@ class PFOpenLayersInput extends PFFormInput { if ( count( $latAndLonStrings ) != 2 ) { throw new MWException( "Error parsing coordinates string: \"$coordinatesString\"." ); } - list( $latString, $lonString ) = $latAndLonStrings; + [ $latString, $lonString ] = $latAndLonStrings; // Handle strings one at a time. $latIsNegative = false; diff --git a/includes/forminputs/PF_TokensInput.php b/includes/forminputs/PF_TokensInput.php index 8309c0a..562a15e 100644 --- a/includes/forminputs/PF_TokensInput.php +++ b/includes/forminputs/PF_TokensInput.php @@ -95,7 +95,7 @@ class PFTokensInput extends PFFormInput { $delimiter = ','; } } else { - list( $autocompleteSettings, $remoteDataType, $delimiter ) = PFValuesUtils::setAutocompleteValues( $other_args, true ); + [ $autocompleteSettings, $remoteDataType, $delimiter ] = PFValuesUtils::setAutocompleteValues( $other_args, true ); } if ( is_array( $cur_value ) ) { diff --git a/includes/parserfunctions/PF_TemplateDisplay.php b/includes/parserfunctions/PF_TemplateDisplay.php index 4418599..93f8b23 100644 --- a/includes/parserfunctions/PF_TemplateDisplay.php +++ b/includes/parserfunctions/PF_TemplateDisplay.php @@ -171,7 +171,7 @@ class PFTemplateDisplay { $mappingFormat = new CargoMapsFormat( $parser->getOutput() ); try { - list( $lat, $lon ) = CargoUtils::parseCoordinatesString( $coordinatesStr ); + [ $lat, $lon ] = CargoUtils::parseCoordinatesString( $coordinatesStr ); } catch ( MWException $e ) { return ''; } diff --git a/includes/parserfunctions/PF_TemplateParams.php b/includes/parserfunctions/PF_TemplateParams.php index 5f0df47..b4f3375 100644 --- a/includes/parserfunctions/PF_TemplateParams.php +++ b/includes/parserfunctions/PF_TemplateParams.php @@ -33,7 +33,7 @@ class PFTemplateParams { $fieldData = []; foreach ( $params as $param ) { - list( $fieldName, $fieldParams ) = self::parseWikitextString( $param ); + [ $fieldName, $fieldParams ] = self::parseWikitextString( $param ); if ( $fieldName !== '' ) { $fieldData[$fieldName] = $fieldParams; } diff --git a/package-lock.json b/package-lock.json index c55e8b2..48ed1ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,17 @@ "devDependencies": { "eslint-config-wikimedia": "0.25.0", "grunt": "1.6.1", - "grunt-banana-checker": "0.11.0", - "grunt-eslint": "24.0.1" + "grunt-banana-checker": "0.11.1", + "grunt-eslint": "24.3.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/@babel/code-frame": { @@ -109,23 +118,23 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", - "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.0", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -171,22 +180,22 @@ } }, "node_modules/@eslint/js": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", - "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -207,15 +216,15 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "node_modules/@mdn/browser-compat-data": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", - "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", + "version": "5.5.20", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.20.tgz", + "integrity": "sha512-33H+GJToNcLfMfWFdzPQIwYN/MYRQ58AAVd/hjWT0ptNiXNWeMs2JWHqv/nrfA/nONTJkAzmyh3XhRXpjYLdTw==", "dev": true }, "node_modules/@nodelib/fs.scandir": { @@ -259,6 +268,12 @@ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -266,9 +281,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -357,20 +372,14 @@ } }, "node_modules/ast-metadata-inferer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz", - "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz", + "integrity": "sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==", "dev": true, "dependencies": { - "@mdn/browser-compat-data": "^3.3.14" + "@mdn/browser-compat-data": "^5.2.34" } }, - "node_modules/ast-metadata-inferer/node_modules/@mdn/browser-compat-data": { - "version": "3.3.14", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz", - "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==", - "dev": true - }, "node_modules/async": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", @@ -412,9 +421,9 @@ } }, "node_modules/browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -424,14 +433,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -468,9 +480,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001341", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001341.tgz", - "integrity": "sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA==", + "version": "1.0.30001608", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001608.tgz", + "integrity": "sha512-cjUJTQkk9fQlJR2s4HMuPMvTiRggl0rAVMtthQuyOlDWuqHXqN8azLq+pi8B2TjwKJ32diHjUqRIKeFX4z1FoA==", "dev": true, "funding": [ { @@ -480,6 +492,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -625,17 +641,6 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "node_modules/core-js": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.5.tgz", - "integrity": "sha512-VP/xYuvJ0MJWRAobcmQ8F2H6Bsn+s7zqAAjFaHGBMc5AQm7zaelhD1LGduFn2EehEcQcU+br6t+fwbpQ5d1ZWA==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -716,9 +721,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", + "version": "1.4.733", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.733.tgz", + "integrity": "sha512-gUI9nhI2iBGF0OaYYLKOaOtliFMl+Bt1rY7VmEjwxOxqoYLub/D9xmduPEhbw2imE6gYkJKhIE5it+KE2ulVxQ==", "dev": true }, "node_modules/error-ex": { @@ -731,9 +736,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -752,27 +757,28 @@ } }, "node_modules/eslint": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", - "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.1", - "@eslint/js": "8.36.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.5.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -780,22 +786,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -833,22 +836,21 @@ } }, "node_modules/eslint-plugin-compat": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz", - "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz", + "integrity": "sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==", "dev": true, "dependencies": { - "@mdn/browser-compat-data": "^4.1.5", - "ast-metadata-inferer": "^0.7.0", - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001304", - "core-js": "^3.16.2", + "@mdn/browser-compat-data": "^5.3.13", + "ast-metadata-inferer": "^0.8.0", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001524", "find-up": "^5.0.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.5" + "lodash.memoize": "^4.1.2", + "semver": "^7.5.4" }, "engines": { - "node": ">=9.x" + "node": ">=14.x" }, "peerDependencies": { "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" @@ -894,21 +896,6 @@ "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-json-es": { "version": "1.5.7", "resolved": "https://registry.npmjs.org/eslint-plugin-json-es/-/eslint-plugin-json-es-1.5.7.tgz", @@ -1027,9 +1014,9 @@ } }, "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -1220,9 +1207,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -1230,6 +1217,9 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-utils": { @@ -1260,12 +1250,15 @@ "dev": true }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/js-yaml": { @@ -1293,14 +1286,14 @@ } }, "node_modules/espree": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", - "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1310,12 +1303,15 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -1421,7 +1417,7 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastq": { @@ -1646,9 +1642,9 @@ } }, "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1660,10 +1656,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "node_modules/grunt": { @@ -1694,9 +1690,9 @@ } }, "node_modules/grunt-banana-checker": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.11.0.tgz", - "integrity": "sha512-qXtcxu7y9GFEIx6ELm5jSf+JqvCafdco+t/YsrUhUDNe9AgCnP7X0R+PxT0qZaDftKVrDrR2gPOYqpaAye5bDw==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.11.1.tgz", + "integrity": "sha512-CF0h/TXaX9sbF2yIz+fUfJc4Zvms7XGYQ7ZYMD5+vv0LMZzSFf7JSHXDaBEs72nQWw4r4ap5fOW3baAliW+0bQ==", "dev": true, "bin": { "banana-checker": "src/cli.js" @@ -1738,13 +1734,13 @@ } }, "node_modules/grunt-eslint": { - "version": "24.0.1", - "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.0.1.tgz", - "integrity": "sha512-gFzp+ikAkwyu6nqBE2zx1pLVL0JPrerG7jaO4uJV3XUGKPIipv4mfhDOS5MyiMrzUtGdXSW8FkRHjoUnfqbW+g==", + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.3.0.tgz", + "integrity": "sha512-dUPiRgX8fhmh4uwTAn9xrzg7HV5j5DhGmZZGJdHfjy/AN9G4jD+5IjfbcAJ209JcIG8m4B7xz3crIhuDSm3siQ==", "dev": true, "dependencies": { "chalk": "^4.1.2", - "eslint": "^8.0.1" + "eslint": "^8.44.0" }, "engines": { "node": ">=12" @@ -2087,16 +2083,6 @@ "node": ">=0.10.0" } }, - "node_modules/js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2318,9 +2304,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/nopt": { @@ -2348,9 +2334,9 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -2418,17 +2404,17 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -2658,9 +2644,9 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" @@ -2936,9 +2922,9 @@ "dev": true }, "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3143,6 +3129,36 @@ "yarn": "*" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -3231,15 +3247,6 @@ "node": ">= 8" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -3298,6 +3305,12 @@ } }, "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, "@babel/code-frame": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", @@ -3372,20 +3385,20 @@ } }, "@eslint-community/regexpp": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true }, "@eslint/eslintrc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", - "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.0", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -3421,19 +3434,19 @@ } }, "@eslint/js": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", - "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true }, "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" } }, @@ -3444,15 +3457,15 @@ "dev": true }, "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "@mdn/browser-compat-data": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", - "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", + "version": "5.5.20", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.20.tgz", + "integrity": "sha512-33H+GJToNcLfMfWFdzPQIwYN/MYRQ58AAVd/hjWT0ptNiXNWeMs2JWHqv/nrfA/nONTJkAzmyh3XhRXpjYLdTw==", "dev": true }, "@nodelib/fs.scandir": { @@ -3487,6 +3500,12 @@ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -3494,9 +3513,9 @@ "dev": true }, "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true }, "acorn-jsx": { @@ -3563,20 +3582,12 @@ "dev": true }, "ast-metadata-inferer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz", - "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz", + "integrity": "sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==", "dev": true, "requires": { - "@mdn/browser-compat-data": "^3.3.14" - }, - "dependencies": { - "@mdn/browser-compat-data": { - "version": "3.3.14", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz", - "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==", - "dev": true - } + "@mdn/browser-compat-data": "^5.2.34" } }, "async": { @@ -3617,16 +3628,15 @@ } }, "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" } }, "browserslist-config-wikimedia": { @@ -3648,9 +3658,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001341", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001341.tgz", - "integrity": "sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA==", + "version": "1.0.30001608", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001608.tgz", + "integrity": "sha512-cjUJTQkk9fQlJR2s4HMuPMvTiRggl0rAVMtthQuyOlDWuqHXqN8azLq+pi8B2TjwKJ32diHjUqRIKeFX4z1FoA==", "dev": true }, "chalk": { @@ -3760,12 +3770,6 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "core-js": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.5.tgz", - "integrity": "sha512-VP/xYuvJ0MJWRAobcmQ8F2H6Bsn+s7zqAAjFaHGBMc5AQm7zaelhD1LGduFn2EehEcQcU+br6t+fwbpQ5d1ZWA==", - "dev": true - }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3820,9 +3824,9 @@ } }, "electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", + "version": "1.4.733", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.733.tgz", + "integrity": "sha512-gUI9nhI2iBGF0OaYYLKOaOtliFMl+Bt1rY7VmEjwxOxqoYLub/D9xmduPEhbw2imE6gYkJKhIE5it+KE2ulVxQ==", "dev": true }, "error-ex": { @@ -3835,9 +3839,9 @@ } }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true }, "escape-string-regexp": { @@ -3847,27 +3851,28 @@ "dev": true }, "eslint": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", - "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.1", - "@eslint/js": "8.36.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.5.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -3875,22 +3880,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "dependencies": { @@ -3901,9 +3903,9 @@ "dev": true }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, "js-yaml": { @@ -3951,19 +3953,18 @@ } }, "eslint-plugin-compat": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz", - "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz", + "integrity": "sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==", "dev": true, "requires": { - "@mdn/browser-compat-data": "^4.1.5", - "ast-metadata-inferer": "^0.7.0", - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001304", - "core-js": "^3.16.2", + "@mdn/browser-compat-data": "^5.3.13", + "ast-metadata-inferer": "^0.8.0", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001524", "find-up": "^5.0.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.5" + "lodash.memoize": "^4.1.2", + "semver": "^7.5.4" } }, "eslint-plugin-es-x": { @@ -3989,17 +3990,6 @@ "esquery": "^1.4.0", "semver": "^7.3.7", "spdx-expression-parse": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "eslint-plugin-json-es": { @@ -4089,9 +4079,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -4221,9 +4211,9 @@ } }, "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -4246,20 +4236,20 @@ "dev": true }, "espree": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", - "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "requires": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "dependencies": { "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true } } @@ -4342,7 +4332,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastq": { @@ -4521,18 +4511,18 @@ } }, "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "grunt": { @@ -4557,9 +4547,9 @@ } }, "grunt-banana-checker": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.11.0.tgz", - "integrity": "sha512-qXtcxu7y9GFEIx6ELm5jSf+JqvCafdco+t/YsrUhUDNe9AgCnP7X0R+PxT0qZaDftKVrDrR2gPOYqpaAye5bDw==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.11.1.tgz", + "integrity": "sha512-CF0h/TXaX9sbF2yIz+fUfJc4Zvms7XGYQ7ZYMD5+vv0LMZzSFf7JSHXDaBEs72nQWw4r4ap5fOW3baAliW+0bQ==", "dev": true }, "grunt-cli": { @@ -4588,13 +4578,13 @@ } }, "grunt-eslint": { - "version": "24.0.1", - "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.0.1.tgz", - "integrity": "sha512-gFzp+ikAkwyu6nqBE2zx1pLVL0JPrerG7jaO4uJV3XUGKPIipv4mfhDOS5MyiMrzUtGdXSW8FkRHjoUnfqbW+g==", + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.3.0.tgz", + "integrity": "sha512-dUPiRgX8fhmh4uwTAn9xrzg7HV5j5DhGmZZGJdHfjy/AN9G4jD+5IjfbcAJ209JcIG8m4B7xz3crIhuDSm3siQ==", "dev": true, "requires": { "chalk": "^4.1.2", - "eslint": "^8.0.1" + "eslint": "^8.44.0" } }, "grunt-known-options": { @@ -4847,12 +4837,6 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, - "js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5034,9 +5018,9 @@ "dev": true }, "node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "nopt": { @@ -5061,9 +5045,9 @@ }, "dependencies": { "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true } } @@ -5118,17 +5102,17 @@ } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" } }, "os-homedir": { @@ -5289,9 +5273,9 @@ "dev": true }, "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true }, "queue-microtask": { @@ -5476,9 +5460,9 @@ "dev": true }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -5628,6 +5612,16 @@ "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", "dev": true }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -5694,12 +5688,6 @@ "isexe": "^2.0.0" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 888ac1c..9a7dc31 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "devDependencies": { "eslint-config-wikimedia": "0.25.0", "grunt": "1.6.1", - "grunt-banana-checker": "0.11.0", - "grunt-eslint": "24.0.1" + "grunt-banana-checker": "0.11.1", + "grunt-eslint": "24.3.0" } } diff --git a/specials/PF_CreateForm.php b/specials/PF_CreateForm.php index d7ed52f..d46c5da 100644 --- a/specials/PF_CreateForm.php +++ b/specials/PF_CreateForm.php @@ -78,7 +78,7 @@ class PFCreateForm extends SpecialPage { # ignore variables that are not of the right form if ( strpos( $var, "_" ) != false ) { # get the template declarations and work from there - list( $action, $id ) = explode( "_", $var, 2 ); + [ $action, $id ] = explode( "_", $var, 2 ); if ( $action == "template" ) { // If the button was pressed to remove // this template, just don't add it to diff --git a/specials/PF_CreateTemplate.php b/specials/PF_CreateTemplate.php index cdb94c9..5151304 100644 --- a/specials/PF_CreateTemplate.php +++ b/specials/PF_CreateTemplate.php @@ -328,7 +328,7 @@ END; if ( count( $var_elements ) != 2 ) { continue; } - list( $field_field, $id ) = $var_elements; + [ $field_field, $id ] = $var_elements; if ( $field_field == 'name' && $id != 'starter' ) { $field = PFTemplateField::create( $val, diff --git a/specials/PF_RunQuery.php b/specials/PF_RunQuery.php index f3a0bc3..b62101f 100644 --- a/specials/PF_RunQuery.php +++ b/specials/PF_RunQuery.php @@ -87,7 +87,7 @@ class PFRunQuery extends IncludableSpecialPage { } $form_context = $embedded ? PFFormPrinter::CONTEXT_EMBEDDED_QUERY : PFFormPrinter::CONTEXT_QUERY; - list( $form_text, $data_text, $form_page_title ) = + [ $form_text, $data_text, $form_page_title ] = $wgPageFormsFormPrinter->formHTML( $form_definition, $form_submitted, false, $form_title->getArticleID(), $content, null, null, $form_context, [], $user diff --git a/specials/PF_UploadWindow.php b/specials/PF_UploadWindow.php index ad2a7c5..ba2fb46 100644 --- a/specials/PF_UploadWindow.php +++ b/specials/PF_UploadWindow.php @@ -303,52 +303,52 @@ class PFUploadWindow extends UnlistedSpecialPage { . '<ul class="warningbox">'; foreach ( $warnings as $warning => $args ) { // Unlike the other warnings, this one can be worked around. - if ( $warning == 'badfilename' ) { - $this->mDesiredDestName = Title::makeTitle( NS_FILE, $args )->getText(); - } + if ( $warning == 'badfilename' ) { + $this->mDesiredDestName = Title::makeTitle( NS_FILE, $args )->getText(); + } - if ( $warning == 'exists' ) { - $msg = self::getExistsWarning( $args ); - } elseif ( $warning == 'no-change' ) { - $file = $args; - $filename = $file->getTitle()->getPrefixedText(); - $msg = "\t<li>" . $this->msg( 'fileexists-no-change', $filename )->parse() . "</li>\n"; - } elseif ( $warning == 'duplicate-version' ) { - $file = $args[0]; - $count = count( $args ); - $filename = $file->getTitle()->getPrefixedText(); - $message = $this->msg( 'fileexists-duplicate-version' ) - ->params( $filename ) - ->numParams( $count ); - $msg = "\t<li>" . $message->parse() . "</li>\n"; - } elseif ( $warning == 'was-deleted' ) { - # If the file existed before and was deleted, warn the user of this - $ltitle = SpecialPage::getTitleFor( 'Log' ); - $llink = $linkRenderer->makeKnownLink( - $ltitle, - $this->msg( 'deletionlog' )->text(), - [], - [ - 'type' => 'delete', - 'page' => Title::makeTitle( NS_FILE, $args )->getPrefixedText(), - ] - ); - $msg = "\t<li>" . $this->msg( 'filewasdeleted' )->rawParams( $llink )->parse() . "</li>\n"; - } elseif ( $warning == 'duplicate' ) { - $msg = $this->getDupeWarning( $args ); - } elseif ( $warning == 'duplicate-archive' ) { - $msg = "\t<li>" . $this->msg( - 'file-deleted-duplicate', - [ Title::makeTitle( NS_FILE, $args )->getPrefixedText() ] - )->parse() . "</li>\n"; - } else { - if ( is_bool( $args ) ) { - $args = []; - } elseif ( !is_array( $args ) ) { - $args = [ $args ]; - } - $msg = "\t<li>" . $this->msg( $warning, $args )->parse() . "</li>\n"; + if ( $warning == 'exists' ) { + $msg = self::getExistsWarning( $args ); + } elseif ( $warning == 'no-change' ) { + $file = $args; + $filename = $file->getTitle()->getPrefixedText(); + $msg = "\t<li>" . $this->msg( 'fileexists-no-change', $filename )->parse() . "</li>\n"; + } elseif ( $warning == 'duplicate-version' ) { + $file = $args[0]; + $count = count( $args ); + $filename = $file->getTitle()->getPrefixedText(); + $message = $this->msg( 'fileexists-duplicate-version' ) + ->params( $filename ) + ->numParams( $count ); + $msg = "\t<li>" . $message->parse() . "</li>\n"; + } elseif ( $warning == 'was-deleted' ) { + # If the file existed before and was deleted, warn the user of this + $ltitle = SpecialPage::getTitleFor( 'Log' ); + $llink = $linkRenderer->makeKnownLink( + $ltitle, + $this->msg( 'deletionlog' )->text(), + [], + [ + 'type' => 'delete', + 'page' => Title::makeTitle( NS_FILE, $args )->getPrefixedText(), + ] + ); + $msg = "\t<li>" . $this->msg( 'filewasdeleted' )->rawParams( $llink )->parse() . "</li>\n"; + } elseif ( $warning == 'duplicate' ) { + $msg = $this->getDupeWarning( $args ); + } elseif ( $warning == 'duplicate-archive' ) { + $msg = "\t<li>" . $this->msg( + 'file-deleted-duplicate', + [ Title::makeTitle( NS_FILE, $args )->getPrefixedText() ] + )->parse() . "</li>\n"; + } else { + if ( is_bool( $args ) ) { + $args = []; + } elseif ( !is_array( $args ) ) { + $args = [ $args ]; } + $msg = "\t<li>" . $this->msg( $warning, $args )->parse() . "</li>\n"; + } $warningHtml .= $msg; } $warningHtml .= "</ul>\n"; diff --git a/tests/phpunit/integration/includes/PFFormPrinterTest.php b/tests/phpunit/integration/includes/PFFormPrinterTest.php index ce29f80..630be16 100644 --- a/tests/phpunit/integration/includes/PFFormPrinterTest.php +++ b/tests/phpunit/integration/includes/PFFormPrinterTest.php @@ -38,7 +38,7 @@ class PFFormPrinterTest extends MediaWikiIntegrationTestCase { $wgOut->getContext()->setTitle( $this->getTitle() ); - list( $form_text, $page_text, $form_page_title, $generated_page_name ) = + [ $form_text, $page_text, $form_page_title, $generated_page_name ] = $wgPageFormsFormPrinter->formHTML( $form_def = $setup['form_definition'], $form_submitted = true, @@ -134,11 +134,11 @@ class PFFormPrinterTest extends MediaWikiIntegrationTestCase { $mockTitle->expects( $this->any() ) ->method( 'getDBkey' ) - ->will( $this->returnValue( 'Sometitle' ) ); + ->willReturn( 'Sometitle' ); $mockTitle->expects( $this->any() ) ->method( 'getNamespace' ) - ->will( $this->returnValue( PF_NS_FORM ) ); + ->willReturn( PF_NS_FORM ); return $mockTitle; } diff --git a/tests/phpunit/integration/includes/forminputs/PFRadioButtonInputTest.php b/tests/phpunit/integration/includes/forminputs/PFRadioButtonInputTest.php index 03335d0..b0d54de 100644 --- a/tests/phpunit/integration/includes/forminputs/PFRadioButtonInputTest.php +++ b/tests/phpunit/integration/includes/forminputs/PFRadioButtonInputTest.php @@ -367,7 +367,7 @@ class PFRadioButtonInputTest extends MediaWikiIntegrationTestCase { if ( isset( $setup['form_definition'] ) ) { // We have to specify a template name $form_definition = "{{{for template|TestTemplate123}}}\n{$setup['form_definition']}\n{{{end template}}}\n{{{standard input|save}}}"; - list( $form_text, $page_text, $form_page_title, $generated_page_name ) + [ $form_text, $page_text, $form_page_title, $generated_page_name ] = $wgPageFormsFormPrinter->formHTML( $form_definition, true, false, null, null, 'TestStringForFormPageTitle', null, @@ -652,11 +652,11 @@ class PFRadioButtonInputTest extends MediaWikiIntegrationTestCase { $mockTitle->expects( $this->any() ) ->method( 'getDBkey' ) - ->will( $this->returnValue( 'Sometitle' ) ); + ->willReturn( 'Sometitle' ); $mockTitle->expects( $this->any() ) ->method( 'getNamespace' ) - ->will( $this->returnValue( PF_NS_FORM ) ); + ->willReturn( PF_NS_FORM ); return $mockTitle; } -- 2.39.2 --- end ---