diff options
author | 2022-11-02 10:42:41 -0400 | |
---|---|---|
committer | 2022-11-02 10:42:41 -0400 | |
commit | 68e83c6fc2c293d98f0745a3332a3fad4bb2dc61 (patch) | |
tree | eefe45ab6e66cd782b603c496bbeca4b196e5343 | |
parent | Update PipeEscape to master as of 2022-11-02 (diff) | |
download | extensions-68e83c6fc2c293d98f0745a3332a3fad4bb2dc61.tar.gz extensions-68e83c6fc2c293d98f0745a3332a3fad4bb2dc61.tar.bz2 extensions-68e83c6fc2c293d98f0745a3332a3fad4bb2dc61.zip |
Update Thanks to master as of 2022-11-02
Signed-off-by: Brian Evans <grknight@gentoo.org>
215 files changed, 6958 insertions, 2218 deletions
diff --git a/Thanks/.eslintrc.json b/Thanks/.eslintrc.json index 618c5bda..04f9da7a 100644 --- a/Thanks/.eslintrc.json +++ b/Thanks/.eslintrc.json @@ -1,12 +1,6 @@ { "root": true, "extends": [ - "wikimedia/client", - "wikimedia/jquery", - "wikimedia/mediawiki" - ], - "rules": { - "max-len": "off", - "no-jquery/no-global-selector": "off" - } + "wikimedia/server" + ] } diff --git a/Thanks/.phpcs.xml b/Thanks/.phpcs.xml index a9c1f665..8bd91628 100644 --- a/Thanks/.phpcs.xml +++ b/Thanks/.phpcs.xml @@ -7,6 +7,6 @@ <exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" /> </rule> <file>.</file> - <arg name="extensions" value="php,php5,inc" /> + <arg name="extensions" value="php" /> <arg name="encoding" value="UTF-8" /> </ruleset> diff --git a/Thanks/.svgo.config.js b/Thanks/.svgo.config.js new file mode 100644 index 00000000..0cb4e64d --- /dev/null +++ b/Thanks/.svgo.config.js @@ -0,0 +1,40 @@ +/** + * SVGO Configuration + * Compatible to v2.4.0+ + * Recommended options from: + * https://www.mediawiki.org/wiki/Manual:Coding_conventions/SVG#Exemplified_safe_configuration + */ +module.exports = { + plugins: [ + { + // Set of built-in plugins enabled by default. + name: 'preset-default', + params: { + overrides: { + cleanupIDs: false, + removeDesc: false, + removeTitle: false, + removeViewBox: false, + // If the SVG doesn't start with an XML declaration, then its MIME type will + // be detected as "text/plain" rather than "image/svg+xml" by libmagic and, + // consequently, MediaWiki's CSSMin CSS minifier. libmagic's default database + // currently requires that SVGs contain an XML declaration: + // https://github.com/threatstack/libmagic/blob/master/magic/Magdir/sgml#L5 + removeXMLProcInst: false + } + } + }, + 'removeRasterImages', + 'sortAttrs' + ], + // Set whitespace according to Wikimedia Coding Conventions. + // @see https://github.com/svg/svgo/blob/main/lib/svgo/coa.js#L194 for more config options + js2svg: { + eol: 'lf', + finalNewline: true, + // Configure the indent to tabs (default 4 spaces) used by `--pretty` here. + indent: '\t', + pretty: true + }, + multipass: true +} diff --git a/Thanks/Gruntfile.js b/Thanks/Gruntfile.js index 727c4405..848ecc71 100644 --- a/Thanks/Gruntfile.js +++ b/Thanks/Gruntfile.js @@ -4,9 +4,10 @@ * @package Thanks */ -/* eslint-env node, es6 */ +'use strict'; + module.exports = function ( grunt ) { - var conf = grunt.file.readJSON( 'extension.json' ); + const conf = grunt.file.readJSON( 'extension.json' ); grunt.loadNpmTasks( 'grunt-banana-checker' ); grunt.loadNpmTasks( 'grunt-contrib-watch' ); @@ -20,7 +21,7 @@ module.exports = function ( grunt ) { }, all: [ '**/*.{js,json}', - '!{vendor,node_modules}/**' + '!{vendor,node_modules,docs}/**' ] }, banana: conf.MessagesDirs, diff --git a/Thanks/Thanks.alias.php b/Thanks/Thanks.alias.php index 245ce719..70f23620 100644 --- a/Thanks/Thanks.alias.php +++ b/Thanks/Thanks.alias.php @@ -173,12 +173,12 @@ $specialPageAliases['zh'] = [ 'Thanks' => [ '感谢', '感謝' ], ]; -/** Simplified Chinese (中文(简体)) */ +/** Simplified Chinese (中文(简体)) */ $specialPageAliases['zh-hans'] = [ 'Thanks' => [ '感谢' ], ]; -/** Traditional Chinese (中文(繁體)) */ +/** Traditional Chinese (中文(繁體)) */ $specialPageAliases['zh-hant'] = [ 'Thanks' => [ '感謝' ], ]; diff --git a/Thanks/Thanks.php b/Thanks/Thanks.php deleted file mode 100644 index b3d48056..00000000 --- a/Thanks/Thanks.php +++ /dev/null @@ -1,38 +0,0 @@ -<?php -/** - * Thanks extension - * - * This extension adds 'thank' links that allow users to thank other users for - * specific revisions. It relies on the Echo extension to send the actual thanks. - * For more info see https://mediawiki.org/wiki/Extension:Thanks - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * This program is distributed WITHOUT ANY WARRANTY. - * - * @file - * @ingroup Extensions - * @author Ryan Kaldari - * @license MIT - */ - -if ( function_exists( 'wfLoadExtension' ) ) { - wfLoadExtension( 'Thanks' ); - // Keep i18n globals so mergeMessageFileList.php doesn't break - $wgMessagesDirs['Thanks'] = __DIR__ . '/i18n'; - $wgExtensionMessagesFiles['ThanksAlias'] = __DIR__ . '/Thanks.alias.php'; - wfWarn( - 'Deprecated PHP entry point used for Thanks extension. Please use wfLoadExtension instead, ' . - 'see https://www.mediawiki.org/wiki/Extension_registration for more details.' - ); -} else { - die( 'This version of the Thanks extension requires MediaWiki 1.25+' ); -} diff --git a/Thanks/composer.json b/Thanks/composer.json index c24ccd32..775731fc 100644 --- a/Thanks/composer.json +++ b/Thanks/composer.json @@ -1,15 +1,15 @@ { "require-dev": { - "mediawiki/mediawiki-codesniffer": "31.0.0", - "mediawiki/mediawiki-phan-config": "0.10.2", - "mediawiki/minus-x": "1.1.0", - "php-parallel-lint/php-console-highlighter": "0.5.0", - "php-parallel-lint/php-parallel-lint": "1.2.0" + "mediawiki/mediawiki-codesniffer": "39.0.0", + "mediawiki/mediawiki-phan-config": "0.12.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" }, "scripts": { "test": [ "parallel-lint . --exclude vendor --exclude node_modules", - "phpcs -p -s", + "@phpcs", "minus-x check ." ], "fix": [ @@ -18,6 +18,8 @@ ], "doc": [ "doxygen" - ] + ], + "phan": "phan -d . --long-progress-bar", + "phpcs": "phpcs -sp --cache" } } diff --git a/Thanks/extension.json b/Thanks/extension.json index aff7b175..cf59879c 100644 --- a/Thanks/extension.json +++ b/Thanks/extension.json @@ -11,7 +11,7 @@ "license-name": "MIT", "type": "other", "requires": { - "MediaWiki": ">= 1.35.0", + "MediaWiki": ">= 1.38.0", "extensions": { "Echo": "*" } @@ -29,7 +29,7 @@ } }, "SpecialPages": { - "Thanks": "SpecialThanks" + "Thanks": "MediaWiki\\Extension\\Thanks\\SpecialThanks" }, "LogTypes": [ "thanks" @@ -38,10 +38,10 @@ "thanks": true }, "LogActionsHandlers": { - "thanks/*": "ThanksLogFormatter" + "thanks/*": "MediaWiki\\Extension\\Thanks\\ThanksLogFormatter" }, "APIModules": { - "thank": "ApiCoreThank" + "thank": "MediaWiki\\Extension\\Thanks\\ApiCoreThank" }, "MessagesDirs": { "Thanks": [ @@ -52,15 +52,8 @@ "ExtensionMessagesFiles": { "ThanksAlias": "Thanks.alias.php" }, - "AutoloadClasses": { - "ThanksHooks": "includes/ThanksHooks.php", - "EchoCoreThanksPresentationModel": "includes/EchoCoreThanksPresentationModel.php", - "EchoFlowThanksPresentationModel": "includes/EchoFlowThanksPresentationModel.php", - "ApiThank": "includes/ApiThank.php", - "ApiCoreThank": "includes/ApiCoreThank.php", - "ApiFlowThank": "includes/ApiFlowThank.php", - "ThanksLogFormatter": "includes/ThanksLogFormatter.php", - "SpecialThanks": "includes/SpecialThanks.php" + "AutoloadNamespaces": { + "MediaWiki\\Extension\\Thanks\\": "includes/" }, "ResourceModules": { "ext.thanks.images": { @@ -107,7 +100,6 @@ "mediawiki.jqueryMsg", "mediawiki.api", "jquery.confirmable", - "jquery.cookie", "ext.thanks" ] }, @@ -173,19 +165,20 @@ ] }, "Hooks": { - "ApiMain::moduleManager": "ThanksHooks::onApiMainModuleManager", - "BeforeCreateEchoEvent": "ThanksHooks::onBeforeCreateEchoEvent", - "BeforePageDisplay": "ThanksHooks::onBeforePageDisplay", - "BeforeSpecialMobileDiffDisplay": "ThanksHooks::onBeforeSpecialMobileDiffDisplay", - "DiffTools": "ThanksHooks::insertThankLink", - "DifferenceEngineViewHeader": "ThanksHooks::onDifferenceEngineViewHeader", - "EchoGetBundleRules": "ThanksHooks::onEchoGetBundleRules", - "EchoGetDefaultNotifiedUsers": "ThanksHooks::onEchoGetDefaultNotifiedUsers", - "GetLogTypesOnUser": "ThanksHooks::onGetLogTypesOnUser", - "HistoryTools": "ThanksHooks::insertThankLink", - "LocalUserCreated": "ThanksHooks::onAccountCreated", - "LogEventsListLineEnding": "ThanksHooks::onLogEventsListLineEnding", - "PageHistoryBeforeList": "ThanksHooks::onPageHistoryBeforeList" + "ApiMain::moduleManager": "MediaWiki\\Extension\\Thanks\\Hooks::onApiMainModuleManager", + "BeforeCreateEchoEvent": "MediaWiki\\Extension\\Thanks\\Hooks::onBeforeCreateEchoEvent", + "BeforePageDisplay": "MediaWiki\\Extension\\Thanks\\Hooks::onBeforePageDisplay", + "BeforeSpecialMobileDiffDisplay": "MediaWiki\\Extension\\Thanks\\Hooks::onBeforeSpecialMobileDiffDisplay", + "DiffTools": "MediaWiki\\Extension\\Thanks\\Hooks::onDiffTools", + "DifferenceEngineViewHeader": "MediaWiki\\Extension\\Thanks\\Hooks::onDifferenceEngineViewHeader", + "EchoGetBundleRules": "MediaWiki\\Extension\\Thanks\\Hooks::onEchoGetBundleRules", + "EchoGetDefaultNotifiedUsers": "MediaWiki\\Extension\\Thanks\\Hooks::onEchoGetDefaultNotifiedUsers", + "GetAllBlockActions": "MediaWiki\\Extension\\Thanks\\Hooks::onGetAllBlockActions", + "GetLogTypesOnUser": "MediaWiki\\Extension\\Thanks\\Hooks::onGetLogTypesOnUser", + "HistoryTools": "MediaWiki\\Extension\\Thanks\\Hooks::onHistoryTools", + "LocalUserCreated": "MediaWiki\\Extension\\Thanks\\Hooks::onAccountCreated", + "LogEventsListLineEnding": "MediaWiki\\Extension\\Thanks\\Hooks::onLogEventsListLineEnding", + "PageHistoryBeforeList": "MediaWiki\\Extension\\Thanks\\Hooks::onPageHistoryBeforeList" }, "config": { "ThanksSendToBots": { @@ -197,7 +190,7 @@ "ThanksConfirmationRequired": { "value": true }, - "ThanksLogTypeWhitelist": { + "ThanksAllowedLogTypes": { "value": [ "contentmodel", "create", @@ -205,11 +198,13 @@ "import", "merge", "move", + "pagelang", "patrol", "protect", "tag", + "upload", "managetags", - "rights", + "rights/rights", "lock" ] } diff --git a/Thanks/i18n/ab.json b/Thanks/i18n/ab.json new file mode 100644 index 00000000..52bebf16 --- /dev/null +++ b/Thanks/i18n/ab.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Fraxinus.cs" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|аџьшьара}}}}" +} diff --git a/Thanks/i18n/ace.json b/Thanks/i18n/ace.json index 41a3b1ec..2f030121 100644 --- a/Thanks/i18n/ace.json +++ b/Thanks/i18n/ace.json @@ -5,5 +5,6 @@ ] }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|kheun sabah}}}}", - "thanks-thank-tooltip": "{{GENDER:$1|Bri thèe}} narit sabah keu {{GENDER:$2|ureueng ngui}} nyoe" + "thanks-thank-tooltip": "{{GENDER:$1|Bri thèe}} narit sabah keu {{GENDER:$2|ureueng ngui}} nyoe", + "thanks": "Peuét teurimong gaséh" } diff --git a/Thanks/i18n/alt.json b/Thanks/i18n/alt.json new file mode 100644 index 00000000..575d7d9d --- /dev/null +++ b/Thanks/i18n/alt.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Батыр Комдошев" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|быйан}}}}", + "thanks-thank-tooltip": "Быйанду самараны {{GENDER:$2|бу туружаачыга}} {{GENDER:$1|аткарар}}" +} diff --git a/Thanks/i18n/ami.json b/Thanks/i18n/ami.json index 46233d72..e30e37d0 100644 --- a/Thanks/i18n/ami.json +++ b/Thanks/i18n/ami.json @@ -1,9 +1,10 @@ { "@metadata": { "authors": [ + "Amire80", "Vickylin77s" ] }, - "thanks-thank": "{{GENDER:$1|{{GENDER:$2| miaray}}}}", - "thanks-thank-tooltip": "{{GENDER:$1| paefer\n}}to cecay sapiaray pakafana’ tonini{{GENDER:$2| micokaymasay}}" + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|miaray}}}}", + "thanks-thank-tooltip": "{{GENDER:$1|paefer}} to cecay sapiaray pakafana’ tonini{{GENDER:$2| micokaymasay}}" } diff --git a/Thanks/i18n/an.json b/Thanks/i18n/an.json new file mode 100644 index 00000000..deaa462d --- /dev/null +++ b/Thanks/i18n/an.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Willtron" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|agradeixer}}}}" +} diff --git a/Thanks/i18n/ang.json b/Thanks/i18n/ang.json index c06aab4e..d8ee1824 100644 --- a/Thanks/i18n/ang.json +++ b/Thanks/i18n/ang.json @@ -2,14 +2,15 @@ "@metadata": { "authors": [ "Gott wisst", + "Heahwrita", "JJohnson1701" ] }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|þancian}}}}", "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|geþancod}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Geþancod}}}}", - "thanks-error-undefined": "Þancung trucode. Bidde genēðe eft.", - "thanks-thank-tooltip": "{{GENDER:$1|Sendan}} þanc {{GENDER:$2|þissum brūcende|þisse brūcicgan}}", + "thanks-error-undefined": "Þancung tosælde (woges runword: $1). Sec eft la.", + "thanks-thank-tooltip": "{{GENDER:$1|Send}} þanc {{GENDER:$2|þissum brucende|þisse brucicgan}}", "echo-category-title-edit-thank": "Þancunga", "notification-thanks-diff-link": "þīn ādihtung" } diff --git a/Thanks/i18n/api/ca.json b/Thanks/i18n/api/ca.json index b7255431..c7167153 100644 --- a/Thanks/i18n/api/ca.json +++ b/Thanks/i18n/api/ca.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "Jmarchn", "Paucabot", "Ssola" ] @@ -11,7 +12,7 @@ "apihelp-flowthank-example-1": "Enviar un agraïment pel comentari amb <kbd>UUID xyz789</kbd>", "apihelp-thank-description": "Envia una notificació d'agraïment a un editor.", "apihelp-thank-summary": "Envia una notificació d'agraïment a un editor.", - "apihelp-thank-param-rev": "Revisió ID per agrair a algú.", + "apihelp-thank-param-rev": "Identificador de revisió per donar l'agraïment a algú. S'ha de proporcionar aquest o el 'log' (haver iniciat la sessió).", "apihelp-thank-param-source": "Un breu comentari que descrigui l'origen de la petició, per exemple <kbd>diff</kbd> o <kbd>historial</kbd>.", "apihelp-thank-example-1": "Doneu les gràcies per la revisió <kbd>ID 456</kbd>, i que la font sigui un diff de la pàgina" } diff --git a/Thanks/i18n/api/fa.json b/Thanks/i18n/api/fa.json index 32c04232..6f6dad31 100644 --- a/Thanks/i18n/api/fa.json +++ b/Thanks/i18n/api/fa.json @@ -2,12 +2,13 @@ "@metadata": { "authors": [ "4nn1l2", + "Beginneruser", "Huji", "Macofe" ] }, - "apihelp-flowthank-description": "تشکر کردن علنی در جریان از یک نظر", - "apihelp-flowthank-summary": "برای یک نظر در فلو، پیام تشکری ارسال کنید.", + "apihelp-flowthank-description": "ارسال آگاهسازی عمومی سپاسگزاری از شما برای یک نظر Flow", + "apihelp-flowthank-summary": "ارسال آگاهسازی عمومی سپاسگزاری از شما برای یک نظر Flow", "apihelp-flowthank-param-postid": "UUIDی پست مشکور", "apihelp-flowthank-example-1": "تشکر کردن از نظر با <kbd>UUID xyz789</kbd>", "apihelp-thank-description": "فرستادن یک اعلان تشکر به یک ویرایشگر.", diff --git a/Thanks/i18n/api/frr.json b/Thanks/i18n/api/frr.json index bb4e2cf9..3f2746ae 100644 --- a/Thanks/i18n/api/frr.json +++ b/Thanks/i18n/api/frr.json @@ -5,11 +5,11 @@ "Murma174" ] }, - "apihelp-flowthank-description": "En öfentelk soonk-bööd för en komentaar schüür.", + "apihelp-flowthank-description": "En öfentelk bööd mä en soonk för en komentaar sjüür.", "apihelp-flowthank-param-postid": "Det UUID faan det besoonket nooracht.", - "apihelp-flowthank-example-1": "Schüür en soonk för di komentaar mä det <kbd>UUID xyz789</kbd>", - "apihelp-thank-description": "Schüür en soonk-bööd tu en skriiwer.", - "apihelp-thank-param-rev": "Werjuuns-ID huar hoker för soonket woort.", + "apihelp-flowthank-example-1": "Sjüür en soonk för di komentaar mä det <kbd>UUID xyz789</kbd>", + "apihelp-thank-description": "Sjüür en bööd mä en soonk tu en skriiwer.", + "apihelp-thank-param-rev": "Wersion ID huar hoker för soonket woort.", "apihelp-thank-param-source": "En kurten beskriiwangs-tekst, t.b. <kbd>diff</kbd> of <kbd>history</kbd>.", - "apihelp-thank-example-1": "Schüür en soonk för det werjuuns-<kbd>ID 456</kbd>, wan det am en ferskeel gongt." + "apihelp-thank-example-1": "Sjüür en soonk för det wersion <kbd>ID 456</kbd>, wan det am en ferskeel gongt." } diff --git a/Thanks/i18n/api/lrc.json b/Thanks/i18n/api/lrc.json deleted file mode 100644 index 5037926c..00000000 --- a/Thanks/i18n/api/lrc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "@metadata": { - "authors": [] - }, - "apihelp-flowthank-example-1": "سی ای ویر و باور وا<kbd>UUID xyz789</kbd> یه گل منمونداری کل بکیت" -} diff --git a/Thanks/i18n/api/lv.json b/Thanks/i18n/api/lv.json index 3f4ed469..6adce666 100644 --- a/Thanks/i18n/api/lv.json +++ b/Thanks/i18n/api/lv.json @@ -10,7 +10,7 @@ "apihelp-flowthank-example-1": "Nosūtīt pateicību par komentāru ar <kbd>UUID xyz789</kbd>", "apihelp-thank-description": "Nosūtīt pateicības paziņojumu redaktoram.", "apihelp-thank-summary": "Nosūtīt pateicības paziņojumu redaktoram.", - "apihelp-thank-param-rev": "Versijas ID, par ko kādam pateikties.", + "apihelp-thank-param-rev": "Versijas ID, par ko kādam pateikties. Jānorāda tas vai 'log' vērtība.", "apihelp-thank-param-log": "Žurnāla ID par ko kādam pateikties. Jānorāda tas vai 'rev' vērtība.", "apihelp-thank-param-source": "Īss teksts, kas apraksta pieprasījuma avotu, piemēram <kbd>diff</kbd> vai <kbd>history</kbd>.", "apihelp-thank-example-1": "Nosūtīt pateicību par versiju <kbd>ID 456</kbd>, kā avotu norādot diff lapu" diff --git a/Thanks/i18n/api/mni.json b/Thanks/i18n/api/mni.json deleted file mode 100644 index c161f100..00000000 --- a/Thanks/i18n/api/mni.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Amire80", - "Laishram Lokendro" - ] - }, - "apihelp-flowthank-description": "Flow comment-gidamak mayamda thagat-wahei khanghanwa thao" -} diff --git a/Thanks/i18n/api/nl.json b/Thanks/i18n/api/nl.json index 7a142c8a..fcbe5b25 100644 --- a/Thanks/i18n/api/nl.json +++ b/Thanks/i18n/api/nl.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "Mainframe98", "Mar(c)" ] }, @@ -10,7 +11,7 @@ "apihelp-flowthank-example-1": "Stuur een bedankje voor de reactie met <kbd>UUID xyz789</kbd>", "apihelp-thank-description": "Stuur een bedankje naar een bewerker.", "apihelp-thank-summary": "Stuur een bedankje naar een bewerker.", - "apihelp-thank-param-rev": "Versie-ID waarvoor u iemand wilt bedanken.", + "apihelp-thank-param-rev": "Versie-ID waarvoor u iemand wilt bedanken. Dit of 'log' moet worden meegegeven.", "apihelp-thank-param-source": "Een korte tekenreeks die de bron van het verzoek beschrijft, bijvoorbeeld <kbd>diff</kbd> of <kbd>history</kbd>.", "apihelp-thank-example-1": "Stuur een bedankje voor versie-<kbd>ID 456</kbd>, waarbij de bron een diff-pagina is" } diff --git a/Thanks/i18n/api/pl.json b/Thanks/i18n/api/pl.json index 5d6296e2..60418c4f 100644 --- a/Thanks/i18n/api/pl.json +++ b/Thanks/i18n/api/pl.json @@ -2,6 +2,7 @@ "@metadata": { "authors": [ "Chrumps", + "Rail", "Woytecr" ] }, @@ -11,8 +12,8 @@ "apihelp-flowthank-example-1": "Wyślij podziękowanie za komentarz z <kbd>UUID xyz789</kbd>", "apihelp-thank-description": "Wysyła powiadomienie z podziękowaniem do edytującego.", "apihelp-thank-summary": "Wysyła powiadomienie z podziękowaniem do edytującego.", - "apihelp-thank-param-rev": "ID wersji za którą podziękować. Musi być podany albo ten parametr albo parametr 'log'.", - "apihelp-thank-param-log": "Identyfikator wpisu rejestru czynności, którego tyczy się podziękowanie. Musi być podany albo ten parametr albo parametr 'rev'.", + "apihelp-thank-param-rev": "ID wersji, za którą podziękować. Musi być podany albo ten parametr, albo parametr „log”.", + "apihelp-thank-param-log": "Identyfikator wpisu rejestru czynności, którego tyczy się podziękowanie. Musi być podany albo ten parametr, albo parametr „rev”.", "apihelp-thank-param-source": "Krótki ciąg znaków opisujący źródło żądania, na przykład <kbd>diff</kbd> lub <kbd>history</kbd>.", - "apihelp-thank-example-1": "Wyślij podziękowanie za wersję o <kbd>ID 456</kbd>, z źródłem będącym stroną porównywania" + "apihelp-thank-example-1": "Wyślij podziękowanie za wersję o <kbd>ID 456</kbd>, ze źródłem będącym stroną porównywania" } diff --git a/Thanks/i18n/api/pt-br.json b/Thanks/i18n/api/pt-br.json index e7fb484c..eebe402d 100644 --- a/Thanks/i18n/api/pt-br.json +++ b/Thanks/i18n/api/pt-br.json @@ -2,6 +2,7 @@ "@metadata": { "authors": [ "Eduardo Addad de Oliveira", + "Eduardoaddad", "Felipe L. Ewald", "HenriqueCrang", "Macofe", diff --git a/Thanks/i18n/api/tl.json b/Thanks/i18n/api/tl.json new file mode 100644 index 00000000..69f06d0c --- /dev/null +++ b/Thanks/i18n/api/tl.json @@ -0,0 +1,17 @@ +{ + "@metadata": { + "authors": [ + "GinawaSaHapon" + ] + }, + "apihelp-flowthank-description": "Magpadala ng pasasalamat para sa isang komento sa Flow.", + "apihelp-flowthank-summary": "Magpadala ng pasasalamat para sa isang komento sa Flow.", + "apihelp-flowthank-param-postid": "Ang UUID ng post na pasasalamatan mo.", + "apihelp-flowthank-example-1": "Magpadala ng pasasalamat para sa komentong may <kbd>UUID xyz789</kbd>", + "apihelp-thank-description": "Magpadala ng pasasalamat sa isang editor.", + "apihelp-thank-summary": "Magpadala ng pasasalamat sa isang editor.", + "apihelp-thank-param-rev": "ID ng rev pasasalamatan mo. Kailangang maibigay ito o ang 'log'.", + "apihelp-thank-param-log": "ID ng log na pasasalamatan mo. Kailangang maibigay ito o ang 'rev'.", + "apihelp-thank-param-source": "Maiksing string na naglalarawan sa pinagmulan ng hiling, halimbawa, <kbd>diff</kbd> o <kbd>history</kbd>.", + "apihelp-thank-example-1": "Magpadala ng pasasalamat para sa pagbabagong <kbd>ID 456</kbd>, kung saan isang pahina ng pagbabago ang pinagmulan." +} diff --git a/Thanks/i18n/api/tr.json b/Thanks/i18n/api/tr.json index 0f2afe8d..d3b81c1c 100644 --- a/Thanks/i18n/api/tr.json +++ b/Thanks/i18n/api/tr.json @@ -6,12 +6,12 @@ }, "apihelp-flowthank-description": "Flow yorumu herkese açık bir teşekkür bildirimi gönderin.", "apihelp-flowthank-summary": "Flow yorumu herkese açık bir teşekkür bildirimi gönderin.", - "apihelp-flowthank-param-postid": "Yazının UUID'si için teşekkürü.", + "apihelp-flowthank-param-postid": "Gönderinizin UUID'si için teşekkürü.", "apihelp-flowthank-example-1": "<kbd>UUID xyz789</kbd> ile yapılan yorum için teşekkür et", "apihelp-thank-description": "Bir editöre teşekkür mesajı gönderin.", "apihelp-thank-summary": "Bir editöre teşekkür mesajı gönderin.", "apihelp-thank-param-rev": "Birine teşekkür revizyon kimliği. Bu veya 'log' sağlanmalıdır.", "apihelp-thank-param-log": "Birine teşekkür için revizyon kimliği. Bu veya 'log' sağlanmalıdır.", "apihelp-thank-param-source": "İsteğin kaynağını tanımlayan kısa bir dize, örneğin <kbd>diff</kbd> veya <kbd>history</kbd>.", - "apihelp-thank-example-1": "<kbd>ID 456</kbd> revizyonu için teşekkürü, kaynak farklı bir sayfadır." + "apihelp-thank-example-1": "<kbd>ID 456</kbd> revizyonu için teşekkür gönderin, kaynak farklı bir sayfadır." } diff --git a/Thanks/i18n/api/vi.json b/Thanks/i18n/api/vi.json index afacf975..62bc54d4 100644 --- a/Thanks/i18n/api/vi.json +++ b/Thanks/i18n/api/vi.json @@ -1,9 +1,18 @@ { "@metadata": { "authors": [ - "Minh Nguyen" + "Minh Nguyen", + "Nghiemtrongdai VN" ] }, "apihelp-flowthank-description": "Gửi lời cảm ơn công khai vì một bình luận Flow.", - "apihelp-thank-param-rev": "Số thay đổi để cảm ơn ai đó. Cần cung cấp số này hoặc “log”." + "apihelp-flowthank-summary": "Gửi lời cảm ơn công khai vì một bình luận Flow.", + "apihelp-flowthank-param-postid": "UUID của bài viết để cảm ơn.", + "apihelp-flowthank-example-1": "Gửi lời cảm ơn về nhận xét với <kbd>UUID xyz789</kbd>", + "apihelp-thank-description": "Gửi thông báo cảm ơn đến một biên tập viên.", + "apihelp-thank-summary": "Gửi thông báo cảm ơn đến một biên tập viên.", + "apihelp-thank-param-rev": "Số thay đổi để cảm ơn ai đó. Cần cung cấp số này hoặc “log”.", + "apihelp-thank-param-log": "Đăng nhập ID để cảm ơn ai đó. Cái này hoặc 'vòng quay' phải được cung cấp.", + "apihelp-thank-param-source": "Ví dụ: một chuỗi ngắn mô tả nguồn của yêu cầu <kbd>khác</kbd> hay <kbd>lịch sử</kbd>.", + "apihelp-thank-example-1": "Gửi lời cảm ơn vì đã sửa đổi <kbd>ID 456</kbd>, với nguồn là một trang khác" } diff --git a/Thanks/i18n/ar.json b/Thanks/i18n/ar.json index 787d4772..32d6ccd5 100644 --- a/Thanks/i18n/ar.json +++ b/Thanks/i18n/ar.json @@ -4,6 +4,7 @@ "ASammour", "Abanima", "Asaifm", + "FShbib", "Macofe", "Maroen1990", "Meno25", @@ -29,7 +30,7 @@ "thanks-button-action-completed": "أنت {{GENDER:$1|{{GENDER:$2|شكرت}}}} $1", "thanks-error-undefined": "فشل الشكر، (رمز العطل: $1) {{GENDER:|حاول|حاولي|حاولوا}} مجددًا.", "thanks-error-invalid-log-id": "إدخال السجل غير موجود", - "thanks-error-invalid-log-type": "نوع السجل '$1' ليس في القائمة البيضاء لأنواع السجلات المسموح بها.", + "thanks-error-invalid-log-type": "نوع السجل '$1' ليس في قائمة أنواع السجلات المسموح بها.", "thanks-error-log-deleted": "مدخلة السجل المطلوبة تم حذفها ولا يمكن إعطاء شكر عليها.", "thanks-error-invalidrevision": "مُعرِّف المراجعة غير صحيح.", "thanks-error-revdeleted": "غير قادر على إرسال شكرا لأنه قد تم حذف المراجعة.", @@ -51,7 +52,7 @@ "echo-pref-tooltip-edit-thank": "أخطرني عندما يشكرني أحدهم على تعديل قمت به.", "echo-category-title-edit-thank": "شكر", "notification-thanks-diff-link": "تعديلك", - "notification-header-rev-thank": "$1 شكر{{GENDER:$2||ت}}ك على {{GENDER:$4|تعديلك}} في <strong>$3</strong>.", + "notification-header-rev-thank": "{{GENDER:$2|شكرك|شكرتك}} $1 على {{GENDER:$4|تعديلك}} في <strong>$3</strong>.", "notification-header-creation-thank": "$1 {{GENDER:$2|شكر|شكرت}}{{GENDER:$4|ك}} على إنشائك <strong>$3</strong>.", "notification-header-log-thank": "$1 {{GENDER:$2|شكر|شكرت}}{{GENDER:$4|ك}} لفعلك المرتبط ب<strong>$3</strong>.", "notification-compact-header-edit-thank": "$1 {{GENDER:$2|شكر}}{{GENDER:$3|ك}}.", @@ -72,5 +73,6 @@ "notification-flow-thanks-post-link": "تعليقك", "notification-header-flow-thank": "{{GENDER:$2|شكرك|شكرتك}} $1 {{GENDER:$5|لتعليقك}} على \"<strong>$3</strong>\".", "notification-compact-header-flow-thank": "$1 {{GENDER:$2|شكر}}{{GENDER:$3|ك}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|شخص واحد|$1 شخص|100=99+ شخص}} {{GENDER:$3|شكرك}} على تعليقك في \"<strong>$2</strong>\"." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|شخص واحد|$1 شخص|100=99+ شخص}} {{GENDER:$3|شكرك}} على تعليقك في \"<strong>$2</strong>\".", + "ipb-action-thanks": "جارٍ إرسال الشكر" } diff --git a/Thanks/i18n/arn.json b/Thanks/i18n/arn.json new file mode 100644 index 00000000..5f236b92 --- /dev/null +++ b/Thanks/i18n/arn.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Manke ruLpa" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|mañumtuku}}}}" +} diff --git a/Thanks/i18n/ary.json b/Thanks/i18n/ary.json index 7709aa25..6413c08c 100644 --- a/Thanks/i18n/ary.json +++ b/Thanks/i18n/ary.json @@ -1,9 +1,13 @@ { "@metadata": { "authors": [ + "Ideophagous", + "Reda Benkhadra", "SADIQUI" ] }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|شكر}}}}", - "thanks-thank-tooltip": "{{GENDER:$1|صيفط|صيفطي}} إشعار شكر ل{{GENDER:$2|هاد المستخدم|هاد المستخدمة}}" + "thanks-thank-tooltip": "{{GENDER:$1|صيفط|صيفطي}} إشعار شكر ل{{GENDER:$2|هاد لخدايمي|هاد لخدايمية}}", + "notification-header-rev-thank": "$1 شكر{{GENDER:$2||ات}}ك على {{GENDER:$4|تبديل ديالك}} ف <strong>$3</strong>.", + "notification-header-flow-thank": "{{GENDER:$2|شكرك|شكراتك}} $1 على {{GENDER:$5|تعليق ديالك}} ف \"<strong>$3</strong>\"." } diff --git a/Thanks/i18n/as.json b/Thanks/i18n/as.json index 489d0607..096a9173 100644 --- a/Thanks/i18n/as.json +++ b/Thanks/i18n/as.json @@ -8,14 +8,25 @@ ] }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ধন্যবাদ}}}}", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|ধন্যবাদ জনাইছে}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|ধন্যবাদ}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|ধন্যবাদ জনাইছে}}}}", + "thanks-button-action-queued": "$1-ক {{GENDER:$1|{{GENDER:$2|ধন্যবাদ জনোৱা হৈছে}}}}…", + "thanks-button-action-cancel": "বাতিল কৰক", + "thanks-button-action-completed": "আপুনি $1-ক {{GENDER:$1|{{GENDER:$2|ধন্যবাদ জনালে}}}}", "thanks-error-notloggedin": "বেনামী ব্যৱহাৰকাৰীসকলে ধন্যবাদ পঠিয়াব নোৱাৰে", "thanks-thank-tooltip": "এই {{GENDER:$2|সদস্যলৈ}} এটা ধন্যবাদ বাৰ্তা {{GENDER:$1|পঠিয়াওক}}", - "thanks-confirmation2": "সকলো ধন্যবাদ ৰাজহুৱা। ধন্যবাদ {{GENDER:$1|জনাব}}?", + "thanks-confirmation2": "ৰাজহুৱাকৈ ধন্যবাদ {{GENDER:$1|জনাব}}?", "thanks": "ধন্যবাদ জ্ঞাপন কৰক", "thanks-submit": "ধন্যবাদ জ্ঞাপন কৰক", "echo-category-title-edit-thank": "ধন্যবাদ", + "notification-thanks-diff-link": "আপোনাৰ সম্পাদনা", + "notification-bundle-header-rev-thank": "{{PLURAL:$1|এজন ব্যক্তিয়ে|$1জন ব্যক্তিয়ে|100=৯৯জনতকৈ অধিক ব্যক্তিয়ে}} আপুনি <strong>$2</strong>-ত কৰা সম্পাদনাটোৰ বাবে {{GENDER:$3|আপোনা}}ক ধন্যবাদ জনাইছে।", + "log-name-thanks": "ধন্যবাদ লগ", + "logeventslist-thanks-log": "ধন্যবাদ লগ", "thanks-error-no-id-specified": "ধন্যবাদ পঠিয়াবলৈ আপুনি এটা সংশোধন বা লগ আই ডি উল্লেখ কৰিব লাগিব।", "thanks-confirmation-special-rev": "আপুনি এই সম্পাদনাটোৰ বাবে ৰাজহুৱাকৈ ধন্যবাদ জ্ঞাপন কৰিব খুজিছে?", "notification-link-text-view-post": "মন্তব্য দেখুৱাওক", - "notification-flow-thanks-post-link": "আপোনাৰ মন্তব্য" + "notification-flow-thanks-post-link": "আপোনাৰ মন্তব্য", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|এজন ব্যক্তিয়ে|$1জন ব্যক্তিয়ে|100=৯৯জনতকৈ অধিক ব্যক্তিয়ে}} আপুনি <strong>$2</strong>-ত দিয়া মন্তব্যটোৰ বাবে {{GENDER:$3|আপোনা}}ক ধন্যবাদ জনাইছে।" } diff --git a/Thanks/i18n/az.json b/Thanks/i18n/az.json index 2f27c5e6..c1f51123 100644 --- a/Thanks/i18n/az.json +++ b/Thanks/i18n/az.json @@ -5,6 +5,7 @@ "Dağlı95", "Interfase", "Khan27", + "NMW03", "Serkanland", "Toghrul Rahimli", "Wertuose" @@ -12,15 +13,15 @@ }, "thanks-desc": "İstifadəçilərin redaktələrinə, şərhlərinə və s. görə minnətdarlıq üçün keçidləri əlavə edir", "thanks-thank": "{{GENDER:$1|{{GENDER:$2|təşəkkür}}}}", - "thanks-thanked": "{{GENDER:$1|təşəkkür edildi}}", - "thanks-button-thank": "{{GENDER:$1|Təşəkkür}}", - "thanks-button-thanked": "{{GENDER:$1|Təşəkkür edildi}}", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|təşəkkür edildi}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Təşəkkür}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Təşəkkür edildi}}}}", "thanks-button-action-queued": "$1 adlı istifadəçiyə {{GENDER:$1|{{GENDER:$2|təşəkkür edilir}}}}…", "thanks-button-action-cancel": "İmtina", "thanks-button-action-completed": "Siz $1 adlı istifadəçiyə {{GENDER:$1|{{GENDER:$2|təşəkkür }}}} etdiniz", - "thanks-error-undefined": "Təşəkkür bildirişinin göndərilməsi alınmadı. Xahiş edirik, yenidən cəhd edin.", + "thanks-error-undefined": "Təşəkkür etmək mümkün olmadı (xəta kodu: $1). Xahiş edirik, yenidən cəhd edin.", "thanks-thank-tooltip": "Bu {{GENDER:$2|istifadəçiyə}} təşəkkür bildirişi {{GENDER:$1|göndər}}.", - "thanks-confirmation2": "Bu dəyişiklik üçün təşəkkür göndərilsin?", + "thanks-confirmation2": "Açıq şəkildə təşəkkür {{GENDER:$1|göndərilsin}}?", "thanks-thanked-notice": "{{GENDER:$3|Siz}} {{GENDER:$2|$1}} adlı istifadəçiyə təşəkkür etdiniz.", "thanks": "Təşəkkür göndər", "thanks-submit": "Təşəkkür göndər", @@ -28,10 +29,12 @@ "echo-category-title-edit-thank": "Təşəkkürlər", "notification-thanks-diff-link": "redaktəniz", "notification-header-rev-thank": "$1 '''$3''' səhifəsindəki redaktənizə görə {{GENDER:$4|sizə}} {{GENDER:$2|təşəkkür etdi}}.", - "notification-header-creation-thank": "$1 <strong>$3</strong> səhifəsini yaratdığınıza görə sizə {{GENDER:$2|təşəkkür etdi}}.", + "notification-header-creation-thank": "$1 <strong>$3</strong> səhifəsini yaratdığınıza görə {{GENDER:$4|sizə}} {{GENDER:$2|təşəkkür etdi}}.", "notification-header-log-thank": "$1 <strong>$3</strong> səhifəsi ilə əlaqəli etdiyiniz fəaliyyətə görə {{GENDER:$4|sizə}} {{GENDER:$2|təşəkkür etdi}}.", - "notification-bundle-header-log-thank": "{{PLURAL:$1|$1 nəfər|$1 nəfər|$1 nəfər|100=99+ nəfər}} <strong>$2</strong> səhifəsi ilə əlaqəli etdiyiniz fəaliyyətə görə {{GENDER:$4|sizə}} təşəkkür etdi..", + "notification-bundle-header-log-thank": "{{PLURAL:$1|Bir nəfər|$1 nəfər|100=99+ nəfər}} <strong>$2</strong> səhifəsi ilə əlaqəli etdiyiniz fəaliyyətə görə {{GENDER:$3|sizə}} təşəkkür etdi.", + "log-name-thanks": "Təşəkkür qeydləri", "logentry-thanks-thank": "$1 {{GENDER:$2}}, {{GENDER:$4|$3}} istifadəçisinə təşəkkür etdi.", + "logeventslist-thanks-log": "Təşəkkür qeydləri", "thanks-confirmation-special-log": "Bu fəaliyyət üçün təşəkkür göndərilsin?", "thanks-confirmation-special-rev": "Bu redaktə üçün təşəkkür göndərilsin?", "flow-thanks-confirmation-special": "Bu şərh üçün təşəkkür göndərilsin?" diff --git a/Thanks/i18n/ban-bali.json b/Thanks/i18n/ban-bali.json new file mode 100644 index 00000000..b9d9968c --- /dev/null +++ b/Thanks/i18n/ban-bali.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Chinamoonroll" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ᬫᬢᬸᬃᬲᬸᬓ᭄ᬲ᭄ᬫ}}}}" +} diff --git a/Thanks/i18n/ban.json b/Thanks/i18n/ban.json index 8fb5007b..1bade5a7 100644 --- a/Thanks/i18n/ban.json +++ b/Thanks/i18n/ban.json @@ -1,10 +1,63 @@ { "@metadata": { "authors": [ + "Chinamoonroll", "Luh Gede Krismayanti", "NoiX180" ] }, + "thanks-desc": "Minambahin pranala antuk ngaturang suksema majeng sang anganggé antuk uahan, cawisan, msl.", "thanks-thank": "{{GENDER:$1|{{GENDER:$2|matur suksema}}}}", - "thanks-thank-tooltip": "\n{{GENDER:$1|Kirim}} atur piuning ngaturang suksma majeng ring {{GENDER:$2|pangawi}}" + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|kaaturang suksema}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Matur suksema}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Kaaturang suksema}}}}", + "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Kantun ngaturang kasih}}}} majeng $1…", + "thanks-button-action-cancel": "Wangdé", + "thanks-button-action-completed": "Ida sampun {{GENDER:$1|{{GENDER:$2|ngaturang suksma}}}} majeng $1", + "thanks-error-undefined": "Kriiman matur suksema gagal (kodé galat:$1). Durus coba malih.", + "thanks-error-invalid-log-id": "Dagingan log nénten katemu", + "thanks-error-invalid-log-type": "Log soroh '$1' nénten wénten ring lis putih jenis log sané kalugra.", + "thanks-error-log-deleted": "Dagingan log sané katunas sampun kausap miwah nénten prasida kaica matur suksema.", + "thanks-error-invalidrevision": "ID révisi nénten patut.", + "thanks-error-revdeleted": "Tan prasida ngirim matur suksma mawinan révisi sampun kausap.", + "thanks-error-notitle": "Murda kaca tan prasida kasinahang", + "thanks-error-invalidrecipient": "Tan prasida nemuin panampi sané patut", + "thanks-error-invalidrecipient-bot": "Bot tan prasida kaaturang suksema", + "thanks-error-invalidrecipient-self": "Ida tan prasida ngaturang suksema antuk ngaraga", + "thanks-error-notloggedin": "Anganggé anonim tan prasida ngaturang suksma", + "thanks-error-ratelimited": "{{GENDER:$1|Ida}} sampun ngaliwatin wates Ida. Durus jantos ajebos miwah coba malih.", + "thanks-error-api-params": "Paraméter 'revid' utawi 'logid' patut kaicain", + "thanks-thank-tooltip": "{{GENDER:$1|Kirim}} atur piuning ngaturang suksma majeng ring {{GENDER:$2|pangawi}}", + "thanks-thank-tooltip-no": "{{GENDER:$1|Wangdé}} panginget matur suksema", + "thanks-thank-tooltip-yes": "{{GENDER:$1|Kirim}} panginget matur suksma", + "thanks-confirmation2": "{{GENDER:$1|Kirim}} matur suksma?", + "thanks-thanked-notice": "{{GENDER:$3|Ida}} ngaturang suksma majeng {{GENDER:$2|$1}}", + "thanks": "Kirim matur suksma", + "thanks-submit": "Kirim matur suksma", + "echo-pref-subscription-edit-thank": "Ngaturang suksma majeng tiang antuk uahan titiang", + "echo-pref-tooltip-edit-thank": "Élingin tiang ri kala satunggil jadma ngaturang suksema majeng tiang antuk uahan sané kakardi tiang.", + "echo-category-title-edit-thank": "Suksma", + "notification-thanks-diff-link": "uahan Ida", + "notification-header-rev-thank": "$1 sampun {{GENDER:$2|ngaturang suksma}} majeng {{GENDER:$4|Ida}} antuk uahan ring <strong>$3</strong>.", + "notification-header-creation-thank": "$1 sampun {{GENDER:$2|ngaturang suksma majeng}} {{GENDER:$4|Ida}} antuk pangardian <strong>$3</strong>.", + "notification-header-log-thank": "$1 sampun {{GENDER:$2|ngaturang suksma majeng}} {{GENDER:$4|Ida}} antuk tatindakan Ida kakait sareng <strong>$3</strong>.", + "notification-compact-header-edit-thank": "$1 sampun {{GENDER:$2|ngaturang suksma}} majeng {{GENDER:$3|Ida}}.", + "notification-bundle-header-rev-thank": "{{PLURAL:$1|Ajadma|$1 jadma|100=99+ jadma}} sampun ngaturang suksma majeng {{GENDER:$3|Ida}} antuk uahan ring <strong>$2</strong>.", + "notification-bundle-header-log-thank": "{{PLURAL:$1|Ajadma|$1 jadma|100=99+ jadma}} sampun ngaturang suksma majeng {{GENDER:$3|Ida}} antuk tatindakan ring <strong>$2</strong>.", + "log-name-thanks": "Log suksma", + "log-description-thanks": "Ring metén puniki lis sang anganggé sané kaaturang suksma saking sang anganggé tiosan.", + "logentry-thanks-thank": "$1 sampun {{GENDER:$2|ngaturang suksma}} majeng {{GENDER:$4|$3}}.", + "logeventslist-thanks-log": "Log suksma", + "thanks-error-no-id-specified": "Ida patut nentuang ID pauahan ataulog antuk ngirimang matur suksma.", + "thanks-confirmation-special-log": "Napiké Ida jagi ngirimang suksma publik antuk tatindakan log puniki?", + "thanks-confirmation-special-rev": "Napiké Ida jagi ngirimang suksma publik antuk uahan puniki?", + "notification-link-text-view-post": "Cingak penampen", + "notification-link-text-view-logentry": "Cingak log dagingan", + "thanks-error-invalidpostid": "ID posting nénten patut.", + "flow-thanks-confirmation-special": "Napiké Ida jagi ngirimang suksma publik antuk cawisan puniki?", + "flow-thanks-thanked-notice": "{{GENDER:$3|Ida}} sampun ngaturang suksma majeng $1 antuk cawisan{{GENDER:$2|nyané}}.", + "notification-flow-thanks-post-link": "penampen ragané", + "notification-header-flow-thank": "$1 sampun {{GENDER:$2|ngaturang suksma}} majeng {{GENDER:$5|Ida}} antuk cawisan ring\"<strong>$3</strong>\".", + "notification-compact-header-flow-thank": "$1 sampun {{GENDER:$2|ngaturang suksma}} majeng {{GENDER:$3|Ida}}.", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Ajadma|$1 jadma|100=99+ jadma}} sampun ngaturang suksma majeng {{GENDER:$3|Ida}} antuk cawisan ring <strong>$2</strong>." } diff --git a/Thanks/i18n/bbc-latn.json b/Thanks/i18n/bbc-latn.json index dd5affee..c06a59a2 100644 --- a/Thanks/i18n/bbc-latn.json +++ b/Thanks/i18n/bbc-latn.json @@ -5,5 +5,5 @@ ] }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|marhamauliateon}}}}", - "thanks-thank-tooltip": "{{GENDER:$1|Tongos}} sada hamauliateon tu {{GENDER:$2|pamangke}} ni on" + "thanks-thank-tooltip": "{{GENDER:$1|Tongos}} sada hamauliateon tu {{GENDER:$2|panghasea}} ni on" } diff --git a/Thanks/i18n/bci.json b/Thanks/i18n/bci.json new file mode 100644 index 00000000..c2022754 --- /dev/null +++ b/Thanks/i18n/bci.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Kjeanclaude" + ] + }, + "thanks-thank": "{{GENDER:$1|}}lé i assé{{GENDER:$2|}}" +} diff --git a/Thanks/i18n/bcl.json b/Thanks/i18n/bcl.json index 9192aba2..e5adf729 100644 --- a/Thanks/i18n/bcl.json +++ b/Thanks/i18n/bcl.json @@ -1,9 +1,10 @@ { "@metadata": { "authors": [ + "Daramlagon", "ShimunUfesoj" ] }, - "thanks-thank": "{{GENDER:$1|{{GENDER:$2|mabalos}}}}", + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|pasalamatan}}}}", "thanks-thank-tooltip": "{{GENDER:$1|Magpadara}} nin sarong abiso nin pasasalamat sa {{GENDER:$2|paragamit}} na ini" } diff --git a/Thanks/i18n/be-tarask.json b/Thanks/i18n/be-tarask.json index 3c55eac2..998a00e9 100644 --- a/Thanks/i18n/be-tarask.json +++ b/Thanks/i18n/be-tarask.json @@ -17,7 +17,7 @@ "thanks-button-action-completed": "Вы {{GENDER:$1|{{GENDER:$2|падзякавалі}}}} $1", "thanks-error-undefined": "Не атрымалася падзякаваць (код памылкі: $1). Калі ласка, паспрабуйце яшчэ раз.", "thanks-error-invalid-log-id": "Запіс журналу ня знойдзены", - "thanks-error-invalid-log-type": "Тып журналу «$1» адсутнічае ў белым сьпісе дазволеных.", + "thanks-error-invalid-log-type": "Тып журналу «$1» адсутнічае ў сьпісе дазволеных.", "thanks-error-log-deleted": "Запытаны запіс журналу быў выдалены, і за яго немагчыма падзякаваць.", "thanks-error-invalidrevision": "Няслушны ідэнтыфікатар вэрсіі", "thanks-error-revdeleted": "Немагчыма адаслаць падзяку, бо вэрсія была выдаленая.", diff --git a/Thanks/i18n/be.json b/Thanks/i18n/be.json index 05527127..ba2217fc 100644 --- a/Thanks/i18n/be.json +++ b/Thanks/i18n/be.json @@ -6,6 +6,9 @@ "Maksim L.", "Mechanizatar", "Mikalai Udodau", + "No Sleep till Krupki", + "Tomato Cream", + "ZlyiLev", "Дзяніс Тутэйшы", "Чаховіч Уладзіслаў" ] @@ -15,11 +18,29 @@ "thanks-thanked": "{{GENDER:$2|{{GENDER:$1|падзякаваў|падзякавала}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Дзякуй}}}}", "thanks-button-thanked": "{{GENDER:$2|{{GENDER:$1|Падзякаваў|Падзякавала}}}}", + "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Дзякуем}}}} $1...", + "thanks-button-action-cancel": "Адмена", + "thanks-button-action-completed": "{{GENDER:$2|{{GENDER:$1|падзякаваў|падзякавала}}}} $1", "thanks-error-undefined": "На атрымалася падзякаваць (код памылкі: $1). Паспрабуйце зноў.", + "thanks-error-invalid-log-id": "Запіс журналу не знойдзены", + "thanks-error-invalid-log-type": "Тып журналу «$1» адсутнічае ў спісе дазволеных тыпаў.", + "thanks-error-log-deleted": "Запытаны запіс журналу быў выдалены, і за яго немагчыма падзякаваць.", "thanks-error-invalidrevision": "Недапушчальны нумар версіі.", + "thanks-error-revdeleted": "Немагчыма адаслаць падзяку, бо версія была выдаленая.", + "thanks-error-notitle": "Немагчыма атрымаць назву старонкі", + "thanks-error-invalidrecipient": "Не знойдзены слушны атрымальнік", + "thanks-error-invalidrecipient-bot": "Робатам падзякаваць немагчыма", + "thanks-error-invalidrecipient-self": "Самім сабе дзякаваць нельга", + "thanks-error-notloggedin": "Ананімныя ўдзельнікі не могуць адсылаць падзякі", "thanks-error-ratelimited": "{{GENDER:$1|Вы}} перавысілі абмежаванне хуткасці выканання такіх дзеянняў. Калі ласка, пачакайце некаторы час і паспрабуйце зноў.", + "thanks-error-api-params": "Мусіць быць пададзены адзін з параметраў «revid» ці «logid»", "thanks-thank-tooltip": "{{GENDER:$1|Адправіць}} {{GENDER:$2|гэтаму ўдзельніку|гэтай удзельніцы}} паведамленне з падзякай", - "thanks-thanked-notice": "$1 {{GENDER:$2|быў абвешчаны|была абвешчана|былі абвешчаны}}, што Вы падзякавалі за {{GENDER:$2|яго|яе|іх}} праўка.", + "thanks-thank-tooltip-no": "{{GENDER:$1|Скасаваць}} паведамленне пра падзяку", + "thanks-thank-tooltip-yes": "{{GENDER:$1|Адаслаць}} паведамленне пра падзяку", + "thanks-confirmation2": "{{GENDER:$1|Даслаць}} публічную падзяку?", + "thanks-thanked-notice": "{{GENDER:$3|Вы}} падзякавалі {{GENDER:$2|$1}}.", + "thanks": "Даслаць падзяку", + "thanks-submit": "Даслаць падзяку", "echo-pref-subscription-edit-thank": "Дзякуй мне за маю праўку", "echo-pref-tooltip-edit-thank": "Паведамляць мне, калі хтосьці дзякуе мяне за зробленую мной праўку.", "echo-category-title-edit-thank": "Дзякуй", @@ -27,10 +48,24 @@ "notification-header-rev-thank": "$1 {{GENDER:$2|падзякаваў|падзякавала}} {{GENDER:$4|вам}} за вашу праўку на старонцы <strong>$3</strong>.", "notification-header-creation-thank": "$1 {{GENDER:$2|падзякаваў|падзякавала}} {{GENDER:$4|вам}} за стварэнне старонкі <strong>$3</strong>.", "notification-header-log-thank": "$1 {{GENDER:$2|падзякаваў|падзякавала}} {{GENDER:$4|Вам}} за дзеянне на старонцы <strong>$3</strong>.", + "notification-compact-header-edit-thank": "$1 {{GENDER:$2|падзякаваў|падзякавала}} {{GENDER:$3|вам}}.", + "notification-bundle-header-rev-thank": "{{PLURAL:$1|Адна асоба падзякавала|$1 асобаў падзякавалі|100=больш за 99 асобаў падзякавалі}} {{GENDER:$3|вам}} за праўку старонкі <strong>$2</strong>.", "notification-bundle-header-log-thank": "{{PLURAL:$1|$1 чалавек падзякаваў|$1 чалавекі падзякавалі|$1 чалавек падзякавала|100=99+ чалавек падзякавала}} {{GENDER:$3|Вам}} за дзеянне, якое адносіцца да старонцы «<strong>$2</strong>».", "log-name-thanks": "Журнал падзяк", "log-description-thanks": "Ніжэй прыведзены спіс удзельнікаў, якія атрымалі падзякі ад іншых удзельнікаў.", "logentry-thanks-thank": "$1 {{GENDER:$2|падзякаваў удзель|падзякавала ўдзель}}{{GENDER:$4|ніку|ніцы}} $3", "logeventslist-thanks-log": "Журнал падзяк", - "notification-header-flow-thank": "$1 {{GENDER:$2|падзякаваў|падзякавала}} {{GENDER:$5|вам}} за ваш каментарый у <strong>$3</strong>." + "thanks-error-no-id-specified": "Дзеля адсылкі падзякі неабходна пазначыць ID версіі ці журналу.", + "thanks-confirmation-special-log": "Вы хочаце даслаць публічную падзяку за гэтае дзеянне?", + "thanks-confirmation-special-rev": "Вы хочаце даслаць публічную падзяку за гэтую праўку?", + "notification-link-text-view-post": "Пабачыць камэнтар", + "notification-link-text-view-logentry": "Пабачыць запіс у журнале", + "thanks-error-invalidpostid": "Ідэнтыфікатар допісу памылковы.", + "flow-thanks-confirmation-special": "Вы хочаце даслаць публічную падзяку за гэты каментарый?", + "flow-thanks-thanked-notice": "{{GENDER:$3|Вы}} падзякавалі $1 за {{GENDER:$2|ягоны|ейны|іхні}} каментар.", + "notification-flow-thanks-post-link": "ваш каментар", + "notification-header-flow-thank": "$1 {{GENDER:$2|падзякаваў|падзякавала}} {{GENDER:$5|вам}} за ваш каментарый у <strong>$3</strong>.", + "notification-compact-header-flow-thank": "$1 {{GENDER:$2|падзякаваў|падзякавала}} {{GENDER:$3|вам}}.", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Адна асоба падзякавала|$1 асобаў падзякавалі|100=больш за 99 асобаў падзякавалі}} {{GENDER:$3|вам}} за ваш каментар на старонцы «<strong>$2</strong>».", + "ipb-action-thanks": "Адпраўка падзякі" } diff --git a/Thanks/i18n/bjn.json b/Thanks/i18n/bjn.json index c808cb98..0274e437 100644 --- a/Thanks/i18n/bjn.json +++ b/Thanks/i18n/bjn.json @@ -5,5 +5,9 @@ ] }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|batarima kasih}}}}", - "thanks-thank-tooltip": "{{GENDER:$1|Kirim}} sabuting pamadahan tarima kasih ka {{GENDER:$2|pamakai}} ngini" + "thanks-thank-tooltip": "{{GENDER:$1|Kirim}} sabuting pamadahan tarima kasih ka {{GENDER:$2|pamakai}} ngini", + "thanks-thank-tooltip-yes": "{{GENDER:$1|Kirim}} pamadahan tarima kasih", + "echo-pref-tooltip-edit-thank": "Padahi ulun wayah sasaurang batarima kasih lawan ulun gasan babakan nang ulun ulah.", + "log-name-thanks": "Catatan tarima kasih", + "logeventslist-thanks-log": "Log tarima kasih" } diff --git a/Thanks/i18n/blk.json b/Thanks/i18n/blk.json new file mode 100644 index 00000000..0c5a5e94 --- /dev/null +++ b/Thanks/i18n/blk.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "咽頭べさ" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ကေꩻဇူꩻတင်ႏငါႏ}}}}" +} diff --git a/Thanks/i18n/bn.json b/Thanks/i18n/bn.json index a6c3ff18..4680951b 100644 --- a/Thanks/i18n/bn.json +++ b/Thanks/i18n/bn.json @@ -63,5 +63,6 @@ "notification-flow-thanks-post-link": "আপনার মন্তব্য", "notification-header-flow-thank": "<strong>$3</strong>-এ আপনার মন্তব্যের জন্য $1 {{GENDER:$5|আপনাকে}} {{GENDER:$2|ধন্যবাদ}} জানিয়েছেন।", "notification-compact-header-flow-thank": "$1 {{GENDER:$3|আপনাকে}} {{GENDER:$2|ধন্যবাদ দিয়েছেন}}।", - "notification-bundle-header-flow-thank": "\"<strong>$2</strong>\"-এ আপনার মন্তব্যের জন্য {{PLURAL:$1|একজন ব্যক্তি|$1 জন ব্যক্তি|100=৯৯+ জন ব্যক্তি}} {{GENDER:$3|আপনাকে}} ধন্যবাদ জানিয়েছেন।" + "notification-bundle-header-flow-thank": "\"<strong>$2</strong>\"-এ আপনার মন্তব্যের জন্য {{PLURAL:$1|একজন ব্যক্তি|$1 জন ব্যক্তি|100=৯৯+ জন ব্যক্তি}} {{GENDER:$3|আপনাকে}} ধন্যবাদ জানিয়েছেন।", + "ipb-action-thanks": "ধন্যবাদ পাঠানো" } diff --git a/Thanks/i18n/bpy.json b/Thanks/i18n/bpy.json new file mode 100644 index 00000000..17d4bae1 --- /dev/null +++ b/Thanks/i18n/bpy.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Usingha" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|থাকাত হারপুৱাদে}}}}", + "thanks-thank-tooltip": "এরে {{GENDER:$2|আতাকুরাগিরে}} থাকাত {{GENDER:$1|দিয়া পেঠাদে}}" +} diff --git a/Thanks/i18n/br.json b/Thanks/i18n/br.json index 1cf79dca..4b6f7c0b 100644 --- a/Thanks/i18n/br.json +++ b/Thanks/i18n/br.json @@ -3,22 +3,43 @@ "authors": [ "Fulup", "Gwenn-Ael", + "Huñvreüs", "Pymouss", "VIGNERON", "Y-M D" ] }, - "thanks-desc": "Ouzhpenn trugarez liammoù en istor ha dif.", + "thanks-desc": "Ouzhpennañ a ra liammoù evit trugarekaat implijerien evit o c’hemmoù, evezhiadennoù, hag all.", "thanks-thank": "{{GENDER:$1|{{GENDER:$2|trugarekaat}}}}", - "thanks-thanked": "{{GENDER:$1|trugarekaet}}", - "thanks-button-thank": "{{GENDER:$1|Trugarez}}", - "thanks-button-thanked": "{{GENDER:$1|Trugarekaet}}", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|trugarekaet}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Trugarekaat}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Trugarekaet}}}}", + "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|O trugarekaat}}}} $1…", + "thanks-button-action-completed": "{{GENDER:$1|{{GENDER:$2|Trugarekaet}}}} ho peus $1", + "thanks-error-log-deleted": "Diverket eo bet an enmont marilh-mañ ha ne c’haller ket trugarekaat evitañ.", + "thanks-error-revdeleted": "Ne c’haller ket trugarekaat pegwir eo bet diverket ur stumm.", + "thanks-error-invalidrecipient-bot": "Ne c’haller ket trugarekaat ar robotoù", + "thanks-error-notloggedin": "Ne c’hall ket an implijerien dizanav kas trugarekadennoù", "thanks-thank-tooltip": "{{GENDER:$1|Kas}} ur c'hemenn trugarekaat d'an {{GENDER:$2|implijer-mañ|implijerez-mañ}}", "thanks-thank-tooltip-no": "{{GENDER:$1|Nullañ}} ar c'hemenn trugarekaat", "thanks-thank-tooltip-yes": "{{GENDER:$1|Kas}} ar c'hemenn trugarekaat", - "thanks-confirmation2": "{{GENDER:$1|Trugarekaat}} evit ar c'hemm-mañ ?", + "thanks-confirmation2": "{{GENDER:$1|Trugarekaat}} war-wel evit ar c'hemm-mañ ?", + "thanks-thanked-notice": "Trugarekaet {{GENDER:$3|ho peus}} {{GENDER:$2|$1}}.", + "thanks-submit": "Kas trugarekadennoù", + "echo-pref-tooltip-edit-thank": "Kemennit ac’hanon pa gas unan bennak trugarekadennoù evit ur c’hemm graet ganin.", "echo-category-title-edit-thank": "Trugarez", "notification-thanks-diff-link": "ho kemm", - "notification-header-rev-thank": "$1 a drugareka ac'hanoc'h evit ho kemm war <strong>$3</strong>.", - "logentry-thanks-thank": "$1 {{GENDER:$2|en deus|he deus}} trugarekaet {{GENDER:$4|$3}}" + "notification-header-rev-thank": "$1 {{GENDER:$2|en|he}} deus trugarekaet {{GENDER:$4|ac'hanoc'h}} evit ho kemm war <strong>$3</strong>.", + "notification-header-log-thank": "$1 {{GENDER:$2|en|he}} deus trugarekaet {{GENDER:$4|ac’hanoc’h}} evit hoc’h ober a-zivout <strong>$3</strong>.", + "notification-bundle-header-rev-thank": "{{PLURAL:$1|Un den en|$1 tud o}} deus trugarekaet {{GENDER:$3|ac’hanoc’h}} evit ho kemm war <strong>$2</strong>.", + "log-name-thanks": "Marilh an trugarekadennoù", + "log-description-thanks": "Setu ur roll an implijerien trugarekaet gant implijerien all.", + "logentry-thanks-thank": "$1 {{GENDER:$2|en deus|he deus}} trugarekaet {{GENDER:$4|$3}}", + "logeventslist-thanks-log": "Marilh an trugarekadennoù", + "thanks-error-no-id-specified": "Rankout a rit diuzañ anaouder ur stumm pe marilh evit kas trugarekadenoù.", + "thanks-confirmation-special-rev": "Fellout a ra deoc’h trugarekaat evit ar c’hemm-mañ en un doare foran?", + "flow-thanks-confirmation-special": "Fellout a ra deoc’h trugarekaat evit an evezhiadenn-mañ en un doare foran?", + "notification-header-flow-thank": "$1 {{GENDER:$2|en|he}} deus trugarekaet {{GENDER:$5|ac’hanoc’h}} evit hoc’h evezhiadenn e \"<strong>$3</strong>\".", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Un den en|$1 den o|100=99+ tud o}} deus trugarekaet {{GENDER:$3|ac’hanac’h}} evit hoc’h evezhiadenn e \"<strong>$2</strong>\".", + "ipb-action-thanks": "Kas trugarekadennoù" } diff --git a/Thanks/i18n/bs.json b/Thanks/i18n/bs.json index 8ac657e8..7f5ab421 100644 --- a/Thanks/i18n/bs.json +++ b/Thanks/i18n/bs.json @@ -5,7 +5,8 @@ "Edinwiki", "KWiki", "Macofe", - "Srdjan m" + "Srdjan m", + "Srđan" ] }, "thanks-desc": "Dodaje mogućnost zahvaljivanja korisnicima za izmjene, komentare, itd.", @@ -32,6 +33,7 @@ "echo-category-title-edit-thank": "Zahvale", "notification-thanks-diff-link": "vašoj izmjeni", "notification-header-rev-thank": "$1 Vam se {{GENDER:$2|zahvalio|zahvalila}} na {{GENDER:$4|Vašoj}} izmjeni stranice <strong>$3</strong>.", + "notification-header-creation-thank": "$1 {{GENDER:$2|zahvalio|zahvalila|zahvalio/-la}} {{GENDER:$4|Vam}} se na stvaranju stranice <strong>$3</strong>.", "notification-compact-header-edit-thank": "$1 {{GENDER:$3|Vam}} se {{GENDER:$2|zahvalio|zahvalila}}.", "log-name-thanks": "Zapisnik zahvalnica", "log-description-thanks": "Ispod se nalazi spisak korisnika kojima su se drugi korisnici zahvalili.", diff --git a/Thanks/i18n/ca.json b/Thanks/i18n/ca.json index 65ad70c3..586a8d13 100644 --- a/Thanks/i18n/ca.json +++ b/Thanks/i18n/ca.json @@ -3,6 +3,7 @@ "authors": [ "F3RaN", "Fitoschido", + "Jmarchn", "KRLS", "Macofe", "Paucabot", @@ -19,7 +20,7 @@ "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Agraït|Agraïda}}}}", "thanks-error-undefined": "L'agraïment ha fallat (codi d'error: $1). Torneu a intentar-ho.", "thanks-error-invalidrevision": "L'identificador de revisió no és vàlid.", - "thanks-error-revdeleted": "La revisió ha estat suprimit", + "thanks-error-revdeleted": "No es pot enviar l'agraïment perquè la revisió s'ha suprimit.", "thanks-error-notitle": "El títol de la pàgina no s'ha pogut recuperar", "thanks-error-invalidrecipient": "No s'ha trobat un destinatari vàlid", "thanks-error-invalidrecipient-bot": "No es pot agrair els bots", @@ -29,8 +30,8 @@ "thanks-thank-tooltip": "{{GENDER:$1|Envia}} una notificació d'agraïment a {{GENDER:$2|aquest usuari|aquesta usuària}}.", "thanks-thank-tooltip-no": "{{GENDER:$1|Cancel·la}} la notificació d'agraïment", "thanks-thank-tooltip-yes": "{{GENDER:$1|Envia}} la notificació d'agraïment", - "thanks-confirmation2": "Tots els agraïments són públics. Voleu {{GENDER:$1|enviar-ne}} un?", - "thanks-thanked-notice": "$1 ha rebut el vostre agraïment per {{GENDER:$2|la seva}} edició.", + "thanks-confirmation2": "{{GENDER:$1|Enviar}} públicament l'agraïment?", + "thanks-thanked-notice": "{{GENDER:$3|Vau agrair}} a {{GENDER:$2|$1}}.", "thanks": "Agraeix", "thanks-submit": "Agraeix", "echo-pref-subscription-edit-thank": "Agraeix la meva edició", @@ -43,11 +44,11 @@ "log-name-thanks": "Registre d'agraïments", "log-description-thanks": "A continuació teniu una llista d'usuaris agraïts per part d'altres usuaris.", "logentry-thanks-thank": "$1 {{GENDER:$2|ha agraït}} {{GENDER:$4|$3}}", - "thanks-error-no-id-specified": "Heu d'especificar una revisió ID per enviar les gràcies.", + "thanks-error-no-id-specified": "Heu d'especificar una revisió o un identificador de registre per enviar l'agraïment.", "notification-link-text-view-post": "Mostra el comentari", "thanks-error-invalidpostid": "Post ID no és vàlid.", "flow-thanks-confirmation-special": "Voleu agrair públicament aquest comentari?", - "flow-thanks-thanked-notice": "$1 ha rebut el vostre agraïment pel {{GENDER:$2|seu|seu|seu}} comentari.", + "flow-thanks-thanked-notice": "{{GENDER:$3|Heu}} agraït $1 pel comentari d'{{GENDER:$2|ell|ella|ells}}.", "notification-flow-thanks-post-link": "el vostre comentari", "notification-header-flow-thank": "$1 {{GENDER:$5|us}} {{GENDER:$2|agraeix}} el comentari a «<strong>$3</strong>».", "notification-compact-header-flow-thank": "$1 {{GENDER:$3|us}} {{GENDER:$2|ha agraït}}.", diff --git a/Thanks/i18n/ce.json b/Thanks/i18n/ce.json index 1d076907..20333ecc 100644 --- a/Thanks/i18n/ce.json +++ b/Thanks/i18n/ce.json @@ -10,9 +10,9 @@ "thanks-thanked": "{{GENDER:$1|Баркалла аьлла}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Баркалла}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Баркалла аьлла}}}}", - "thanks-error-undefined": "Баркалла ала тар цаделира. ЮхагӀорта.", + "thanks-error-undefined": "Баркалла ала тар цаделира. ЙухагӀорта.", "thanks-error-invalidrevision": "Версин нийса йоцу номер.", - "thanks-error-ratelimited": "{{GENDER:$1|Ахьа}} тӀех дукха и дийна. Дехар до, сабардина юхагӀорта.", + "thanks-error-ratelimited": "{{GENDER:$1|Ахьа}} тӀех дукха и дийна. Дехар до, жимӀийна йухагӀорта.", "thanks-thank-tooltip": "{{GENDER:$1|Бахьийта}} {{GENDER:$2|хӀокху декъашхочунга}} баркаллин хаам", "thanks-confirmation2": "ХӀара нисдар дарна баркалла {{GENDER:$1|дӀадохьуьйтий}}?", "thanks-thanked-notice": "$1 {{GENDER:$2|хаам бина}}, {{GENDER:$2|цуна|цера}} нисдар хаза хетта аьлла.", @@ -22,13 +22,13 @@ "echo-pref-tooltip-edit-thank": "Хаийта соьга, цхьам баркалла аьлча.", "echo-category-title-edit-thank": "Баркалла", "notification-thanks-diff-link": "нисдар", - "notification-header-rev-thank": "$1 {{GENDER:$2|хьуна}} {{GENDER:$4|баркалла аьлла}} $3 хӀара агӀо таярна.", + "notification-header-rev-thank": "$1 {{GENDER:$2|хьуна}} {{GENDER:$4|баркалла аьлла}} $3 хӀара агӀо тайарна.", "notification-header-creation-thank": "$1 {{GENDER:$4|хьуна}} {{GENDER:$2|баркалла аьлла}} <strong>$3</strong> агӀо кхолларна.", "log-name-thanks": "Баркаллийн тептар", "log-description-thanks": "Кхечу декъашхоша баркалла аьлла болу декъашхой чохь болу тептар.", "logentry-thanks-thank": "{{GENDER:$4|декъашхочуна}} $3 $1 {{GENDER:$2|баркалла аьла}}", "logeventslist-thanks-log": "Баркаллийн тептар", - "thanks-error-no-id-specified": "Баркалла дӀадахьийта нисдаран ID билгаляккха еза.", + "thanks-error-no-id-specified": "Баркалла дӀадахьийта нисдаран ID билгалйаккха йеза.", "notification-link-text-view-post": "Хьажа къамеле", "thanks-error-invalidpostid": "Хааман магийна доцу ID.", "flow-thanks-confirmation-special": "Лаьий хьуна баркалла ала?", diff --git a/Thanks/i18n/ckb.json b/Thanks/i18n/ckb.json index bc46d042..614570b9 100644 --- a/Thanks/i18n/ckb.json +++ b/Thanks/i18n/ckb.json @@ -1,9 +1,11 @@ { "@metadata": { "authors": [ + "Aram", "Asoxor", "Calak", "Macofe", + "Roj im", "Épine", "ئارام بکر" ] @@ -14,32 +16,32 @@ "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|سپاس بکە}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|سپاسی لێ کرا}}}}", "thanks-button-action-cancel": "ھەڵوەشاندنەوە", - "thanks-error-undefined": "سپاسکردن سەرکەوتوو نەبوو. تکایە دیسان ھەوڵ بدەوە.", + "thanks-error-undefined": "کردەوەی سپاسکردن سەرکەوتوو نەبوو (کۆدی ھەڵە: $1). تکایە دیسان ھەوڵ بدەوە.", "thanks-error-invalidrevision": "پێداچوونەوەی پێناسە نادروستە.", "thanks-error-ratelimited": "{{GENDER:$1|تۆ}} زیاتر لە سنووری خێرایی چووی. تکایە ھەندێک ڕاوەستە و دیسان ھەوڵ بدەوە.", "thanks-thank-tooltip": "ئاگادارییەکی سپاس بۆ ئەم {{GENDER:$2|بەکارھێنەرە}} {{GENDER:$1|بنێرە}}", "thanks-thank-tooltip-no": "ئاگاداریی سپاس {{GENDER:$1|ھەڵوەشێنەرەوە}}", "thanks-thank-tooltip-yes": "ئاگاداریی سپاس {{GENDER:$1|بنێرە}}", - "thanks-confirmation2": "ئاشکرا سپاسی ئەم دەستکارییە {{GENDER:$1|دەکەیت؟}}", - "thanks-thanked-notice": "$1 سپاسەکەت بۆ دەستکارییەکە{{GENDER:$2|ی|ی|ی}} وەردەگرێت.", - "thanks": "سپاس بکە", - "thanks-submit": "سپاس بکە", + "thanks-confirmation2": "ئاشکرا سپاسەکان {{GENDER:$1|دەنێریت}}؟", + "thanks-thanked-notice": "{{GENDER:$3|تۆ}} سپاسی {{GENDER:$2|$1}}ت کرد.", + "thanks": "سپاسی بکە", + "thanks-submit": "سپاسی بکە", "echo-pref-subscription-edit-thank": "بۆ دەستکارییەکم سپاسم بکە", "echo-pref-tooltip-edit-thank": "کاتێک یەکێک بۆ دەستکارییەکی من کردوومە سپاسم دەکا، ئاگادارم بکە.", "echo-category-title-edit-thank": "سپاس", "notification-thanks-diff-link": "دەستکارییەکەت", "notification-header-rev-thank": "$1 {{GENDER:$2|سپاسی}} {{GENDER:$4|کردی}} بۆ دەستکارییەکەت لە '''$3''' دا.", - "notification-header-creation-thank": "$1 لەبەر دروستکردنی <strong>$3</strong> سوپاسی کردیت.", - "notification-header-log-thank": "$1 سپاسی کردیت بۆ کردارەکەت لەسەر <strong>$3</strong>.", - "notification-bundle-header-rev-thank": "$1 کەس سوپاسیان کردیت بۆ دەستکارییەکەت لە <strong>$2</strong>دا.", + "notification-header-creation-thank": "$1 لەبەر دروستکردنی <strong>$3</strong> {{GENDER:$2|سپاسی}} {{GENDER:$4|کردیت}}.", + "notification-header-log-thank": "$1 لەبەر کردەوە پەیوەندیدارەکەت بە <strong>$3</strong> {{GENDER:$2|سپاسی}} {{GENDER:$4|کردیت}}.", + "notification-bundle-header-rev-thank": "{{PLURAL:$1|یەک کەس|$1 کەس|100=99+ کەس}} لەبەر دەستکارییەکەت لەسەر <strong>$2</strong> {{PLURAL:$1|سپاسی|سپاسیان}} {{GENDER:$3|کردیت}}.", "log-name-thanks": "لۆگی سپاس", "log-description-thanks": "ژێرەوە پێرستێکی لەو بەکارھێنەرانەن کە لە لایەن بەکارھێنەرانی ترەوە سپاسیان لێ کراوە.", "logentry-thanks-thank": "$1 {{GENDER:$2|سپاسی کرد}} لە {{GENDER:$4|$3}}", "logeventslist-thanks-log": "لۆگی سپاس", "notification-link-text-view-post": "بۆچوون ببینە", "flow-thanks-confirmation-special": "دەتھەوێت بەئاشکرایی سپاسی ئەم بۆچوونە بکەیت؟", - "flow-thanks-thanked-notice": "$1 سپاسەکەتی وەرگرت لەبەر بۆچوونەکە{{GENDER:$2|ی|ی|ی}}.", + "flow-thanks-thanked-notice": "{{GENDER:$3|تۆ}} لەبەر بۆچوونەکە{{GENDER:$2|ی|ی|ی}} سپاسی $1ت کرد.", "notification-flow-thanks-post-link": "بۆچوونەکەت", - "notification-header-flow-thank": "$1 {{GENDER:$5|سپاسی}} {{GENDER:$2|کردی}} بۆ بۆچوونەکەت لە '''$3'''ی '''$4'''دا.", - "notification-bundle-header-flow-thank": "$1 کەس سوپاسیان کردیت بۆ لێدوانەکەت لە «<strong>$2</strong>»دا." + "notification-header-flow-thank": "$1 لەبەر بۆچوونەکەت لە «<strong>$3</strong>» {{GENDER:$2|سپاسی}} {{GENDER:$5|کردیت}}.", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|یەک کەس|$1 کەس|100=99+ کەس}} لەبەر بۆچوونەکەت لە \n«<strong>$2</strong>» {{PLURAL:$1|سپاسی|سپاسیان}} {{GENDER:$3|کردیت}}." } diff --git a/Thanks/i18n/cop.json b/Thanks/i18n/cop.json new file mode 100644 index 00000000..e02892fc --- /dev/null +++ b/Thanks/i18n/cop.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Bloomaround" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ⲥⲙⲟⲩ}}}}" +} diff --git a/Thanks/i18n/cpx.json b/Thanks/i18n/cpx.json new file mode 100644 index 00000000..f1f88ed6 --- /dev/null +++ b/Thanks/i18n/cpx.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "ChoiChong" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|感謝}}}}" +} diff --git a/Thanks/i18n/crh-latn.json b/Thanks/i18n/crh-latn.json new file mode 100644 index 00000000..564ede20 --- /dev/null +++ b/Thanks/i18n/crh-latn.json @@ -0,0 +1,11 @@ +{ + "@metadata": { + "authors": [ + "TayfunEt." + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|teşekkür}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Teşekkür et}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Teşekkür etildi}}}}", + "notification-bundle-header-rev-thank": "{{PLURAL:$1|Bir kişi|$1 kişi|100=99+ kişi}} <strong>$2</strong> saifesini tüzettiñiz içün {{GENDER:$3|sizge}} teşekkür etti." +} diff --git a/Thanks/i18n/cs.json b/Thanks/i18n/cs.json index ee539cad..8c7d6b6a 100644 --- a/Thanks/i18n/cs.json +++ b/Thanks/i18n/cs.json @@ -9,6 +9,7 @@ "Matěj Suchánek", "Mormegil", "Patriccck", + "Patrik L.", "Tchoř" ] }, diff --git a/Thanks/i18n/cv.json b/Thanks/i18n/cv.json deleted file mode 100644 index 5a4a0be9..00000000 --- a/Thanks/i18n/cv.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Chuvash2014" - ] - }, - "thanks-thank": "тав" -} diff --git a/Thanks/i18n/dag.json b/Thanks/i18n/dag.json new file mode 100644 index 00000000..9bfcf6ca --- /dev/null +++ b/Thanks/i18n/dag.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Dnshitobu" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|npaɣaya}}}}" +} diff --git a/Thanks/i18n/de-ch.json b/Thanks/i18n/de-ch.json deleted file mode 100644 index 008ec34e..00000000 --- a/Thanks/i18n/de-ch.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Geitost", - "J. 'mach' wust" - ] - }, - "flow-thanks-thanked-notice": "$1 erhielt dein Dankeschön für {{GENDER:$2|seinen|ihren|seinen/ihren}} Kommentar." -} diff --git a/Thanks/i18n/de.json b/Thanks/i18n/de.json index 8f044330..88473dd0 100644 --- a/Thanks/i18n/de.json +++ b/Thanks/i18n/de.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "Brettchenweber", "Geitost", "Inkowik", "J. 'mach' wust", @@ -26,7 +27,7 @@ "thanks-button-action-completed": "Du hast $1 {{GENDER:$1|{{GENDER:$2|gedankt}}}}", "thanks-error-undefined": "Bedanken fehlgeschlagen (Fehlercode: $1). Bitte erneut versuchen.", "thanks-error-invalid-log-id": "Logbucheintrag nicht gefunden", - "thanks-error-invalid-log-type": "Der Logbuchtyp „$1“ ist nicht in der weißen Liste der erlaubten Logbuchtypen.", + "thanks-error-invalid-log-type": "Der Logbuchtyp „$1“ ist nicht in der Liste der erlaubten Logbuchtypen.", "thanks-error-log-deleted": "Der gewünschte Logbucheintrag wurde gelöscht und Dankeschöns können nicht für ihn vergeben werden.", "thanks-error-invalidrevision": "Die Versionskennung ist ungültig.", "thanks-error-revdeleted": "Es können keine Dankeschöns versandt werden, da die Version gelöscht wurde.", @@ -41,7 +42,7 @@ "thanks-thank-tooltip-no": "Die Dankeschön-Benachrichtigung {{GENDER:$1|abbrechen}}", "thanks-thank-tooltip-yes": "Die Dankeschön-Benachrichtigung {{GENDER:$1|senden}}", "thanks-confirmation2": "Dankeschön öffentlich {{GENDER:$1|senden}}?", - "thanks-thanked-notice": "{{GENDER:$3|Du}} danktest {{GENDER:$2|$1}}.", + "thanks-thanked-notice": "{{GENDER:$3|Du}} hast {{GENDER:$2|$1}} gedankt.", "thanks": "Für diese Bearbeitung danken", "thanks-submit": "Dankeschön senden", "echo-pref-subscription-edit-thank": "Dankeschöns für meine Bearbeitung", @@ -69,5 +70,6 @@ "notification-flow-thanks-post-link": "deinen Kommentar", "notification-header-flow-thank": "$1 {{GENDER:$2|dankte}} {{GENDER:$5|dir}} für deinen Kommentar „<strong>$3</strong>“.", "notification-compact-header-flow-thank": "$1 {{GENDER:$2|dankte}} {{GENDER:$3|dir}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Eine Person dankte|$1 Personen dankten|100=Mehr als 99 Personen dankten}} {{GENDER:$3|dir}} für deinen Kommentar in „<strong>$2</strong>“." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Eine Person dankte|$1 Personen dankten|100=Mehr als 99 Personen dankten}} {{GENDER:$3|dir}} für deinen Kommentar in „<strong>$2</strong>“.", + "ipb-action-thanks": "Dankeschöns senden" } diff --git a/Thanks/i18n/diq.json b/Thanks/i18n/diq.json index 4ff3409d..b4c10a25 100644 --- a/Thanks/i18n/diq.json +++ b/Thanks/i18n/diq.json @@ -10,9 +10,9 @@ "Orbot707" ] }, - "thanks-thank": "{{GENDER:$1|{{GENDER:$2|teşekur bıkerê }}}}", + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|teşekur bıke}}}}", "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|teşekur kerd}}}}", - "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Teşekur bıkerê}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Teşekur bıke}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Teşekur kerd}}}}", "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Teşekur}}}} $1…", "thanks-button-action-cancel": "Bıtexelne", @@ -20,10 +20,10 @@ "thanks-thank-tooltip": "{{GENDER:$2|Karberi}} rê teşekur {{GENDER:$1|bırışe}}", "thanks-confirmation2": "Şari rê akerde teşekuri {{GENDER:$1|bırışê}}?", "thanks-thanked-notice": "Karberê {{GENDER:$2|$1}} rê {{GENDER:$3|şıma}} teşekur kerd", - "thanks": "Teşekur bıkerê", + "thanks": "Teşekur bırışe", "thanks-submit": "Teşekur bırışe", "echo-pref-subscription-edit-thank": "Serva iştiraki mı rê teşekur biyo", - "echo-category-title-edit-thank": "Teşekuri", + "echo-category-title-edit-thank": "Teşekur", "notification-thanks-diff-link": "vırnayışê şıma", "notification-header-rev-thank": "$1, qandé vurnayışê pera <strong>$3</strong>i {{GENDER:$4|şıma}} rê {{GENDER:$2|teşekur kerd}}.", "notification-header-creation-thank": "$1, serva vıraştışê pela <strong>$3</strong> {{GENDER:$4|şıma}} rê {{GENDER:$2|teşekur kerd}}.", diff --git a/Thanks/i18n/dsb.json b/Thanks/i18n/dsb.json index 0388c4ca..611d92dc 100644 --- a/Thanks/i18n/dsb.json +++ b/Thanks/i18n/dsb.json @@ -2,11 +2,12 @@ "@metadata": { "authors": [ "Derbeth", - "Michawiki" + "Michawiki", + "Vlad5250" ] }, "thanks-desc": "Pśidawa źěkowe wótkaze historiji a wersijowym rozdźělam", - "thanks-thank": "źěkowaś se", + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|źěkowaś se}}}}", "thanks-thanked": "{{GENDER:$1|jo se źěkował|jo se źěkowała}}", "thanks-button-thank": "{{GENDER:$1|Źěkowaś se}}", "thanks-button-thanked": "{{GENDER:$1|Jo se źěkował|Jo se źěkowała}}", diff --git a/Thanks/i18n/el.json b/Thanks/i18n/el.json index a2c0b0dc..d8515967 100644 --- a/Thanks/i18n/el.json +++ b/Thanks/i18n/el.json @@ -3,8 +3,11 @@ "authors": [ "Geraki", "Glavkos", + "NikosLikomitros", "Nikosgranturismogt", - "Protnet" + "Protnet", + "Sarri.greek", + "Αντιγόνη" ] }, "thanks-desc": "Προσθέτει συνδέσμους για να ευχαριστείτε χρήστες για επεξεργασίες, σχόλια, κλπ.", @@ -27,6 +30,7 @@ "echo-category-title-edit-thank": "Ευχαριστίες", "notification-thanks-diff-link": "την επεξεργασία σου", "notification-header-rev-thank": "{{GENDER:$2|Ο|Η}} $1 {{GENDER:$4|σας}} ευχαρίστησε για την επεξεργασία σας στην <strong>$3</strong>.", + "notification-header-creation-thank": "{{GENDER:$2|Ο|Η}} $1 {{GENDER:$4|σας}} ευχαρίστησε για τη δημιουργία της σελίδας <strong>$3</strong>.", "notification-compact-header-edit-thank": "{{GENDER:$2|Ο|Η}} $1 {{GENDER:$3|σας}} ευχαρίστησε.", "notification-bundle-header-rev-thank": "{{PLURAL:$1|Ένα άτομο σας ευχαρίστησε|$1 άτομα σας ευχαρίστησαν|100=99+ άτομα σας ευχαρίστησαν}} για την επεξεργασία {{GENDER:$3|σας}} στην <strong>$2</strong>.", "log-name-thanks": "Καταγραφή ευχαριστηρίων", @@ -34,6 +38,7 @@ "logentry-thanks-thank": "{{GENDER:$2|Ο|Η}} $1 ευχαρίστησε {{GENDER:$4|τον|την}} $3", "logeventslist-thanks-log": "Καταγραφή ευχαριστηρίων", "thanks-error-no-id-specified": "Πρέπει να καθορίσετε αναγνωριστικό αναθεώρησης ή αρχείου καταγραφών για να στείλετε ευχαριστίες.", + "thanks-confirmation-special-rev": "Θέλετε να στείλετε δημόσια ευχαριστία για αυτή την επεξεργασία;", "notification-link-text-view-post": "Προβολή σχολίου", "thanks-error-invalidpostid": "Το Post ID δεν είναι έγκυρο.", "flow-thanks-confirmation-special": "Θέλετε να στείλετε δημόσια ευχαριστία για αυτό το σχόλιο;", diff --git a/Thanks/i18n/en.json b/Thanks/i18n/en.json index a8ec42a7..4b096ac6 100644 --- a/Thanks/i18n/en.json +++ b/Thanks/i18n/en.json @@ -14,7 +14,7 @@ "thanks-button-action-completed": "You {{GENDER:$1|{{GENDER:$2|thanked}}}} $1", "thanks-error-undefined": "Thank action failed (error code: $1). Please try again.", "thanks-error-invalid-log-id": "Log entry not found", - "thanks-error-invalid-log-type": "Log type '$1' is not in the whitelist of permitted log types.", + "thanks-error-invalid-log-type": "Log type '$1' is not in the list of permitted log types.", "thanks-error-log-deleted": "The requested log entry has been deleted and thanks cannot be given for it.", "thanks-error-invalidrevision": "Revision ID is not valid.", "thanks-error-revdeleted": "Unable to send thanks because the revision has been deleted.", @@ -57,5 +57,6 @@ "notification-flow-thanks-post-link": "your comment", "notification-header-flow-thank": "$1 {{GENDER:$2|thanked}} {{GENDER:$5|you}} for your comment in \"<strong>$3</strong>\".", "notification-compact-header-flow-thank": "$1 {{GENDER:$2|thanked}} {{GENDER:$3|you}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|One person|$1 people|100=99+ people}} thanked {{GENDER:$3|you}} for your comment in \"<strong>$2</strong>\"." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|One person|$1 people|100=99+ people}} thanked {{GENDER:$3|you}} for your comment in \"<strong>$2</strong>\".", + "ipb-action-thanks": "Sending thanks" } diff --git a/Thanks/i18n/es.json b/Thanks/i18n/es.json index 115854cc..0a3a633f 100644 --- a/Thanks/i18n/es.json +++ b/Thanks/i18n/es.json @@ -1,6 +1,8 @@ { "@metadata": { "authors": [ + "-sasha-", + "AVIADOR71", "Alan", "Fitoschido", "Hahc21", @@ -10,6 +12,7 @@ "MarcoAurelio", "Peter Bowman", "PoLuX124", + "Rodney Araujo", "Savh", "Sethladan", "Themasterriot" @@ -22,6 +25,7 @@ "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Agradecido|Agradecida}}}}", "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Agradeciendo}}}} a $1…", "thanks-button-action-cancel": "Cancelar", + "thanks-button-action-completed": "{{GENDER:$1|{{GENDER:$2|Agradeciste}}}} a $1", "thanks-error-undefined": "El agradecimiento falló (código de error: $1). Inténtalo de nuevo.", "thanks-error-invalid-log-id": "No se ha encontrado la entrada en el registro", "thanks-error-invalid-log-type": "El tipo de registro «$1» no se encuentra en la lista blanca de tipos permitidos.", @@ -37,10 +41,10 @@ "thanks-thank-tooltip": "{{GENDER:$1|Enviar}} una notificación de agradecimiento a {{GENDER:$2|este usuario|esta usuaria}}", "thanks-thank-tooltip-no": "{{GENDER:$1|Cancelar}} la notificación de agradecimiento", "thanks-thank-tooltip-yes": "{{GENDER:$1|Enviar}} la notificación de agradecimiento", - "thanks-confirmation2": "¿Quieres {{GENDER:$1|enviar}} tu agradecimiento públicamente?", + "thanks-confirmation2": "¿Quieres {{GENDER:$1|agradecer}} públicamente?", "thanks-thanked-notice": "{{GENDER:$3|Agradeciste}} a {{GENDER:$2|$1}}.", - "thanks": "Enviar agradecimiento", - "thanks-submit": "Enviar agradecimiento", + "thanks": "Agradecer", + "thanks-submit": "Agradecer", "echo-pref-subscription-edit-thank": "Agradecerme mi edición", "echo-pref-tooltip-edit-thank": "Notificarme cuando alguien me agradezca por una edición que haya realizado.", "echo-category-title-edit-thank": "Agradecimientos", @@ -53,7 +57,7 @@ "notification-bundle-header-log-thank": "{{PLURAL:$1|Una persona|$1 personas|100=Más de 99 personas}} {{PLURAL:$1|agradeció|agradecieron}} {{GENDER:$3|tu}} acción en <strong>$2</strong>.", "log-name-thanks": "Registro de agradecimientos", "log-description-thanks": "A continuación se muestra una lista de usuarios agradecidos por otros usuarios.", - "logentry-thanks-thank": "$1 {{GENDER:$2|se lo agradeció}} a {{GENDER:$4|$3}}", + "logentry-thanks-thank": "$1 {{GENDER:$2|le dio las gracias}} a {{GENDER:$4|$3}}", "logeventslist-thanks-log": "Registro de agradecimientos", "thanks-error-no-id-specified": "Debes especificar una revisión o un identificador de registro para enviar agradecimientos.", "thanks-confirmation-special-log": "¿Quieres agradecer públicamente esta acción del registro?", @@ -61,7 +65,7 @@ "notification-link-text-view-post": "Ver comentario", "notification-link-text-view-logentry": "Ver entrada de registro", "thanks-error-invalidpostid": "El identificador de publicación no es válido.", - "flow-thanks-confirmation-special": "¿Deseas agradecer públicamente este comentario?", + "flow-thanks-confirmation-special": "¿Quieres agradecer públicamente este comentario?", "flow-thanks-thanked-notice": "{{GENDER:$3|Agradeciste}} a $1 {{GENDER:$2|su}} comentario.", "notification-flow-thanks-post-link": "tu comentario", "notification-header-flow-thank": "$1 {{GENDER:$2|agradeció}} {{GENDER:$5|tu}} comentario en \"<strong>$3</strong>\".", diff --git a/Thanks/i18n/et.json b/Thanks/i18n/et.json index 2fe1d394..94f84583 100644 --- a/Thanks/i18n/et.json +++ b/Thanks/i18n/et.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "Adeliine", "Kyng", "Macofe", "Pikne" @@ -16,7 +17,7 @@ "thanks-button-action-completed": "{{GENDER:$2|Tänasid}} kasutajat $1", "thanks-error-undefined": "Tänamine ebaõnnestus (tõrkekood: $1). Palun proovi uuesti.", "thanks-error-invalid-log-id": "Logisissekannet ei leidu", - "thanks-error-invalid-log-type": "Logitüüp \"$1\" pole lubatud logitüüpide valges nimekirjas.", + "thanks-error-invalid-log-type": "Logitüüp \"$1\" pole lubatud logitüüpide nimekirjas.", "thanks-error-log-deleted": "Päritud logisissekanne on kustutatud ja selle eest ei saa tänu avaldada.", "thanks-error-invalidrevision": "Redaktsiooni identifikaator ei sobi.", "thanks-error-revdeleted": "Ei saa tänuteavitust saata, sest redaktsioon on kustutatud.", diff --git a/Thanks/i18n/eu.json b/Thanks/i18n/eu.json index eced2737..687a80ee 100644 --- a/Thanks/i18n/eu.json +++ b/Thanks/i18n/eu.json @@ -16,7 +16,7 @@ "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Eskertuta}}}}", "thanks-error-undefined": "Ekertzeko ekintzak huts egin du (errorearen kodea: $1). Saiatu berriro mesedez.", "thanks-thank-tooltip": "{{GENDER:$1|Bidali}} eskertze mezua {{GENDER:$2|lankide}} honi", - "thanks-confirmation2": "Eskerrak {{GENDER:$1|bidali}} edizio honengatik?", + "thanks-confirmation2": "Publikoki {{GENDER:$1|eskertu}}?", "thanks-thanked-notice": "$1 {{GENDER:$2|wikilariari}} eskerrak eman {{GENDER:$3|dizkiozu}}.", "thanks": "Eman eskerrak", "thanks-submit": "Bidali eskerrak", @@ -27,6 +27,8 @@ "notification-header-rev-thank": "$1 lankideak '''$3''' orrian egin {{GENDER:$4|duzun}} aldaketa eskertu {{GENDER:$2|dizu}}.", "log-name-thanks": "Eskertza erregistroa", "logentry-thanks-thank": "$1 {{GENDER:$2|wikilariak}} eskerrak eman dizkio {{GENDER:$4|$3}} wikilariari", + "thanks-confirmation-special-log": "Publikoki eskertu nahi duzu egunkari ekintza hau?", + "thanks-confirmation-special-rev": "Publikoki eskertu nahi duzu edizio hau?", "notification-link-text-view-post": "Erakutsi iruzkina", "flow-thanks-confirmation-special": "Iruzkin hau eskertu nahi duzu?", "flow-thanks-thanked-notice": "{{GENDER:$3|Zu}} eskerrak $1 {{GENDER:$2|mutilarena|neskarena|haiena}}agatik oharra.", diff --git a/Thanks/i18n/fa.json b/Thanks/i18n/fa.json index eb0308a2..53760447 100644 --- a/Thanks/i18n/fa.json +++ b/Thanks/i18n/fa.json @@ -9,6 +9,7 @@ "Amirsara", "Armin1392", "AzorAhai", + "Beginneruser", "Dalba", "Ebraminio", "Huji", @@ -28,10 +29,12 @@ "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|تشکر شد}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|تشکر}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|تشکر شد}}}}", + "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|درحال تشکر}}}} $1…", "thanks-button-action-cancel": "لغو", + "thanks-button-action-completed": "{{GENDER:$1|{{GENDER:$2|تشکر شد}}}}", "thanks-error-undefined": "عمل تشکر ناموفق بود (پیام خطا: $1). لطفاً دوباره تلاش کنید.", "thanks-error-invalid-log-id": "مورد سیاهه یافته نشد", - "thanks-error-invalid-log-type": "نوع سیاههٔ «$1» در فهرست سفید انواع سیاههٔ مجاز نیست.", + "thanks-error-invalid-log-type": "نوع سیاههٔ '$1' در فهرست انواع سیاههٔ مجاز نیست.", "thanks-error-log-deleted": "مورد سیاههٔ درخواست شده، حذف شدهاست و امکان تشکر برای آن وجود ندارد.", "thanks-error-invalidrevision": "شناسهٔ نسخه معتبر نیست.", "thanks-error-revdeleted": "تشکر کردن ممکن نیست، چون ویرایش حذف شدهاست.", @@ -74,5 +77,6 @@ "notification-flow-thanks-post-link": "نظر شما", "notification-header-flow-thank": "$1 از {{GENDER:$5|شما}} به خاطر نظرتان در «<strong>$3</strong>» {{GENDER:$2|تشکر کرد}}.", "notification-compact-header-flow-thank": "$1 از {{GENDER:$3|شما}} {{GENDER:$2|تشکر کرد}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|یک نفر|$1 نفر|100=بیش از ۹۹ نفر}} از شما برای نظرتان در «<strong>$2</strong>» {{GENDER:$3|تشکر}} {{PLURAL:$1|کرد|کردند}}." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|یک نفر|$1 نفر|100=بیش از ۹۹ نفر}} از شما برای نظرتان در «<strong>$2</strong>» {{GENDER:$3|تشکر}} {{PLURAL:$1|کرد|کردند}}.", + "ipb-action-thanks": "ارسال تشکر" } diff --git a/Thanks/i18n/fat.json b/Thanks/i18n/fat.json new file mode 100644 index 00000000..6116d17d --- /dev/null +++ b/Thanks/i18n/fat.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Leonard Nketsia" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|da ase}}}}" +} diff --git a/Thanks/i18n/ff.json b/Thanks/i18n/ff.json index 19bc13c9..b6208ceb 100644 --- a/Thanks/i18n/ff.json +++ b/Thanks/i18n/ff.json @@ -1,7 +1,8 @@ { "@metadata": { "authors": [ - "Ibrahima" + "Ibrahima", + "Ibrahima Malal Sarr" ] }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|jaar}}}}", diff --git a/Thanks/i18n/fon.json b/Thanks/i18n/fon.json new file mode 100644 index 00000000..0975d12b --- /dev/null +++ b/Thanks/i18n/fon.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Mahuton" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|É na cɛ nu mǐ}}}}" +} diff --git a/Thanks/i18n/fr.json b/Thanks/i18n/fr.json index 51e4fcf3..f41902c3 100644 --- a/Thanks/i18n/fr.json +++ b/Thanks/i18n/fr.json @@ -30,56 +30,57 @@ }, "thanks-desc": "Ajoute des liens pour remercier les utilisateurs pour des modifications, des commentaires, etc.", "thanks-thank": "{{GENDER:$1|}}remercier{{GENDER:$2|}}", - "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|remercié|remerciée|remercié(e)}}}}", - "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Remercier}}}}", - "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Remercié|Remerciée|Remercié(e)}}}}", - "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Remercie}}}} $1…", + "thanks-thanked": "{{GENDER:$1|}}remercié{{GENDER:$2||e|(e)}}", + "thanks-button-thank": "{{GENDER:$1|}}Remercier{{GENDER:$2|}}", + "thanks-button-thanked": "{{GENDER:$1|}}Remercié{{GENDER:$2||e|(e)}}", + "thanks-button-action-queued": "{{GENDER:$2|}}Remerciement de {{GENDER:$1|}}$1...", "thanks-button-action-cancel": "Annuler", - "thanks-button-action-completed": "Vous avez {{GENDER:$1|{{GENDER:$2|remercié}}}} $1", - "thanks-error-undefined": "Échec de l’action de remerciement (code d'erreur : $1). Veuillez réessayer.", + "thanks-button-action-completed": "{{GENDER:$2|}}Vous avez remercié {{GENDER:$1|}}$1", + "thanks-error-undefined": "Échec de l’action de remerciement (code d’erreur : $1). Veuillez essayer à nouveau.", "thanks-error-invalid-log-id": "Entrée non trouvée dans le journal", - "thanks-error-invalid-log-type": "Le type de journal '$1' n’est pas dans la liste blanche des types de journaux autorisés.", + "thanks-error-invalid-log-type": "Le type de journal « $1 » n’est pas dans la liste des types de journaux autorisés.", "thanks-error-log-deleted": "L’entrée de journal demandée a été supprimée et il est impossible de remercier pour cela.", - "thanks-error-invalidrevision": "L’ID de révision n’est pas valide.", - "thanks-error-revdeleted": "Impossible d'envoyer les remerciements car la révision a été supprimée.", - "thanks-error-notitle": "Le titre de la page n'a pas pu être récupéré", - "thanks-error-invalidrecipient": "Pas de destinataire valide trouvé", + "thanks-error-invalidrevision": "L’identifiant de révision n’est pas valide.", + "thanks-error-revdeleted": "Impossible d’envoyer les remerciements car la révision a été supprimée.", + "thanks-error-notitle": "Le titre de la page n’a pas pu être récupéré", + "thanks-error-invalidrecipient": "Aucun destinataire valide trouvé", "thanks-error-invalidrecipient-bot": "Les robots ne peuvent pas être remerciés", "thanks-error-invalidrecipient-self": "Vous ne pouvez pas vous remercier vous-même.", - "thanks-error-notloggedin": "Les utilisateurs anonymes ne peuvent pas envoyer de merci", - "thanks-error-ratelimited": "{{GENDER:$1|Vous}} avez dépassé votre limite de débit. Veuillez attendre un peu et réessayer.", - "thanks-error-api-params": "Il faut fournir soit le paramètre 'revid', soit 'logid'", + "thanks-error-notloggedin": "Les utilisateurs anonymes ne peuvent envoyer aucun remerciement", + "thanks-error-ratelimited": "{{GENDER:$1|}}Vous avez dépassé votre limite de débit. Veuillez attendre un peu et essayer à nouveau.", + "thanks-error-api-params": "Un seul des deux paramètres « revid » ou « logid » doit être fourni", "thanks-thank-tooltip": "{{GENDER:$1|}}Envoyer une notification de remerciement à cet{{GENDER:$2||te}} utilisat{{GENDER:$2|eur|rice}}", - "thanks-thank-tooltip-no": "{{GENDER:$1|Annuler}} les remerciements", - "thanks-thank-tooltip-yes": "{{GENDER:$1|Envoyer}} les remerciements", - "thanks-confirmation2": "{{GENDER:$1|Envoyer}} publiquement des remerciements ?", - "thanks-thanked-notice": "{{GENDER:$3|Vous}} avez remercié {{GENDER:$2|$1}}.", + "thanks-thank-tooltip-no": "{{GENDER:$1|}}Annuler la notification de remerciement", + "thanks-thank-tooltip-yes": "{{GENDER:$1|}}Envoyer la notification de remerciement", + "thanks-confirmation2": "{{GENDER:$1|}}Envoyer publiquement des remerciements ?", + "thanks-thanked-notice": "{{GENDER:$3|}}Vous avez remercié {{GENDER:$2|}}$1.", "thanks": "Envoyer des remerciements", - "thanks-submit": "Remercier", + "thanks-submit": "Envoyer des remerciements", "echo-pref-subscription-edit-thank": "Me remercie pour ma modification", - "echo-pref-tooltip-edit-thank": "Me prévenir quand quelqu’un me remercie pour une modification que j’ai faite.", + "echo-pref-tooltip-edit-thank": "Me notifier quand quelqu’un me remercie pour une modification que j’ai effectuée.", "echo-category-title-edit-thank": "Remerciements", "notification-thanks-diff-link": "votre modification", - "notification-header-rev-thank": "$1 vous {{GENDER:$2|a}} {{GENDER:$4|remercié|remerciée|remercié(e)}} pour votre modification sur <strong>$3</strong>.", - "notification-header-creation-thank": "$1 {{GENDER:$4|vous}} {{GENDER:$2|a remercié}} pour la création de <strong>$3</strong>.", - "notification-header-log-thank": "$1 {{GENDER:$4|vous}} {{GENDER:$2|a remercié}} pour votre action concernant <strong>$3</strong>.", - "notification-compact-header-edit-thank": "$1 {{GENDER:$2|vous}} {{GENDER:$3|a remercié|a remerciée}}.", - "notification-bundle-header-rev-thank": "{{PLURAL:$1|Une personne|$1 personnes|100=Au moins 100 personnes}} vous {{PLURAL:$1|a|ont}} {{GENDER:$3|remercié|remerciée}} pour votre modification sur <strong>$2</strong>.", - "notification-bundle-header-log-thank": "{{PLURAL:$1|Une personne|$1 personnes|100=Plus de cent personnes}} {{GENDER:$3|vous}} {{PLURAL:$1|a remercié|ont remercié}} pour votre action concernant <strong>$2</strong>.", + "notification-header-rev-thank": "{{GENDER:$2|}}$1 vous a remercié{{GENDER:$4||e|(e)}} pour votre modification sur <strong>$3</strong>.", + "notification-header-creation-thank": "{{GENDER:$2|}}$1 vous a remercié{{GENDER:$4||e|(e)}} pour la création de <strong>$3</strong>.", + "notification-header-log-thank": "{{GENDER:$2|}}$1 vous a remercié{{GENDER:$4||e|(e)}} pour votre action concernant <strong>$3</strong>.", + "notification-compact-header-edit-thank": "{{GENDER:$2|}}$1 vous a remercié{{GENDER:$3||e|(e)}}.", + "notification-bundle-header-rev-thank": "{{PLURAL:$1|Une personne|$1 personnes|100=Au moins 100 personnes}} vous {{PLURAL:$1|a|ont}} remercié{{GENDER:$3||e|(e)}} pour votre modification sur <strong>$2</strong>.", + "notification-bundle-header-log-thank": "{{PLURAL:$1|Une personne|$1 personnes|100=Au moins 100 personnes}} vous {{PLURAL:$1|a|ont}} remercié{{GENDER:$3||e|(e)}} pour votre action concernant <strong>$2</strong>.", "log-name-thanks": "Journal des remerciements", - "log-description-thanks": "Ci-dessous se trouve une liste d'utilisateurs qui ont été remerciés par d'autres.", - "logentry-thanks-thank": "$1 {{GENDER:$2|a remercié}} {{GENDER:$4|$3}}", + "log-description-thanks": "Voici une liste d’utilisateurs qui ont été remerciés par d’autres.", + "logentry-thanks-thank": "{{GENDER:$2|}}$1 a remercié $3{{GENDER:$4|}}", "logeventslist-thanks-log": "Journal des remerciements", - "thanks-error-no-id-specified": "Vous devez spécifier un ID de révision ou de journal pour envoyer des remerciements.", - "thanks-confirmation-special-log": "Voulez-vous envoyer publiquement des remerciements pour cette action du journal ?", - "thanks-confirmation-special-rev": "Voulez-vous envoyer publiquement des remerciements pour cette modification ?", + "thanks-error-no-id-specified": "Vous devez spécifier un identifiant de révision ou de journal pour envoyer des remerciements.", + "thanks-confirmation-special-log": "Voulez-vous envoyer publiquement des remerciements pour cette action du journal ?", + "thanks-confirmation-special-rev": "Voulez-vous envoyer publiquement des remerciements pour cette modification ?", "notification-link-text-view-post": "Afficher le commentaire", "notification-link-text-view-logentry": "Afficher l’entrée du journal", - "thanks-error-invalidpostid": "L’ID de la note n’est pas valide.", - "flow-thanks-confirmation-special": "Voulez-vous envoyer publiquement des remerciements pour ce commentaire ?", - "flow-thanks-thanked-notice": "{{GENDER:$3|Vous}} avez remercié $1 pour {{GENDER:$2|sa|sa|sa}} modification.", + "thanks-error-invalidpostid": "L’identifiant du message envoyé n’est pas valide.", + "flow-thanks-confirmation-special": "Voulez-vous envoyer publiquement des remerciements pour ce commentaire ?", + "flow-thanks-thanked-notice": "{{GENDER:$3|}}Vous avez remercié $1{{GENDER:$2|}} pour sa modification.", "notification-flow-thanks-post-link": "votre commentaire", - "notification-header-flow-thank": "{{GENDER:$2|$1}} {{GENDER:$5|vous a remercié|vous a remerciée|vous a remercié(e)}} pour votre commentaire dans « <strong>$3</strong> ».", - "notification-compact-header-flow-thank": "$1 {{GENDER:$2|vous}} {{GENDER:$3|a remercié|a remerciée}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Une personne|$1 personnes|100=Au moins 100 personnes}} vous {{PLURAL:$1|a|ont}} {{GENDER:$3|remercié|remerciée}} pour votre commentaire sur « <strong>$2</strong> »." + "notification-header-flow-thank": "{{GENDER:$2|}}$1 vous a remercié{{GENDER:$5||e|(e)}} pour votre commentaire dans « <strong>$3</strong> ».", + "notification-compact-header-flow-thank": "{{GENDER:$2|}}$1 vous a remercié{{GENDER:$3||e|(e)}}.", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Une personne|$1 personnes|100=Au moins 100 personnes}} vous {{PLURAL:$1|a|ont}} remercié{{GENDER:$3||e|(e)}} pour votre commentaire sur « <strong>$2</strong> ».", + "ipb-action-thanks": "Envoi des remerciements" } diff --git a/Thanks/i18n/frr.json b/Thanks/i18n/frr.json index f4778de5..7b4cd2b3 100644 --- a/Thanks/i18n/frr.json +++ b/Thanks/i18n/frr.json @@ -11,26 +11,28 @@ "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Soonke}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Besoonket}}}}", "thanks-error-undefined": "\"Soonk\" hää ei loket. Ferschük det man noch ans.", - "thanks-error-invalidrevision": "Det werjuun jaft at ei.", + "thanks-error-invalidrevision": "Detdiar wersion ID jaft at ei.", "thanks-error-ratelimited": "{{GENDER:$1|Dü}} heest tuföl aktjuunen onernimen. Teew en uugenblak an ferschük det noch ans weder.", - "thanks-thank-tooltip": "{{Gender:$1|Schüür}} {{Gender:$2|didiar brüker}} en \"soonk\".", + "thanks-thank-tooltip": "{{Gender:$1|Sjüür}} {{Gender:$2|didiar|detdiar}} brüker en \"soonk\".", "thanks-thank-tooltip-no": "{{GENDER:$1|Breeg}} det soonkin uf", - "thanks-thank-tooltip-yes": "{{GENDER:$1|Schüür}} det soonk-bööd", - "thanks-confirmation2": "Diar en öfentelken soonk för {{GENDER:$1|schüür}}?", + "thanks-thank-tooltip-yes": "{{GENDER:$1|Sjüür}} det bööd mä en soonk", + "thanks-confirmation2": "Diar en öfentelken soonk för {{GENDER:$1|sjüür}}?", "thanks-thanked-notice": "$1 hää bööd füngen, dat dü {{GENDER:$2|sin|hör|hör}} feranrang gud fanjst.", - "thanks": "Soonk schüür", - "thanks-submit": "Soonk schüür", + "thanks": "Soonk sjüür", + "thanks-submit": "Soonk sjüür", "echo-pref-subscription-edit-thank": "\"Soonk\" saien för man bidrach", "echo-pref-tooltip-edit-thank": "Du mi bööd, wan mi hoker en \"soonk\" schüürt för man bidrach.", "echo-category-title-edit-thank": "Föl soonk", "notification-thanks-diff-link": "dan bidrach", - "log-name-thanks": "Soonk-logbuk", + "log-name-thanks": "Soonk-Logbuk", "log-description-thanks": "Oner stäänt en list faan brükern, diar faan ööder brükern soonk saad wurden as.", "logentry-thanks-thank": "$1 {{GENDER:$2|besoonket}} ham bi {{Gender:$4|$3}}", - "thanks-error-no-id-specified": "Dü skel en werjuuns-ID uundu, am en soonk tu schüüren.", + "thanks-error-no-id-specified": "Dü skel en wersion of log ID uundu, am en soonk tu sjüüren.", + "thanks-confirmation-special-log": "Maadst dü diar öfentelk en soonk för sjüür?", + "thanks-confirmation-special-rev": "Maadst dü diar öfentelk en soonk för sjüür?", "notification-link-text-view-post": "Komentaar uunwise", "thanks-error-invalidpostid": "Det ID faan di bidrach as ferkiard.", - "flow-thanks-confirmation-special": "Maadst dü öfentelk en soonk för didiar komentaar schüür?", + "flow-thanks-confirmation-special": "Maadst dü öfentelk en soonk för didiar komentaar sjüür?", "flow-thanks-thanked-notice": "$1 hää bööd füngen, dat dü {{GENDER:$2|sin|hör|hör}} komentaar gud fanjst.", "notification-flow-thanks-post-link": "dan komentaar" } diff --git a/Thanks/i18n/fy.json b/Thanks/i18n/fy.json index 72e9cd18..a1cf10c7 100644 --- a/Thanks/i18n/fy.json +++ b/Thanks/i18n/fy.json @@ -16,7 +16,7 @@ "thanks-button-action-completed": "Jo {{GENDER:$1|{{GENDER:$2|hawwe}}}} $1 betanke", "thanks-error-undefined": "Betankjen mislearre (flaterkoade: $1). Besykje it nochris.", "thanks-error-invalid-log-id": "Lochrigel net fûn", - "thanks-error-invalid-log-type": "Lochtype '$1' stiet net op 'e wite list fan tastiene lochtypen.", + "thanks-error-invalid-log-type": "Lochtype '$1' stiet net op 'e list fan tastiene lochtypen.", "thanks-error-log-deleted": "De oanfrege lochrigel is wiske, dat der kin net foar betanke wurde.", "thanks-error-invalidrevision": "Ferzjenûmer is ûnjildich.", "thanks-error-revdeleted": "Kin it betankje net ferstjoere, om't de ferzje wiske is.", @@ -59,5 +59,6 @@ "notification-flow-thanks-post-link": "jo reäksje", "notification-header-flow-thank": "$1 {{GENDER:$2|hat}} {{GENDER:$5|jo}} betanke foar jo reäksje yn \"<strong>$3</strong>\".", "notification-compact-header-flow-thank": "$1 {{GENDER:$2|hat}} {{GENDER:$3|jo}} betanke.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Ien persoan hat|$1 lju hawwe|100=99+ lju hawwe}} {{GENDER:$3|jo}} betanke foar jo reäksje yn \"<strong>$2</strong>\"." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Ien persoan hat|$1 lju hawwe|100=99+ lju hawwe}} {{GENDER:$3|jo}} betanke foar jo reäksje yn \"<strong>$2</strong>\".", + "ipb-action-thanks": "Betankjes ferstjoeren" } diff --git a/Thanks/i18n/gld.json b/Thanks/i18n/gld.json new file mode 100644 index 00000000..4a3ca9e1 --- /dev/null +++ b/Thanks/i18n/gld.json @@ -0,0 +1,10 @@ +{ + "@metadata": { + "authors": [ + "RFScott", + "SaldırganSincap" + ] + }, + "thanks-thank": "{{$1|{{$2|баниори}}}}", + "thanks-thank-tooltip": "{{GENDER:$1|Банилайни}} {{GENDER:$2|ва}}" +} diff --git a/Thanks/i18n/gpe.json b/Thanks/i18n/gpe.json new file mode 100644 index 00000000..d0fb20a0 --- /dev/null +++ b/Thanks/i18n/gpe.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "DaSupremo" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|thank}}}}" +} diff --git a/Thanks/i18n/grc.json b/Thanks/i18n/grc.json index d768c06f..8b675eb1 100644 --- a/Thanks/i18n/grc.json +++ b/Thanks/i18n/grc.json @@ -1,9 +1,10 @@ { "@metadata": { "authors": [ - "Gts-tg" + "Gts-tg", + "PastelKos" ] }, - "thanks-thank": "{{GENDER:$1|{{GENDER:$2|μετὰ χάριτος}}}}", - "thanks-thank-tooltip": "{{GENDER:$1|Ἀπέστειλλε}} εὐχαριστήριαν εἰδοποίηση εἴς τόν {{GENDER:$2|χρώμενο}}" + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|εὐχαριστεῖν}}}}", + "thanks-thank-tooltip": "{{GENDER:$1|Ἔστελλε}} εὐχαριστήριαν εἰδοποίησιν εἰς τὸν {{GENDER:$2|χρώμενον}}" } diff --git a/Thanks/i18n/guc.json b/Thanks/i18n/guc.json new file mode 100644 index 00000000..58a2e5bf --- /dev/null +++ b/Thanks/i18n/guc.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Leonfd1992" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|achuntaa analu'ut}}}}", + "thanks-thank-tooltip": "{{GENDER:$1|Püjütaa}} wane pütchi eere püchuntüin analu'ut nümüin chii {{GENDER:$2|ka’yataayakalü}}" +} diff --git a/Thanks/i18n/gur.json b/Thanks/i18n/gur.json new file mode 100644 index 00000000..6449fe35 --- /dev/null +++ b/Thanks/i18n/gur.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Dnshitobu" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|pusiya}}}}" +} diff --git a/Thanks/i18n/guw.json b/Thanks/i18n/guw.json new file mode 100644 index 00000000..c1cd799f --- /dev/null +++ b/Thanks/i18n/guw.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Misteld", + "Samatics" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|awánu}}}}" +} diff --git a/Thanks/i18n/ha.json b/Thanks/i18n/ha.json new file mode 100644 index 00000000..949cdc83 --- /dev/null +++ b/Thanks/i18n/ha.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Em-em" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|godiya}}}}" +} diff --git a/Thanks/i18n/he.json b/Thanks/i18n/he.json index 9b26f415..92964fb8 100644 --- a/Thanks/i18n/he.json +++ b/Thanks/i18n/he.json @@ -14,12 +14,12 @@ "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|אמרת תודה}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|תודה}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|אמרת תודה}}}}", - "thanks-button-action-queued": "שליחת {{GENDER:$2|תודה}} אל $1", + "thanks-button-action-queued": "שליחת {{GENDER:$2|תודה}} אל $1...", "thanks-button-action-cancel": "ביטול", "thanks-button-action-completed": "{{GENDER:$1|{{GENDER:$2|הודית}}}} למשתמש $1", "thanks-error-undefined": "פעולת תודה נכשלה (קוד שגיאה: $1). נא לנסות שוב.", "thanks-error-invalid-log-id": "פעולת היומן לא נמצאה", - "thanks-error-invalid-log-type": "סוג היומן '$1' לא נמצא ברשימה הלבנה של סוגי היומן המותרים.", + "thanks-error-invalid-log-type": "סוג היומן \"$1\" לא נמצא ברשימת סוגי היומן המותרים.", "thanks-error-log-deleted": "פעולת היומן שביקשת נמחקה, ולכן לא ניתן לשלוח עבורה תודה.", "thanks-error-invalidrevision": "מזהה גרסה אינו תקין.", "thanks-error-revdeleted": "לא ניתן לשלוח תודה משום שהגרסה נמחקה.", @@ -30,11 +30,11 @@ "thanks-error-notloggedin": "משתמשים אנונימיים לא יכולים לשלוח הודעות תודה", "thanks-error-ratelimited": "{{GENDER:$1|עברת}} את מגבלת הקצב שלך. נא להמתין ולנסות שוב.", "thanks-error-api-params": "יש לציין את אחד הפרמטרים 'revid' או 'logid'", - "thanks-thank-tooltip": "{{GENDER:$1|שלח|שלחי}} הודעת תודה {{GENDER:$2|למשתמש זה|למשתמשת זו}}", + "thanks-thank-tooltip": "{{GENDER:$1|שליחת}} הודעת תודה {{GENDER:$2|למשתמש הזה|למשתמשת הזאת}}", "thanks-thank-tooltip-no": "{{GENDER:$1|ביטול}} הודעת התודה", "thanks-thank-tooltip-yes": "{{GENDER:$1|שליחת}} הודעת תודה", "thanks-confirmation2": "{{GENDER:$1|לשלוח}} תודה באופן ציבורי?", - "thanks-thanked-notice": "{{GENDER:$3|הודית}} ל־{{GENDER:$2|$1}}.", + "thanks-thanked-notice": "{{GENDER:$3|הודית}} למשתמש {{GENDER:$2|$1}}.", "thanks": "שליחת תודה", "thanks-submit": "שליחת תודה", "echo-pref-subscription-edit-thank": "מודה לי על עריכה שלי", @@ -46,10 +46,10 @@ "notification-header-log-thank": "$1 {{GENDER:$2|הודה|הודתה}} {{GENDER:$4|לך}} על פעולה שעשית בדף <strong>$3</strong>.", "notification-compact-header-edit-thank": "$1 {{GENDER:$2|הודה|הודתה}} {{GENDER:$3|לך}}.", "notification-bundle-header-rev-thank": "{{PLURAL:$1|קיבלת הודעת \"תודה\"|$1 משתמשים הודו לך|100=99+ משתמשים הודו לך}} על עריכה {{GENDER:$3|שלך}} בדף <strong>$2</strong>.", - "notification-bundle-header-log-thank": "{{PLURAL:$1|קיבלת הודעת \"תודה\"|$1 משתמשים הודו לך|100=99+ משתמשים הודו {{GENDER:$3|לך}}}} על פעולה שעשית בדף <strong>$2</strong>.", + "notification-bundle-header-log-thank": "{{PLURAL:$1|קיבלת תודה|$1 משתמשים הודו לך|100=99+ משתמשים הודו {{GENDER:$3|לך}}}} על פעולה שעשית בדף <strong>$2</strong>.", "log-name-thanks": "יומן תודות", "log-description-thanks": "להלן רשימת משתמשים שאנשים אחרים הודו להם.", - "logentry-thanks-thank": "$1 {{GENDER:$2|הודה|הודתה}} למשתמש {{GENDER:$4|$3}}", + "logentry-thanks-thank": "$1 {{GENDER:$2|הודה|הודתה}} {{GENDER:$4|למשתמש|למשתמשת}} $3", "logeventslist-thanks-log": "יומן תודות", "thanks-error-no-id-specified": "יש לציין מזהה גרסה או פעולת יומן כדי לשלוח תודה.", "thanks-confirmation-special-log": "האם ברצונך לשלוח תודה על פעולת היומן הזאת באופן ציבורי?", @@ -62,5 +62,6 @@ "notification-flow-thanks-post-link": "התגובה שלך", "notification-header-flow-thank": "$1 {{GENDER:$2|הודה|הודתה}} {{GENDER:$5|לך}} על הערתך בנושא \"<strong>$3</strong>\".", "notification-compact-header-flow-thank": "$1 {{GENDER:$2|הודה|הודתה}} {{GENDER:$3|לך}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|קיבלת הודעת \"תודה\"|$1 משתמשים הודו לך|100=99+ משתמשים הודו לך}} על {{GENDER:$3|הערתך}} בנושא \"<strong>$2</strong>\"." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|קיבלת תודה|$1 משתמשים הודו לך|100=99+ משתמשים הודו לך}} על {{GENDER:$3|הערתך}} בנושא \"<strong>$2</strong>\".", + "ipb-action-thanks": "שליחת תודה" } diff --git a/Thanks/i18n/hi.json b/Thanks/i18n/hi.json index c336e452..def4d3c8 100644 --- a/Thanks/i18n/hi.json +++ b/Thanks/i18n/hi.json @@ -2,8 +2,10 @@ "@metadata": { "authors": [ "Angpradesh", + "BaRaN6161 TURK", "Bhatakati aatma", "Sachinkatiyar", + "Saurmandal", "Sfic", "Shubhamkanodia", "Siddhartha Ghai", @@ -12,7 +14,7 @@ ] }, "thanks-desc": "सदस्यों को उनके सम्पादनों, टिप्पणियों आदि के लिए धन्यवाद देने कड़ियाँ जोड़ें।", - "thanks-thank": "{{GENDER:$1|{{GENDER:$2|धन्यवाद}}}}", + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|धन्यवाद दें}}}}", "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|धन्यवाद दिया}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|धन्यवाद}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|धन्यवाद दिया}}}}", @@ -29,7 +31,7 @@ "thanks-thank-tooltip-no": "धन्यवाद की सूचना {{GENDER:$1|न भेजें}}", "thanks-thank-tooltip-yes": "धन्यवाद की सूचना {{GENDER:$1|भेजें}}", "thanks-confirmation2": "\nसभी धन्यवाद सार्वजनिक हैं। {{GENDER:$1|धन्यवाद}} भेजें?", - "thanks-thanked-notice": "{{लिंग:$3|आप}} ने {{लिंग:$2|$1}} का धन्यवाद किया।", + "thanks-thanked-notice": "{{GENDER:$3|आप}} ने {{GENDER:$2|$1}} का धन्यवाद किया।", "thanks": "धन्यवाद दें", "thanks-submit": "धन्यवाद दें", "echo-pref-subscription-edit-thank": "मेरे सम्पादन के लिए मुझे धन्यवाद दे।", diff --git a/Thanks/i18n/hif-latn.json b/Thanks/i18n/hif-latn.json index 0b5318b4..228a81e4 100644 --- a/Thanks/i18n/hif-latn.json +++ b/Thanks/i18n/hif-latn.json @@ -4,6 +4,5 @@ "Abdul Kadir" ] }, - "thanks-thank": "{{GENDER:$1|{{GENDER:$2|thank}}}}", "thanks-thank-tooltip": "{{GENDER:$1|Bhejo}}, ek dhanbaad ke notification ii {{GENDER:$2|sadasya}} ke lage" } diff --git a/Thanks/i18n/hr.json b/Thanks/i18n/hr.json index f579dc0b..42f880bf 100644 --- a/Thanks/i18n/hr.json +++ b/Thanks/i18n/hr.json @@ -5,6 +5,7 @@ "MaGa", "Macofe", "Neptune, the Mystic", + "Ponor", "Roberta F.", "Srdjan m", "Teoo3" @@ -18,7 +19,7 @@ "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Zahvaljivanje}}}} $1…", "thanks-button-action-cancel": "Otkaži", "thanks-button-action-completed": "Zahvalili {{GENDER:$2|ste}} {{GENDER:$1|suradniku|suradnici|suradnici/suradniku}} $1", - "thanks-error-undefined": "Zahvaljivanje nije uspjelo (kôd pogrješke: $1). Pokušajte ponovo.", + "thanks-error-undefined": "Zahvaljivanje nije uspjelo (kôd pogreške: $1). Pokušajte ponovo.", "thanks-error-invalid-log-id": "Evidencijska stavka nije pronađena", "thanks-error-invalid-log-type": "Evidencijska vrsta »$1« nije na bijeloj listi dopuštenih vrsta evidencija.", "thanks-error-log-deleted": "Zahtijevana evidencijska stavka bila je izbrisana i zahvala ne može biti dana za nju.", @@ -29,7 +30,7 @@ "thanks-error-invalidrecipient-bot": "Ne možete zahvaliti botovima", "thanks-error-invalidrecipient-self": "Ne možete zahvaliti sami sebi", "thanks-error-notloggedin": "Anonimni suradnici ne mogu slati zahvale.", - "thanks-error-ratelimited": "{{GENDER:$1|Prekoračili ste}} Vaše ograničenje za slanje zahvala. Pričekajte neko vrijeme i zatim pokušajte ponovo.", + "thanks-error-ratelimited": "{{GENDER:$1|Prekoračili ste}} ograničenje za slanje zahvala. Pričekajte pa pokušajte ponovo.", "thanks-error-api-params": "Mora se navesti ili »revid« ili »logid« parametar", "thanks-thank-tooltip": "{{GENDER:$1|Pošalji}} zahvalu {{GENDER:$2|ovom suradniku|ovoj suradnici}}", "thanks-thank-tooltip-no": "{{GENDER:$1|Otkaži}} vijestice o zahvaljivanju", @@ -41,16 +42,16 @@ "echo-pref-subscription-edit-thank": "Zahvaljivanje Vama za Vaše uređivanje", "echo-pref-tooltip-edit-thank": "Obavijesti me kad mi netko zahvali za moju izmjenu.", "echo-category-title-edit-thank": "Zahvala", - "notification-thanks-diff-link": "vaše uređivanje", - "notification-header-rev-thank": "$1 {{GENDER:$2|zahvalio|zahvalila}} je za {{GENDER:$4|Vaše}} uređivanje na stranici <strong>$3</strong>.", - "notification-header-creation-thank": "$1 {{GENDER:$2|zahvalio|zahvalila}} {{GENDER:$4|Vam}} je na stvaranju stranice <strong>$3</strong>.", - "notification-header-log-thank": "$1 {{GENDER:$2|zahvalio|zahvalila}} {{GENDER:$4|Vam}} je za Vašu radnju vezanu uz stranicu <strong>$3</strong>.", + "notification-thanks-diff-link": "uređivanje", + "notification-header-rev-thank": "$1 {{GENDER:$2|zahvaljuje}} za {{GENDER:$4|Vaše}} uređivanje na stranici <strong>$3</strong>.", + "notification-header-creation-thank": "$1 {{GENDER:$2|zahvaljuje}} {{GENDER:$4|Vam}} za stvaranje stranice <strong>$3</strong>.", + "notification-header-log-thank": "$1 {{GENDER:$2|zahvaljuje}} {{GENDER:$4|Vam}} za Vašu radnju na stranici <strong>$3</strong>.", "notification-compact-header-edit-thank": "$1 {{GENDER:$3|Vam}} je {{GENDER:$2|zahvalio|zahvalila}}.", "notification-bundle-header-rev-thank": "{{PLURAL:$1|Jedna osoba poslala Vam je zahvalu|$1 osobe poslale su Vam zahvalu|$1 osoba poslale su Vam zahvalu|100=> Sto i više osoba Vam zahvaljuje}} za {{GENDER:$3|Vaše}} uređivanje na stranici <strong>$2</strong>.", "notification-bundle-header-log-thank": "{{PLURAL:$1|1=Jedna osoba zahvaljuje|$1 osoba zahvaljuje|$1 osobe zahvaljuju|$1 osoba zahvaljuju|100=99 i više osoba zahvaljuju}} {{GENDER:$3|Vam}} za Vašu radnju povezanu uz <strong>$2</strong>.", "log-name-thanks": "Evidencija zahvala", - "log-description-thanks": "Slijedi popis suradnika koji su drugim suradnicima objavili zahvalu.", - "logentry-thanks-thank": "$1 {{GENDER:$2|zahvalio|zahvalila}} je {{GENDER:$4|suradniku|suradnici}} {{GENDER:$4|$3}}", + "log-description-thanks": "Slijedi popis suradnika koji su drugim suradnicima poslali zahvalu.", + "logentry-thanks-thank": "$1 {{GENDER:$2|zahvaljuje}} {{GENDER:$4|suradniku|suradnici}} {{GENDER:$4|$3}}", "logeventslist-thanks-log": "Evidencija zahvala", "thanks-error-no-id-specified": "Morate navesti identifikator (ID) izmjene ili evidencije za koju želite poslati zahvalu.", "thanks-confirmation-special-log": "Želite li javno zahvaliti za ovu evidencijsku radnju?", @@ -59,9 +60,10 @@ "notification-link-text-view-logentry": "Vidi evidencijsku stavku", "thanks-error-invalidpostid": "ID objave nije valjan.", "flow-thanks-confirmation-special": "Želite li javno zahvaliti za ovo uređivanje?", - "flow-thanks-thanked-notice": "$1 {{GENDER:$2|primio|primila|primio/la}} je \n{{GENDER:$3|Vašu}} zahvalu za {{GENDER:$2|njegovo|njezino|predmetni}} komentar.", + "flow-thanks-thanked-notice": "{{GENDER:$3|Vašu}} zahvalu za komentar {{GENDER:$2|primio je suradnik|primila je suradnica|prima}} $1.", "notification-flow-thanks-post-link": "Vašem komentaru", "notification-header-flow-thank": "$1 Vam {{GENDER:$2|je zahvalio|je zahvalila|zahvaljuje}} na {{GENDER:$5|Vašem}} komentaru u temi »<strong>$3</strong>«.", "notification-compact-header-flow-thank": "$1 {{GENDER:$3|Vam}} šalje {{GENDER:$2|zahvalu}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|1=Jedna osoba zahvaljuje|$1 osoba zahvaljuje|$1 osobe zahvaljuju|$1 osoba zahvaljuju|100=99 i više osoba zahvaljuju}} {{GENDER:$3|Vam}} za Vaš komentar na »<strong>$2</strong>«." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|1=Jedna osoba zahvaljuje|$1 osoba zahvaljuje|$1 osobe zahvaljuju|$1 osoba zahvaljuju|100=99 i više osoba zahvaljuju}} {{GENDER:$3|Vam}} za Vaš komentar na »<strong>$2</strong>«.", + "ipb-action-thanks": "Slanje zahvala" } diff --git a/Thanks/i18n/hrx.json b/Thanks/i18n/hrx.json new file mode 100644 index 00000000..73ced231 --- /dev/null +++ b/Thanks/i18n/hrx.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Iohanen" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|danke}}}}", + "thanks-thank-tooltip": "{{GENDER:$2|Dem Benutzer|Där Benutzerin}} een Dankescheen {{GENDER:$1|schicke}}" +} diff --git a/Thanks/i18n/hsn.json b/Thanks/i18n/hsn.json new file mode 100644 index 00000000..34144be5 --- /dev/null +++ b/Thanks/i18n/hsn.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "ChoiChong" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|感谢}}}}" +} diff --git a/Thanks/i18n/ht.json b/Thanks/i18n/ht.json new file mode 100644 index 00000000..8c6daaa5 --- /dev/null +++ b/Thanks/i18n/ht.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Amire80" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|mèsi}}}}" +} diff --git a/Thanks/i18n/hyw.json b/Thanks/i18n/hyw.json index 76c7c2ba..a7029d29 100644 --- a/Thanks/i18n/hyw.json +++ b/Thanks/i18n/hyw.json @@ -5,14 +5,39 @@ "Rajemian" ] }, + "thanks-desc": "Կ'աւելցնէ «Շնորհակալ եմ» յղումը էջին պատմութեան խմբագրումներուն տարբերութիւններուն մէջ", "thanks-thank": "{{GENDER:$1|{{GENDER:$2|շնորհակալութիւն}}}}", - "thanks-button-action-cancel": "Չեղարկել", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|շնորհակալութիւն}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Շնորհակալութիւն}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Շնորհակալութիւն}}}}", + "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Շնորհակալութիւն}}}}", + "thanks-button-action-cancel": "Ջնջել", "thanks-button-action-completed": "{{GENDER:$1|{{GENDER:$2|շնորհակալութիւն}}}}", + "thanks-error-undefined": "Շնորհակալութիւն յայտնելու փորձը անյաջող էր։ Դարձեալ փորձէ՛։", + "thanks-error-notitle": "Էջին վերնագիրը չդարմացաւ", + "thanks-error-invalidrecipient-bot": "Մեքենքայիկներուն շնորհակալութիւն չենք կրնար յայտնել", + "thanks-error-invalidrecipient-self": "Դուն քեզի շնորհակալութիւն չես կրնար յայտնել", + "thanks-error-notloggedin": "Անանուն խմբագիրները չեն կրնար շնորհակալութիւն յայտնել", "thanks-thank-tooltip": "{{GENDER:$1|Ուղարկել}} շնորհակալական գիր մը այս {{GENDER:$2|մասնակիցին}}", + "thanks-thank-tooltip-no": "{{GENDER:$1|Ջնջել}} շնորհակալական ծանուցումը", + "thanks-thank-tooltip-yes": "{{GENDER:$1|Յայտնել}} շնորհակալական ծանուցումը", + "thanks-confirmation2": "Կ'ուզէ՞ք հրապարակաւ շնորհակալութիւն {{GENDER:$1|յայտնել}}", + "thanks-thanked-notice": "{{GENDER:$3|Դուն}} շնորհակալութիւն յայտնեցիր {{GENDER:$2|$1}}ին։", "thanks": "Շնորհակալութիւն յայտնել", + "thanks-submit": "Շնորհակալութիւն յայտնել", + "echo-pref-subscription-edit-thank": "Խմբագրումներուս համար զիս շնորհակալութիւն յայտնէ՛", + "echo-pref-tooltip-edit-thank": "Զիս տեղեկացո՛ւր, երբ որեւէ մէկը շնորհակալութիւն յայտնած է կատարած խմբագրումներուս համար:", "echo-category-title-edit-thank": "Շնորհակալութիւն", + "notification-thanks-diff-link": "Ձեր խմբագրումը", + "notification-header-rev-thank": "$1 մասնակիցը {{GENDER:$4|ձեզ}} {{GENDER:$2|շնորհակալութիւն յայտնած}} է՝ $3 էջին մէջ ձեր կատարած խմբագրման համար։", "notification-compact-header-edit-thank": "$1 մասնակիցը {{GENDER:$2|շնորհակալութիւն}} յայտնած է {{GENDER:$3|ձեզի}}։", + "logentry-thanks-thank": "$1 մասնակիցը {{GENDER:$2|շնորհակալութիւն յայտնած է}} {{GENDER:$4|$3}} մասնակիցին", + "thanks-confirmation-special-log": "Կ'ուզէ՞ք հրապարակաւ շնորհակալութիւն յայտնել այս մուտքին համար։", "thanks-confirmation-special-rev": "Կ'ուզէ՞ք շնորհակալութիւն յայտնել այս խմբագրումին համար։", + "notification-link-text-view-post": "Տեսնել մեկնաբանութիւնը", "flow-thanks-confirmation-special": "Կ'ուզէ՞ք շնորհակալութիւն յայտնել այս մեկնաբանումին համար։", - "notification-compact-header-flow-thank": "$1 մասնակիցը {{GENDER:$2|շնորհակալութիւն}} յայտնած է {{GENDER:$3|ձեզի}}։" + "notification-flow-thanks-post-link": "Ձեր մեկնաբանութիւնը", + "notification-compact-header-flow-thank": "$1 մասնակիցը {{GENDER:$2|շնորհակալութիւն}} յայտնած է {{GENDER:$3|ձեզի}}։", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Մէկը|$1 մարդիկ|100=99+ people}} {{GENDER:$3|քեզ}} շնորհակալութիւն յայտնած է՝ մեկնաբանութեանդ համար \"<strong>$2</strong>\".", + "ipb-action-thanks": "Շնորհակալութիւն յայտնել" } diff --git a/Thanks/i18n/id.json b/Thanks/i18n/id.json index 9c91d2c1..9259bbef 100644 --- a/Thanks/i18n/id.json +++ b/Thanks/i18n/id.json @@ -2,6 +2,7 @@ "@metadata": { "authors": [ "Bennylin", + "Daud I.F. Argana", "Gombang", "Iwan Novirion", "Kenrick95", @@ -17,6 +18,9 @@ "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|berterima kasih}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Terima kasih}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Terima kasih}}}}", + "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Sedang berterima kasih}}}} kepada $1…", + "thanks-button-action-cancel": "Batalkan", + "thanks-button-action-completed": "Anda {{GENDER:$1|{{GENDER:$2|telah berterima kasih}}}} kepada $1", "thanks-error-undefined": "Kiriman terima kasih gagal (kode galat: $1). Mohon coba kembali.", "thanks-error-invalid-log-id": "Entri log tidak ditemukan", "thanks-error-invalid-log-type": "Log jenis '$1' tidak ada dalam daftar putih jenis log yang diizinkan.", @@ -32,7 +36,7 @@ "thanks-error-api-params": "Parameter 'revid' atau 'logid' harus diberikan", "thanks-thank-tooltip": "{{GENDER:$1|Kirim}} sebuah pemberitahuan terima kasih kepada {{GENDER:$2|pengguna}} ini", "thanks-thank-tooltip-no": "{{GENDER:$1|Batalkan}} notifikasi terima kasih", - "thanks-thank-tooltip-yes": "{{GENDER:$1|Kirimkan}} notifikasi terima kasih", + "thanks-thank-tooltip-yes": "{{GENDER:$1|Kirim}} notifikasi terima kasih", "thanks-confirmation2": "{{GENDER:$1|Kirimkan}} ucapan terima kasih?", "thanks-thanked-notice": "{{GENDER:$3|Anda}} berterima kasih kepada {{GENDER:$2|$1}}", "thanks": "Kirim ucapan terima kasih", @@ -47,7 +51,7 @@ "notification-compact-header-edit-thank": "$1 {{GENDER:$2|mengirimkan terima kasih}} kepada {{GENDER:$3|Anda}}.", "notification-bundle-header-rev-thank": "{{PLURAL:$1|Satu orang|$1 orang|100=99+ orang}} berterima kasih kepada {{GENDER:$3|Anda}} atas suntingan di <strong>$2</strong>.", "notification-bundle-header-log-thank": "{{PLURAL:$1|Satu orang|$1 orang|100=99+ orang}} berterima kasih kepada {{GENDER:$3|Anda}} atas tindakan Anda terkait dengan <strong>$2</strong>/.", - "log-name-thanks": "Catatan ucapan terima kasih", + "log-name-thanks": "Catatan terima kasih", "log-description-thanks": "Di bawah ini adalah daftar pengguna yang menerima terima kasih dari pengguna lain.", "logentry-thanks-thank": "$1 {{GENDER:$2|berterima kasih}} kepada {{GENDER:$4|$3}}", "logeventslist-thanks-log": "Log terima kasih", @@ -62,5 +66,6 @@ "notification-flow-thanks-post-link": "komentar Anda", "notification-header-flow-thank": "$1 {{GENDER:$2|mengucapkan terima kasih}} kepada {{GENDER:$5|Anda}} atas komentar di \"<strong>$3</strong>\".", "notification-compact-header-flow-thank": "$1 {{GENDER:$2|mengirimkan terima kasih}} kepada {{GENDER:$3|Anda}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Satu orang|$1 orang|100=99+ orang}} berterima kasih kepada {{GENDER:$3|Anda}} atas komentar di \"<strong>$2</strong>\"." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Satu orang|$1 orang|100=99+ orang}} berterima kasih kepada {{GENDER:$3|Anda}} atas komentar di \"<strong>$2</strong>\".", + "ipb-action-thanks": "Mengirimkan ucapan terima kasih" } diff --git a/Thanks/i18n/ie.json b/Thanks/i18n/ie.json index 9cab8772..7b2a722e 100644 --- a/Thanks/i18n/ie.json +++ b/Thanks/i18n/ie.json @@ -1,8 +1,12 @@ { "@metadata": { "authors": [ - "OIS" + "Mithridates", + "OIS", + "Renan" ] }, - "thanks-thank": "mersiar" + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|mersiar}}}}", + "thanks-thank-tooltip": "{{GENDER:$1|Inviar}} un mersí a ti-ci {{GENDER:$2|usator}}", + "log-name-thanks": "Diarium de mersiamentes" } diff --git a/Thanks/i18n/ig.json b/Thanks/i18n/ig.json new file mode 100644 index 00000000..e478fbbe --- /dev/null +++ b/Thanks/i18n/ig.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Tochiprecious" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|kelee}}}}" +} diff --git a/Thanks/i18n/inh.json b/Thanks/i18n/inh.json index 07b18e78..affaa05d 100644 --- a/Thanks/i18n/inh.json +++ b/Thanks/i18n/inh.json @@ -11,7 +11,7 @@ "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Баркал áла}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Баркал аьннад}}}}", "thanks-thank-tooltip": "{{GENDER:$1|ДIадахьийта}} {{GENDER:$2|укх доакъашхочунна}} баркал", - "thanks-confirmation2": "ХӀара баркал алар массанена гу йиш йолаш хул. {{GENDER:$1|ДӀадахьийта баркал}}?", + "thanks-confirmation2": "Массанена гуш {{GENDER:$1|баркал ала}} дезий?", "echo-category-title-edit-thank": "Баркал алар", "log-name-thanks": "Баркал аларий тептар", "logentry-thanks-thank": "доакъашхочо $1 {{GENDER:$2|баркал аьннад}} {{GENDER:$4|доакъашхочунна}} $3" diff --git a/Thanks/i18n/io.json b/Thanks/i18n/io.json index ae7199b7..cb1ebe7c 100644 --- a/Thanks/i18n/io.json +++ b/Thanks/i18n/io.json @@ -20,6 +20,7 @@ "notification-bundle-header-log-thank": "{{PLURAL:$1|Ulu|$1 personi|100= plu kam 99 personi}} dankis {{GENDER:$3|vu}} pro vua agado pri <strong>$2</strong>.", "log-name-thanks": "Protokolo pri danko", "logentry-thanks-thank": "$1 {{GENDER:$2|dankis}} a {{GENDER:$4|$3}}", + "thanks-confirmation-special-rev": "Ka vu deziras dankar publike ca redaktero pro ilua redakto?", "notification-link-text-view-post": "Videz komento", "flow-thanks-confirmation-special": "Ka vu deziras dankar publike ca komento?", "notification-header-flow-thank": "$1 {{GENDER:$2|dankis}} {{GENDER:$5|vu}} pro vua komento pri «<strong>$3</strong>».", diff --git a/Thanks/i18n/ish.json b/Thanks/i18n/ish.json new file mode 100644 index 00000000..070bbf9f --- /dev/null +++ b/Thanks/i18n/ish.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Hackesan" + ] + }, + "thanks-thank": "{{GEND:$1|{{GENDER:$22|obulu}}}}" +} diff --git a/Thanks/i18n/it.json b/Thanks/i18n/it.json index 15bb657f..63c255bd 100644 --- a/Thanks/i18n/it.json +++ b/Thanks/i18n/it.json @@ -9,6 +9,7 @@ "Fringio", "Horcrux92", "Macofe", + "Mannivu", "Sakretsu", "Valepert" ] diff --git a/Thanks/i18n/ja.json b/Thanks/i18n/ja.json index d2d529a0..ca512c1b 100644 --- a/Thanks/i18n/ja.json +++ b/Thanks/i18n/ja.json @@ -35,8 +35,8 @@ "thanks-error-ratelimited": "{{GENDER:$1|}}速度制限を超えました。しばらくしてからもう一度やり直してください。", "thanks-error-api-params": "「revid」または「logid」のいずれかを指定してください", "thanks-thank-tooltip": "この{{GENDER:$2|利用者}}に感謝の通知を{{GENDER:$1|送信する}}", - "thanks-thank-tooltip-no": "感謝の通知の送信を{{GENDER:$1|取り消し}}ました。", - "thanks-thank-tooltip-yes": "感謝の通知を{{GENDER:$1|送信}}しました。", + "thanks-thank-tooltip-no": "感謝の通知の送信を{{GENDER:$1|取り消す}}", + "thanks-thank-tooltip-yes": "感謝の通知を{{GENDER:$1|送信}}", "thanks-confirmation2": "公開の場で感謝を{{GENDER:$1|示しますか}}?", "thanks-thanked-notice": "{{GENDER:$3|あなた}}から{{GENDER:$2|$1}}の編集に感謝を示しました。", "thanks": "感謝を示す", diff --git a/Thanks/i18n/ka.json b/Thanks/i18n/ka.json index 14b7bfdc..0ac0c47f 100644 --- a/Thanks/i18n/ka.json +++ b/Thanks/i18n/ka.json @@ -10,13 +10,13 @@ ] }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|მადლობა}}}}", - "thanks-thanked": "{{GENDER:$1|მადლობა გადახდილია}}", - "thanks-button-thank": "{{GENDER:$1|მადლობა}}", - "thanks-button-thanked": "{{GENDER:$1|მადლობა გადახდილია}}", - "thanks-error-undefined": "მადლობის გადახდა ვერ მოხერხდა. გთხოვ სცადეთ კიდევ.", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|მადლობა გადახდილია}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|მადლობა}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|მადლობა გადახდილია}}}}", + "thanks-error-undefined": "მადლობის გადახდა ვერ მოხერხდა (შეცდომის კოდი: $1). გთხოვ სცადეთ კიდევ.", "thanks-thank-tooltip": "{{GENDER:$2|ამ მომხმარებლისათვის}} სამადლობელი შეტყობინების {{GENDER:$1|გაგზავნა}}", - "thanks-confirmation2": "გსურთ ამ რედაქტირებისათვის მადლობა {{GENDER:$1|გააგზავნოთ}}?", - "thanks-thanked-notice": "მომხმარებელს/მომხმარებლებს $1 გაეგზავნა(თ) შეტყობინება, რომ თქვენ მოიწონეთ {{GENDER:$2|მისი|მისი|მათი}} რედაქტირება.", + "thanks-confirmation2": "საჯარო მადლობის {{GENDER:$1|გაგზავნა}}?", + "thanks-thanked-notice": "{{GENDER:$3|თქვენ}} მადლობა გადაუხადეთ მომხმარებელს {{GENDER:$2|$1}}.", "thanks": "გადაუხადე მადლობა", "thanks-submit": "გადაუხადე მადლობა", "echo-pref-subscription-edit-thank": "მადლობა ჩემი რედაქტირებისათვის", diff --git a/Thanks/i18n/kaa.json b/Thanks/i18n/kaa.json new file mode 100644 index 00000000..ac61bd03 --- /dev/null +++ b/Thanks/i18n/kaa.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Inabat Allanova" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|raxmet}}}}" +} diff --git a/Thanks/i18n/kcg.json b/Thanks/i18n/kcg.json new file mode 100644 index 00000000..96677b2a --- /dev/null +++ b/Thanks/i18n/kcg.json @@ -0,0 +1,10 @@ +{ + "@metadata": { + "authors": [ + "Amire80", + "Kambai Akau" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|gwai ma̱ng}}}}", + "thanks-thank-tooltip": "{{GENDER:$1|Ta̱m ma̱ng}} {{GENDER:$2|a̱tyuta̱m}} wuni a̱lama gwai" +} diff --git a/Thanks/i18n/kea.json b/Thanks/i18n/kea.json new file mode 100644 index 00000000..9b6d15e9 --- /dev/null +++ b/Thanks/i18n/kea.json @@ -0,0 +1,13 @@ +{ + "@metadata": { + "authors": [ + "Waldyrious" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|agradesi}}}}", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|agradesidu}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Agradesi}}}}", + "thanks-confirmation2": "{{GENDER:$1|Manda}} un agradesimentu públiku?", + "thanks": "Manda agradesimentu", + "thanks-submit": "Manda agradesimentu" +} diff --git a/Thanks/i18n/kk-cyrl.json b/Thanks/i18n/kk-cyrl.json index 8e693c24..24428bae 100644 --- a/Thanks/i18n/kk-cyrl.json +++ b/Thanks/i18n/kk-cyrl.json @@ -2,11 +2,12 @@ "@metadata": { "authors": [ "Arystanbek", - "Macofe" + "Macofe", + "СеніңШешең" ] }, "thanks-desc": "Қатысушылардың өңдемелеріне, пікірлеріне және тағы басқаларға рахмет айту үшін сілтемелерді қосу", - "thanks-thank": "{{GENDER:$1|{{GENDER:$2|рахмет}}}}", + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|рақмет}}}}", "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|рахмет айттыңыз}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Рахметіңізді білдіру}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Рахмет білдірілді}}}}", diff --git a/Thanks/i18n/ko.json b/Thanks/i18n/ko.json index d5390d6f..6e0a13a6 100644 --- a/Thanks/i18n/ko.json +++ b/Thanks/i18n/ko.json @@ -71,5 +71,6 @@ "flow-thanks-thanked-notice": "{{GENDER:$3|당신}}이 {{GENDER:$2|그의|그녀의|그 사용자의}} 댓글에 감사를 표했습니다.", "notification-flow-thanks-post-link": "당신의 의견", "notification-compact-header-flow-thank": "$1 님이 {{GENDER:$3|당신}}에게 {{GENDER:$2|감사를 표했습니다}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|사람 한 명|사람 $1명|100=사람 99명 이상}}이 \"<strong>$2</strong>\"에 {{GENDER:$3|당신}}이 남긴 댓글에 감사를 표했습니다." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|사람 한 명|사람 $1명|100=사람 99명 이상}}이 \"<strong>$2</strong>\"에 {{GENDER:$3|당신}}이 남긴 댓글에 감사를 표했습니다.", + "ipb-action-thanks": "감사 표현 보내기" } diff --git a/Thanks/i18n/kr.json b/Thanks/i18n/kr.json new file mode 100644 index 00000000..2ef74d9c --- /dev/null +++ b/Thanks/i18n/kr.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Mohammedbama123" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|askǝrne}}}}" +} diff --git a/Thanks/i18n/ks-arab.json b/Thanks/i18n/ks-arab.json new file mode 100644 index 00000000..66d6e2b5 --- /dev/null +++ b/Thanks/i18n/ks-arab.json @@ -0,0 +1,12 @@ +{ + "@metadata": { + "authors": [ + "Iflaq", + "Teashae" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|شُکرِیا}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|شُکرِیا}}}}", + "thanks-button-action-cancel": "مَنسوٗخ", + "echo-category-title-edit-thank": "شُکرِیا" +} diff --git a/Thanks/i18n/ku-latn.json b/Thanks/i18n/ku-latn.json index 9b11e97d..0890045f 100644 --- a/Thanks/i18n/ku-latn.json +++ b/Thanks/i18n/ku-latn.json @@ -9,5 +9,6 @@ "thanks-thank": "{{GENDER:$1|{{GENDER:$2|spas}}}}", "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|hate spaskirin}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Spas}}}}", + "thanks-thank-tooltip": "Ji {{GENDER:$2|vî bikarhênerî|vê bikarhênerê}} re danezaneke sipasiyê {{GENDER:$1|bişîne}}", "echo-category-title-edit-thank": "Spas" } diff --git a/Thanks/i18n/lad.json b/Thanks/i18n/lad.json new file mode 100644 index 00000000..a404f546 --- /dev/null +++ b/Thanks/i18n/lad.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "WikiiiTranslator" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|agradeser}}}}" +} diff --git a/Thanks/i18n/lb.json b/Thanks/i18n/lb.json index 4672dc9b..57e54116 100644 --- a/Thanks/i18n/lb.json +++ b/Thanks/i18n/lb.json @@ -40,5 +40,6 @@ "flow-thanks-confirmation-special": "Wëllt Dir ëffentlech fir dës Bemierkung e 'Merci' schécken?", "notification-flow-thanks-post-link": "Är Bemierkung", "notification-header-flow-thank": "$1 {{GENDER:$2|huet}} {{GENDER:$5|Iech}} fir Är Bemierkung op \"<strong>$3</strong>\" Merci gesot.", - "notification-compact-header-flow-thank": "$1 huet {{GENDER:$3|Iech}} {{GENDER:$2|Merci gesot}} ." + "notification-compact-header-flow-thank": "$1 huet {{GENDER:$3|Iech}} {{GENDER:$2|Merci gesot}} .", + "ipb-action-thanks": "Merci schécken" } diff --git a/Thanks/i18n/lbe.json b/Thanks/i18n/lbe.json new file mode 100644 index 00000000..86120ac9 --- /dev/null +++ b/Thanks/i18n/lbe.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Soul Train" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|барча бан}}}}" +} diff --git a/Thanks/i18n/lez.json b/Thanks/i18n/lez.json new file mode 100644 index 00000000..c4fedc15 --- /dev/null +++ b/Thanks/i18n/lez.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Soul Train" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|сагьрай}}}}" +} diff --git a/Thanks/i18n/lij.json b/Thanks/i18n/lij.json index a6590b53..07788b40 100644 --- a/Thanks/i18n/lij.json +++ b/Thanks/i18n/lij.json @@ -2,11 +2,12 @@ "@metadata": { "authors": [ "Giromin Cangiaxo", + "N. Longo", "S4b1nuz E.656" ] }, "thanks-desc": "A l'azonze un ingancio pe ringrassiâ i utenti pe de modiffiche, di commenti, ecc.", - "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ringrassia}}}}", + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ringràçia}}}}", "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|ringrassiou|ringrassiâ|ringrassiou/â}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Ringrassia}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|ringrassiou|ringrassiâ|ringrassiou/â}}}}", diff --git a/Thanks/i18n/lmo.json b/Thanks/i18n/lmo.json new file mode 100644 index 00000000..5d8c452e --- /dev/null +++ b/Thanks/i18n/lmo.json @@ -0,0 +1,62 @@ +{ + "@metadata": { + "authors": [ + "Salvemm el lombard" + ] + }, + "thanks-desc": "El sgionta un conligament per ringrazzià i utent per i modifiche, i coment, eccetera.", + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ringrazziel}}|{{GENDER:$2|ringrazziala}}}}", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|ringraziad|ringraziada|ringraziad/da}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Ringrazzia}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Ringraziado|Ringraziada|Ringraziad/da}}}}", + "thanks-button-action-queued": "Adree a ringrazzià {{GENDER:$1|{{GENDER:$2|el $1…|la $1…|el/la $1…}}}}", + "thanks-button-action-cancel": "Anulla", + "thanks-button-action-completed": "T'hee ringrazziad {{GENDER:$1|{{GENDER:$2|el $1…|la $1…|el/la $1…}}}}", + "thanks-error-undefined": "Eror in del cors del rigraziament (codes eror: $1). Prova anmò.", + "thanks-error-invalid-log-id": "Vos de register minga trovada", + "thanks-error-invalid-log-type": "El tipo de register '$1' l'è minga in la lista di tipi de register permetud.", + "thanks-error-log-deleted": "La vos de register l'è stada scancelada e per quella reson chì a se po fa minga el ringrazziament.", + "thanks-error-invalidrevision": "L'Id de la version l'è minga valid.", + "thanks-error-revdeleted": "Impossibel mandà i ringrazziament perchè la revision l'è stada scacelada.", + "thanks-error-notitle": "A l'è stad minga possibil recuperà el titol de la pagina", + "thanks-error-invalidrecipient": "A l'è stad trovad nissun destinatari valid", + "thanks-error-invalidrecipient-bot": "A se po minga ringrazzià i bot", + "thanks-error-invalidrecipient-self": "Te podet minga ringrazziass", + "thanks-error-notloggedin": "I utent anonim i poden minga mandà di ringrzziament", + "thanks-error-ratelimited": "{{GENDER:$1|t'hee sorpassad}} el numer massim de ringrazziament. Speta un poo de temp e prova anmò.", + "thanks-error-api-params": "I gh'hann de vesser fornid tant el parametro 'revid', quant el parametro 'logid'", + "thanks-thank-tooltip": "{{GENDER:$1|Manda}} una notifica de ringrazzià {{GENDER:$2|quell utent chì}}", + "thanks-thank-tooltip-no": "{{GENDER:$1|Anula}} la notifica de ringrazziament", + "thanks-thank-tooltip-yes": "{{GENDER:$1|Spediss}} la notifica de ringrazziament", + "thanks-confirmation2": "{{GENDER:$1|Mandà}} un ringrazziament publicament?", + "thanks-thanked-notice": "{{GENDER:$3|T'hee ringtrazziad}} {{GENDER:$2|el $1|el $1|el/la $1}}.", + "thanks": "Manda i ringrazziament", + "thanks-submit": "Manda i ringrazziament", + "echo-pref-subscription-edit-thank": "El me ringrazia per una mia modifica", + "echo-pref-tooltip-edit-thank": "Avisom quand che un quaivun el me ringrazzia per una notifica che hoo fad.", + "echo-category-title-edit-thank": "Ringrazziament", + "notification-thanks-diff-link": "la toa modifega", + "notification-header-rev-thank": "{{GENDER:$2|El $1 el|La $1 la|El/la $1 el/la}} {{GENDER:$4|t'ha ringraziad}} per la toa modifica in su <strong>$3</strong>.", + "notification-header-creation-thank": "{{GENDER:$2|El $1 el|La $1 la|El/la $1 el/la}} {{GENDER:$4|t'ha ringraziad|t'ha ringraziada|t'ha ringraziad/da}} de avè cread la pagina <strong>$3</strong>.", + "notification-header-log-thank": "{{GENDER:$2|El $1 el|La $1 la|El/la $1 el/la}} {{GENDER:$4|t'ha ringraziad|t'ha ringraziada|t'ha ringraziad/da}} per la toa azzion in su <strong>$3</strong>", + "notification-compact-header-edit-thank": "{{GENDER:$2|El $1 el|La $1 la|El/la $1 el/la}} {{GENDER:$3|t'ha ringraziad|t'ha ringraziada|t'ha ringraziad/da}}", + "notification-bundle-header-rev-thank": "{{PLURAL:$1|Una persona la t'hà|$1 persone i t'hann|100=Pussée de 99 persone i t'hann}} {{GENDER:$3|ringraziad}} per la toa modifica in su <strong>$2</strong>.", + "notification-bundle-header-log-thank": "{{PLURAL:$1|Una persona la t'hà|$1 persone i t'hann|100=Pussée de 99 persone i t'hann}} {{GENDER:$3|ringraziad}} per la azzion in su <strong>$2</strong>.", + "log-name-thanks": "Register di ringrazziament", + "log-description-thanks": "Chi de sota gh'è la lista di utent ringrazziad di alter utent.", + "logentry-thanks-thank": "{{GENDER:$2|El $1 el|La $1 la|El/la $1 el/la}} t'hà ringrazziad {{GENDER:$4|el $3|la $3|el/la $3}}", + "logeventslist-thanks-log": "Register di ringrazziament", + "thanks-error-no-id-specified": "Te gh'heet de specifegà un ID de la version o un register per ringrazià.", + "thanks-confirmation-special-log": "Te veouret ringrazzià publicament per questa azzion in del register?", + "thanks-confirmation-special-rev": "Te voeuret ringrazzià publicament per questa modifica chì?", + "notification-link-text-view-post": "Varda el coment", + "notification-link-text-view-logentry": "Varda l'element del register", + "thanks-error-invalidpostid": "L'ID del messagg l'è minga valid.", + "flow-thanks-confirmation-special": "Te voeuret ringrazzià publicament per quell coment chì?", + "flow-thanks-thanked-notice": "{{GENDER:$3|T'hee ringraziad}} $1 per {{GENDER:$2|el so}} coment.", + "notification-flow-thanks-post-link": "el to coment", + "notification-header-flow-thank": "{{GENDER:$2|El $1 el|La $1 la|El/la $1 el/la}} {{GENDER:$5|t'hà}} ringrazziad per el to coment in \"<strong>$3</strong>\".", + "notification-compact-header-flow-thank": "{{GENDER:$2|El $1 el|La $1 la|El/la $1 el/la}} {{GENDER:$3|t'ha ringraziad}}.", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Una persona la t'hà|$1 persone i t'hann|100=Pussée de 99 persone i t'hann}} {{GENDER:$3|ringraziad|ringraziada|ringraziad/a}} per el to coment in \"<strong>$2</strong>\".", + "ipb-action-thanks": "Mandà i ringrazziament" +} diff --git a/Thanks/i18n/lt.json b/Thanks/i18n/lt.json index 73cec76c..a104ad25 100644 --- a/Thanks/i18n/lt.json +++ b/Thanks/i18n/lt.json @@ -21,7 +21,7 @@ "thanks-button-action-completed": "Jūs {{GENDER:$1|{{GENDER:$2|padėkojote}}}} $1", "thanks-error-undefined": "Padėkoti nepavyko (klaidos kodas: $1). Prašome pabandyti dar kartą.", "thanks-error-invalidrevision": "Netinkamas versijos ID", - "thanks-error-revdeleted": "Versija buvo ištrinta", + "thanks-error-revdeleted": "Neįmanoma padėkoti, nes ši versija buvo ištrinta.", "thanks-error-notitle": "Nepavyko gauti puslapio pavadinimo", "thanks-error-invalidrecipient": "Nerastas tinkamas recipientas", "thanks-error-invalidrecipient-bot": "Negalima padėkoti robotams", diff --git a/Thanks/i18n/lv.json b/Thanks/i18n/lv.json index 68254e11..98f45d37 100644 --- a/Thanks/i18n/lv.json +++ b/Thanks/i18n/lv.json @@ -44,6 +44,8 @@ "notification-header-creation-thank": "$1 {{GENDER:$2|pateicās}} {{GENDER:$4|tev}} par <strong>$3</strong> izveidi.", "notification-header-log-thank": "$1 {{GENDER:$2|pateicās}} {{GENDER:$4|tev}} par tavu darbību saistībā ar <strong>$3</strong>.", "notification-compact-header-edit-thank": "$1 {{GENDER:$2|pateicās}} {{GENDER:$3|tev}}.", + "notification-bundle-header-rev-thank": "{{PLURAL:$1|$1 cilvēks|$1 cilvēki|100=99+ cilvēki}} pateicās {{GENDER:$3|tev}} par tavu labojumu <strong>$2</strong>.", + "notification-bundle-header-log-thank": "{{PLURAL:$1|$1 cilvēks|$1 cilvēki|100=99+ cilvēki}} pateicās {{GENDER:$3|tev}} par tavu darbību saistībā ar <strong>$2</strong>.", "log-name-thanks": "Pateicību žurnāls", "log-description-thanks": "Zemāk ir saraksts ar lietotājiem, kuriem citi lietotāji ir pateikušies.", "logentry-thanks-thank": "$1 {{GENDER:$2|pateicās}} {{GENDER:$4|$3}}", @@ -58,5 +60,7 @@ "flow-thanks-thanked-notice": "{{GENDER:$3|Tu}} pateicies $1 par {{GENDER:$2|viņa|viņas|viņa}} komentāru.", "notification-flow-thanks-post-link": "tavs komentārs", "notification-header-flow-thank": "$1 {{GENDER:$2|pateicās}} {{GENDER:$5|tev}} par tavu komentāru tēmā \"<strong>$3</strong>\".", - "notification-compact-header-flow-thank": "$1 {{GENDER:$2|pateicās}} {{GENDER:$3|tev}}." + "notification-compact-header-flow-thank": "$1 {{GENDER:$2|pateicās}} {{GENDER:$3|tev}}.", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|$1 cilvēks|$1 cilvēki|100=99+ cilvēki}} pateicās {{GENDER:$3|tev}} par tavu komentāru par \"<strong>$2</strong>\".", + "ipb-action-thanks": "Pateicību sūtīšana" } diff --git a/Thanks/i18n/mad.json b/Thanks/i18n/mad.json new file mode 100644 index 00000000..0a38a0d1 --- /dev/null +++ b/Thanks/i18n/mad.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Boesenbergia" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ngoca' kaso'on}}}}", + "thanks-thank-tooltip": "{{GENDER:$1|Kèrèm}} sèttong partèla pamator sakalangkong ḍâ' {{GENDER:$2|pangangghuy}} arèya" +} diff --git a/Thanks/i18n/mag.json b/Thanks/i18n/mag.json new file mode 100644 index 00000000..683b9deb --- /dev/null +++ b/Thanks/i18n/mag.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "ऐक्टिवेटेड्" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|धन्यबाद द}}}}" +} diff --git a/Thanks/i18n/mk.json b/Thanks/i18n/mk.json index 49b2f50a..d2e44323 100644 --- a/Thanks/i18n/mk.json +++ b/Thanks/i18n/mk.json @@ -16,7 +16,7 @@ "thanks-button-action-completed": "{{GENDER:$1|{{GENDER:$2|Се заблагодаривте на}}}} $1", "thanks-error-undefined": "Заблагодарувањето не успеа (код на грешката: $1). Обидете се повторно.", "thanks-error-invalid-log-id": "Не ја пронајдов дневничката ставка", - "thanks-error-invalid-log-type": "Нема дневник од видот „$1“ на белиот список на дозволени видови дневници.", + "thanks-error-invalid-log-type": "Нема дневник од видот „$1“ на списокот на дозволени видови дневници.", "thanks-error-log-deleted": "Побараната дневничка ставка е избришана и затоа не може да се благодари за неа.", "thanks-error-invalidrevision": "Преработката има неважечка назнака.", "thanks-error-revdeleted": "Не можам да благодарам бидејќи преработката е избришана.", @@ -59,5 +59,6 @@ "notification-flow-thanks-post-link": "вашиот коментар", "notification-header-flow-thank": "$1 {{GENDER:$5|ви}} {{GENDER:$2|благодари}} за вашиот коментар на „<strong>$3</strong>“.", "notification-compact-header-flow-thank": "$1 {{GENDER:$3|ви}} се {{GENDER:$2|заблагодари}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Едно лице ви благодари|$1 луѓе ви благодарат|100=Преку 99 луѓе ви благодарат}} за {{GENDER:$3|вашиот}} коментар на „<strong>$2</strong>“." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Едно лице ви благодари|$1 луѓе ви благодарат|100=Преку 99 луѓе ви благодарат}} за {{GENDER:$3|вашиот}} коментар на „<strong>$2</strong>“.", + "ipb-action-thanks": "Испраќање на благодарница" } diff --git a/Thanks/i18n/mnc.json b/Thanks/i18n/mnc.json new file mode 100644 index 00000000..0f404b84 --- /dev/null +++ b/Thanks/i18n/mnc.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Chulsu463" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|baniha}}}}", + "thanks-thank-tooltip": "{{GENDER:$1|ulambi}}emke baniha sinde mejige{{GENDER:$2|baitalasi}}" +} diff --git a/Thanks/i18n/mni.json b/Thanks/i18n/mni.json index d2df5112..adeb8e1c 100644 --- a/Thanks/i18n/mni.json +++ b/Thanks/i18n/mni.json @@ -3,11 +3,11 @@ "authors": [ "Amire80", "Awangba Mangang", - "Laishram Lokendro" + "Laishram Lokendro", + "꯴꯰꯴" ] }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ꯊꯥꯒꯠꯆꯔꯤ}}}}", - "thanks-thank-tooltip": "{{GENDER:$1|Send}} a thank you notification to this {{GENDER:$2|ꯁꯤꯖꯤꯟꯅꯔꯤꯕ}}", - "thanks-confirmation2": "{{GENDER:$1|Send}} public thanks for this edit?", + "thanks-thank-tooltip": "ꯃꯁꯤꯒꯤ{{GENDER:$2|ꯁꯤꯖꯤꯟꯅꯔꯤꯕ}} ꯑꯁꯤꯗ ꯑꯗꯣꯝꯕꯨ ꯊꯥꯒꯠꯆꯔꯤ ꯍꯥꯏꯕ ꯅꯣꯇꯤꯐꯤꯀꯦꯁꯟ ꯑꯗꯨ {{GENDER:$1|ꯊꯥꯁꯤ}}", "flow-thanks-confirmation-special": "nahak waphamsigidamak mayamda thagat-waheising piningbra?" } diff --git a/Thanks/i18n/mos.json b/Thanks/i18n/mos.json new file mode 100644 index 00000000..ff2feceb --- /dev/null +++ b/Thanks/i18n/mos.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Hasslaebetch" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|pʋʋs barka}}}}" +} diff --git a/Thanks/i18n/ms-arab.json b/Thanks/i18n/ms-arab.json new file mode 100644 index 00000000..ebc49a63 --- /dev/null +++ b/Thanks/i18n/ms-arab.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Tofeiku" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|هرݢاءي}}}}", + "thanks-thank-tooltip": "{{GENDER:$1|هانتر}} ڤمبريتاهوان تريما کاسيه ک{{GENDER:$2|ڤڠݢونا}} اين" +} diff --git a/Thanks/i18n/my.json b/Thanks/i18n/my.json index c0a08403..bac8cc81 100644 --- a/Thanks/i18n/my.json +++ b/Thanks/i18n/my.json @@ -42,5 +42,6 @@ "notification-flow-thanks-post-link": "သင်၏မှတ်ချက်", "notification-header-flow-thank": "$1 က \"<strong>$3</strong>\" ရှိ သင်၏မှတ်ချက်အတွက် {{GENDER:$5|သင့်ကို}} {{GENDER:$2|ကျေးဇူးတင်ခဲ့သည်}}။", "notification-compact-header-flow-thank": "$1 က {{GENDER:$3|သင်}}အား {{GENDER:$2|ကျေးဇူးတင်ခဲ့}}သည်။", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|လူတစ်ယောက်|လူ $1 ယောက်|100=99+ လူပေါင်း}} က {{GENDER:$3|သင့်ကို}} <strong>$2</strong> ပေါ်ရှိသင်၏မှတ်ချက်အတွက် ကျေးဇူးတင်ခဲ့သည်။" + "notification-bundle-header-flow-thank": "{{PLURAL:$1|လူတစ်ယောက်|လူ $1 ယောက်|100=99+ လူပေါင်း}} က {{GENDER:$3|သင့်ကို}} <strong>$2</strong> ပေါ်ရှိသင်၏မှတ်ချက်အတွက် ကျေးဇူးတင်ခဲ့သည်။", + "ipb-action-thanks": "ကျေးဇူးတင်မှု ပို့ခြင်း" } diff --git a/Thanks/i18n/mzn.json b/Thanks/i18n/mzn.json index a9f31ac0..bedfed86 100644 --- a/Thanks/i18n/mzn.json +++ b/Thanks/i18n/mzn.json @@ -5,5 +5,6 @@ ] }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|تشکر}}}}", - "thanks-thank-tooltip": " {{GENDER:$2|کارور}} وسّه تشکر ِپیغوم {{GENDER:$1|برسنیین}}" + "thanks-thank-tooltip": " {{GENDER:$2|کارور}} وسّه تشکر ِپیغوم {{GENDER:$1|برسنیین}}", + "notification-header-rev-thank": "$1، {{GENDER:$4|شمجه}} <strong>$3</strong> دچیین وسّه، {{GENDER:$2|تشکر هاکرده}}." } diff --git a/Thanks/i18n/nb.json b/Thanks/i18n/nb.json index 539a4c7c..0c433b24 100644 --- a/Thanks/i18n/nb.json +++ b/Thanks/i18n/nb.json @@ -20,7 +20,7 @@ "thanks-button-action-completed": "Du {{GENDER:$1|{{GENDER:$2|takket}}}} $1", "thanks-error-undefined": "Takkehandlingen feilet (feilkode: $1). Prøv igjen.", "thanks-error-invalid-log-id": "Loggpost ble ikke funnet", - "thanks-error-invalid-log-type": "Loggtypen '$1' er ikke i hvitelisten over tillatte loggtyper.", + "thanks-error-invalid-log-type": "Loggtypen «$1» er ikke i listen over tillatte loggtyper.", "thanks-error-log-deleted": "Den forespurte loggposten har blitt sletta og kan ikke takkes for.", "thanks-error-invalidrevision": "Revisjons-ID er ikke gyldig.", "thanks-error-revdeleted": "Kunne ikke sende takk fordi revisjonen har blitt sletta.", @@ -63,5 +63,6 @@ "notification-flow-thanks-post-link": "kommentaren din", "notification-header-flow-thank": "$1 {{GENDER:$2|takket}} for kommentaren {{GENDER:$5|din}} under overskriften «<strong>$3</strong>».", "notification-compact-header-flow-thank": "$1 {{GENDER:$2|takket}} {{GENDER:$3|deg}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Én person|$1 personer|100=99+ personer}} takket for kommentaren {{GENDER:$3|din}} under «<strong>$2</strong>»." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Én person|$1 personer|100=99+ personer}} takket for kommentaren {{GENDER:$3|din}} under «<strong>$2</strong>».", + "ipb-action-thanks": "Sender takk" } diff --git a/Thanks/i18n/ne.json b/Thanks/i18n/ne.json index e3541a47..ccebb2cf 100644 --- a/Thanks/i18n/ne.json +++ b/Thanks/i18n/ne.json @@ -1,8 +1,10 @@ { "@metadata": { "authors": [ + "Bada Kaji", "NehalDaveND", "Nirjal stha", + "बडा काजी", "बिप्लब आनन्द", "राम प्रसाद जोशी", "सरोज कुमार ढकाल", @@ -11,31 +13,50 @@ }, "thanks-desc": "प्रयोगकर्ताहरूलाई तिनीहरूको सम्पादन, टिप्पणी आदिको लागि धन्यवाद दिने लिङ्क जोड्ने।", "thanks-thank": "{{GENDER:$1|{{GENDER:$2|धन्यवाद दिनुहोस्}}}}", - "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|धन्यवाद दिइयो}}}}", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|तपाईँले धन्यवाद दिनुभयो}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|धन्यवाद}}}}", - "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|धन्यवाद दिइयो}}}}", - "thanks-error-undefined": "धन्यवाद दिने कार्य विफल भयो। कृपया पुनः प्रयास गर्नुहोस।", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|तपाईँले धन्यवाद दिनुभयो}}}}", + "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|लाई धन्यवाद दिँदै}}}} $1…", + "thanks-button-action-cancel": "रद्द गर्नुहोस्", + "thanks-button-action-completed": "तपाईंले {{GENDER:$1|{{GENDER:$2|धन्यवाद दिनुभयो}}}} $1", + "thanks-error-undefined": "धन्यवाद कार्य असफल भयो (त्रुटि: $1)। फेरि प्रयास गर्नुहोस।", + "thanks-error-invalid-log-id": "अभिलेख प्रविष्टि फेला परेन", "thanks-error-invalidrevision": "अवतरण आइडी मान्य छैन।", + "thanks-error-notitle": "पृष्ठ शीर्षक पुन: प्राप्त गर्न सकिएन", + "thanks-error-invalidrecipient": "कुनै मान्य प्रयोगकर्ता फेला परेन", + "thanks-error-invalidrecipient-bot": "बटहरूलाई धन्यवाद दिन सकिँदैन", + "thanks-error-invalidrecipient-self": "तपाईं आफैलाई धन्यवाद दिन सक्नुहुन्न", + "thanks-error-notloggedin": "अज्ञात प्रयोगकर्ताहरूले धन्यवाद पठाउन सक्दैनन्", "thanks-error-ratelimited": "{{GENDER:$1|तपाईं}} आफ्नो दर सीमा पार गरिसक्नु भएको छ। कृपया केही समय पछी पुनः प्रयास गर्नुहोला।", "thanks-thank-tooltip": "यस {{GENDER:$2|प्रयोगकर्ता}}लाई धन्यवाद अधिसूचना {{GENDER:$1|पठाउने}}।", - "thanks-confirmation2": "यो सम्पादनको लागि धन्यवाद {{GENDER:$1|दिनुहोस्}}", + "thanks-thank-tooltip-no": "धन्यवाद सूचनालाई {{GENDER:$1|रद्द गर्नुहोस्}}", + "thanks-thank-tooltip-yes": "धन्यवाद सूचना {{GENDER:$1|पठाउनुहोस्}}", + "thanks-confirmation2": "के तपाईंले सार्वजनिक रूपमा धन्यवाद {{GENDER:$1|पठाउन}} चाहनुहुन्छ?", "thanks-thanked-notice": "तपाईंलाई {{GENDER:$2|उसले|उनले|उनिहरूले}} गरेको सम्पादन मन परेको छ भन्ने सूचना $1लाई पठाइएको छ ।", "thanks": "धन्यवाद पठाउनुहोस्", "thanks-submit": "धन्यवाद पठाउनुहोस्", + "echo-pref-subscription-edit-thank": "मेरो सम्पादनको लागि धन्यवाद", "echo-pref-tooltip-edit-thank": "कसैले मेरो सम्पादनको लागि मलाई धन्यवाद दिएमा मलाई सूचित गर्ने ।", "echo-category-title-edit-thank": "धन्यवाद", "notification-thanks-diff-link": "तपाईंको सम्पादन", - "notification-header-rev-thank": "$1 ले {{GENDER:$4|तपाईंलाई}} तपाईंको सम्पादन <strong>$3</strong> को लागि {{GENDER:$2|धन्यवाद दिएका छन्}} ।", + "notification-header-rev-thank": "$1ले {{GENDER:$4|तपाईंलाई}} \"<strong>$3</strong>\"को सम्पादनको लागी {{GENDER:$2|धन्यवाद दिनुभएको छ}}।", "notification-header-creation-thank": "$1 {{GENDER:$2|धन्यवाद}} {{GENDER:$4|तपाईकाे}} सृजनाका लागि <strong>$3</strong> छ।", + "notification-compact-header-edit-thank": "$1ले {{GENDER:$3|तपाईं}}लाई {{GENDER:$2|धन्यवाद}} दिनुभो।", "notification-bundle-header-rev-thank": "{{PLURAL:$1|एक व्यक्ति|$1 व्यक्तिहरू|100=99+ व्यक्तिहरू}}ले {{GENDER:$3|तपाईंलाई}} <strong>$2</strong>मा तपाईंले गरेको सम्पादनको लागि धन्यवाद दिएका छन् ।", - "log-name-thanks": "धन्यवाद लग", + "log-name-thanks": "धन्यवाद अभिलेखहरू", "log-description-thanks": "अन्य प्रयोगकर्ताहरूद्वारा धन्यवाद पाउने प्रयोगकर्ताहरूको सूची निम्न रहेको छ।", - "logentry-thanks-thank": "$1ले {{GENDER:$4|$3}}लाई {{GENDER:$2|धन्यवाद दिएको छ}}", + "logentry-thanks-thank": "$1ले {{GENDER:$4|$3}}लाई {{GENDER:$2|धन्यवाद दिनुभएको छ}}", + "logeventslist-thanks-log": "धन्यवाद अभिलेखहरू", "thanks-error-no-id-specified": "धन्यवाद गर्नको लागि तपाईंलाई कुनै एक पुनरीक्षण ठेगाना निर्दिष्ट गर्नु पर्ने हो।", + "thanks-confirmation-special-log": "के तपाईं सार्वजनिक रूपमा धन्यवाद पठाउन चाहनुहुन्छ?", + "thanks-confirmation-special-rev": "के तपाईं सार्वजनिक रूपमा यो सम्पादनको लागि धन्यवाद पठाउन चाहनुहुन्छ?", "notification-link-text-view-post": "टिप्पणी हेर्ने", + "notification-link-text-view-logentry": "अभिलेख प्रविष्टि हेर्नुहोस्", "thanks-error-invalidpostid": "पोस्ट ठेगाना अमान्य छ।", "flow-thanks-confirmation-special": "के तपाईं यस प्रतिक्रियाको लागि धन्यवाद पठाउन चाहनुहुन्छ?", "flow-thanks-thanked-notice": "तपाईंलाई {{GENDER:$2|उसले|उनले|उनिहरूले}} दिएको प्रतिक्रिया मन परेको छ भन्ने सूचना $1लाई पठाइएको छ ।", + "notification-flow-thanks-post-link": "तपाईको टिप्पणी", "notification-header-flow-thank": " \"<strong>$3</strong>\" मा तपाईँको प्रतिक्रियाको लागि $1 ले {{GENDER:$5|तपाईँलाई}} {{GENDER:$2|धन्यवाद}} दिनुभो ।", - "notification-compact-header-flow-thank": "$1 ले {{GENDER:$3|तपाईँ}}लाई {{GENDER:$2|धन्यवाद}} दिनुभो ।" + "notification-compact-header-flow-thank": "$1ले {{GENDER:$3|तपाईं}}लाई {{GENDER:$2|धन्यवाद}} दिनुभो।", + "ipb-action-thanks": "धन्यवाद पठाउँदै" } diff --git a/Thanks/i18n/nia.json b/Thanks/i18n/nia.json new file mode 100644 index 00000000..64abca66 --- /dev/null +++ b/Thanks/i18n/nia.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Slaia" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|andrö saohagölö}}}}", + "thanks-thank-tooltip": "{{GENDER:$1|Send}} manguma'ö saohagölö khö {{GENDER:$2|user}}" +} diff --git a/Thanks/i18n/nmz.json b/Thanks/i18n/nmz.json new file mode 100644 index 00000000..c47419d6 --- /dev/null +++ b/Thanks/i18n/nmz.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "GastonJeremiah" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|hɛra ŋwɛɛgb}}}}" +} diff --git a/Thanks/i18n/nod.json b/Thanks/i18n/nod.json new file mode 100644 index 00000000..fe3cdac7 --- /dev/null +++ b/Thanks/i18n/nod.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Noktonissian" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ᨿᩥ᩠ᨶᨯᩦ}}}}" +} diff --git a/Thanks/i18n/nqo.json b/Thanks/i18n/nqo.json index 6b6539a7..cc55ece7 100644 --- a/Thanks/i18n/nqo.json +++ b/Thanks/i18n/nqo.json @@ -7,6 +7,50 @@ "Lanciné.kounfantoh.fofana" ] }, + "thanks-desc": "ߛߘߌ߬ߜߋ߲ ߠߎ߬ ߟߊߘߏ߲߬ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߟߎ߬ ߞߏߢߌߡߊߟߐ߲߫ ߞߊ߲ߡߊ߬ ߊ߬ߟߎ߬ ߟߊ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߠߎ߬ ߟߊ߫߸ ߡߙߌߣߊ߲ ߠߎ߬߸ ߊ߬ ߣߌ߫.", "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ߌ ߣߌ߫ ߗߋ߫}}}}", - "thanks-thank-tooltip": "{{GENDER:$1|ߗߋ߫}} ߞߎ߲ߟߎ߲ߖߋߟߌ߫ ߗߋߛߓߍ ߗߋ߫ {{GENDER:$2|ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ}} ߡߊ߬" + "thanks-thanked": "{{GENDER:$1|}} $2 {{GENDER:|ߞߏߢߌߡߊߟߐ߲߫}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|ߌ ߣߌ߫ ߗߋ߫}}}}", + "thanks-button-thanked": "{{GENDER:$1|}} $2 {{GENDER:|ߞߏߢߌߡߊߟߐ߲߫}}", + "thanks-button-action-queued": "$2 ߦߋ߫{{GENDER:$1|$1}}ߞߏߢߌߡߊߟߐ߲߫ ߞߊ߲߫...", + "thanks-button-action-cancel": "ߊ߬ ߘߐߛߊ߬", + "thanks-button-action-completed": "{{GENDER:$2|ߌ}}ߓߘߊ߫ {{GENDER:$1|ߞߏߢߌߡߊߟߐ߲߫}}", + "thanks-error-undefined": "ߓߊߙߌߞߊ߫ ߓߌߟߊ ߓߘߊ߫ ߗߌߙߏ߲߫ (ߝߌ߬ߟߌ ߘߏߝߙߍߕߍ: $1). ߊ߬ ߡߊߝߍߣߍ߲߫ ߌ ߞߐ߫ ߖߊ߰ߣߌ߲߫.", + "thanks-error-invalid-log-id": "ߕߋ߬ߟߋ߲ ߘߏ߲߬ߠߌ߲ ߡߊ߫ ߛߐ߬ߘߐ߲߫", + "thanks-error-invalid-log-type": "ߕߋ߬ߟߋ߲ ߛߎ߯ߦߊ «$1» ߕߍ߫ ߘߌ߬ߢߍ߬ߒ߬ߢߊ߬ ߕߋߟߋ߲ ߛߎ߯ߦߊ ߟߎ߬ ߛߙߍߘߍ ߘߐ߫.", + "thanks-error-invalidrevision": "ߟߢߊ߬ߟߌ ߡߊߟߐ߲ߠߌ߲ ߓߍ߲߬ߣߍ߲߫ ߕߍ߫.", + "thanks-error-revdeleted": "ߞߏߢߌߡߊߟߐ߲ ߕߍ߫ ߛߐ߲߬ ߗߋ߫ ߟߊ߫ ߓߊߏ߬ ߟߢߊ߬ߟߌ ߓߘߊ߫ ߓߊ߲߫ ߖߏ߲߫ ߠߊ߫.", + "thanks-error-notitle": "ߞߐߜߍ ߞߎ߲߬ߕߐ߮ ߕߍߣߊ߬ ߛߐ߲߬ ߠߊ߫ ߟߊߛߐ߬ߘߐ߲߬ ߠߊ߫", + "thanks-error-invalidrecipient": "ߕߊ߯ߦߙߐ߫ ߓߍ߲߬ߣߍ߲߫ ߛߌ߫ ߡߊ߫ ߛߐ߬ߘߐ߲߫", + "thanks-error-invalidrecipient-bot": "ߡߐ߰ߡߐ߮ ߕߍ߫ ߛߐ߲߬ ߞߏߢߌߡߊߟߐ߲߫ ߠߊ߫", + "thanks-error-invalidrecipient-self": "ߌ ߕߴߛߋ߫ ߌ ߖߘߍ߬ ߞߏߢߌߡߊߟߐ߲߫ ߠߊ߫", + "thanks-error-notloggedin": "ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߫ ߕߐ߯ߒߕߊ߲ ߕߴߛߋ߫ ߌ ߣߌ߫ ߗߋ ߗߋ߫ ߟߊ߫", + "thanks-error-ratelimited": "{{GENDER:$1|ߌ}} ߓߘߊ߫ ߛߴߌ ߟߊ߫ ߝߙߊ ߘߊ߲߭ ߠߊ߫. ߥߊ߯ߕߌ ߘߏ߫ ߘߐߞߐ߬ߣߐ߲߫ ߖߊ߰ߣߌ߲߫ ߞߵߊ߬ ߡߊߝߍߣߍ߲߫ ߞߎߘߊ߫ ߘߌ߫.", + "thanks-error-api-params": "ߕߎ߬ߡߊ߬ߘߐ߫ 'revid' ߥߟߊ߫ 'logid' ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߟߋ߬ ߞߊ߫ ߞߊ߲߫ ߦߋ߫ ߞߊ߬ ߡߊߛߐ߫.", + "thanks-thank-tooltip": "{{GENDER:$1|ߗߋ߫}} ߞߎ߲ߟߎ߲ߖߋߟߌ߫ ߗߋߛߓߍ ߗߋ߫ {{GENDER:$2|ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ}} ߡߊ߬", + "thanks-thank-tooltip-no": "$1 ߓߘߊ߫ ߌ ߣߌ߫ ߗߋ ߖߊ߲߬ߓߌ߬ߟߊ߬ߟߌ {{GENDER:|ߘߐߛߊ߬}}", + "thanks-thank-tooltip-yes": "$1 ߓߘߊ߫ ߌ ߣߌ߫ ߗߋ ߖߊ߲߬ߓߌ߬ߟߊ߬ߟߌ {{GENDER:|ߗߋ߫}}", + "thanks-confirmation2": "$1 ߞߊ߬ ߌ ߣߌ߫ ߗߋ {{GENDER:|ߗߋ߫}} ߞߣߍ ߞߊ߲߬؟", + "thanks-thanked-notice": "{{GENDER:$3|ߌ}} ߓߘߊ߫ {{GENDER:$2|$1}} ߞߏߢߌߡߊߟߐ߲߫.", + "thanks": "'ߌ ߣߌ߫ ߗߋ ߗߋ߫", + "thanks-submit": "'ߌ ߣߌ߫ ߗߋ ߗߋ߫", + "echo-pref-subscription-edit-thank": "ߒ ߞߏߢߌߡߊߟߐ߲ ߒ ߠߊ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߞߏߛߐ߲߬", + "echo-pref-tooltip-edit-thank": "ߞߊ߬ ߒ ߖߊ߲߭ߓߌ߬ߟߊ߬ ߣߌ߫ ߘߏߕߌ߰ ߞߊ߬ ߒ ߞߏߢߌߡߊߟߐ߲߫ ߒ ߠߊ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߞߏߛߐ߲߬.", + "echo-category-title-edit-thank": "ߌ ߣߌ߫ ߗߋ߫߹", + "notification-thanks-diff-link": "ߌ ߟߊ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲", + "notification-header-rev-thank": "$1 ߓߘߊ߫{{GENDER:$2|}} {{GENDER:$4|ߌ}}ߞߏߢߌߡߊߟߐ߲߫ ߌ ߟߊ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߠߊ߫ <strong>$3</strong> ߞߊ߲߬.", + "notification-header-creation-thank": "$1 ߓߘߊ߫{{GENDER:$2|}} {{GENDER:$4|ߌ}}ߞߏߢߌߡߊߟߐ߲߫ ߌ ߟߊ߫ <strong>$3</strong> ߛߌ߲ߘߟߌ ߟߊ߫.", + "notification-header-log-thank": "$1 ߓߘߊ߫{{GENDER:$2|}} {{GENDER:$4|ߌ}}ߞߏߢߌߡߊߟߐ߲߫ ߌ ߟߊ߫ ߞߍߟߌ ߘߏ߫ ߟߊ߫ ߞߊ߬ ߟߐ߬ <strong>$3</strong> ߡߊ߬.", + "notification-compact-header-edit-thank": "$1 ߓߘߊ߫{{GENDER:$2|}}{{GENDER:$3|ߌ}}ߞߏߢߌߡߊߟߐ߲߫.", + "log-name-thanks": "ߕߋ߬ߟߋ߲ ߞߏߢߌߡߊߟߐ߲ ߠߎ߬", + "log-description-thanks": "ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߡߍ߲ ߠߎ߬ ߞߏߢߌߡߊߟߐ߲ߣߍ߲߫ ߦߋ߫ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߕߐ߭ ߟߎ߬ ߓߟߴߏ߬ ߛߙߍߘߍ ߟߋ߬ ߦߋ߫ ߘߎ߰ߟߊ߫ ߣߌ߲߬.", + "logentry-thanks-thank": "$1 ߓߘߊ߫{{GENDER:$2|}}{{GENDER:$4|$3|ߌ}}ߞߏߢߌߡߊߟߐ߲߫.", + "logeventslist-thanks-log": "ߕߋ߬ߟߋ߲ ߞߏߢߌߡߊߟߐ߲ ߠߎ߬", + "thanks-error-no-id-specified": "ߌ ߞߊߡߊ߲߫ ߦߋ߫ ߞߊ߬ ߟߢߊ߬ߟߌ ߘߏ߫ ߞߙߍߞߙߍ߫ ߥߟߊ߫ ߕߋ߬ߟߋ߲ ߡߊ߬ߟߐ߲߬ߠߌ߲ ߞߊ߬ ߌ ߣߌ߫ ߗߋ ߗߋ߫", + "thanks-confirmation-special-log": "ߌ ߦߴߊ߬ ߝߍ߬ ߟߋ߬ ߓߊ߬ ߞߊ߬ ߌ ߣߌ߫ ߗߋ ߗߋ߫ ߜߍ ߘߐ߫ ߕߋ߬ߟߋ߲ ߣߌ߲߬ ߞߍߟߌ ߟߎ߬ ߢߍ߫؟", + "thanks-confirmation-special-rev": "ߌ ߦߴߊ߬ ߝߍ߬ ߞߊ߬ ߌ ߣߌ߫ ߗߋ ߗߋ߫ ߜߍ ߘߐ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߣߌ߲߬ ߢߍ߫ ߟߋ߬ ߓߊ߬؟", + "notification-link-text-view-post": "ߡߙߌߣߊ߲ ߦߌ߬ߘߊ߬", + "notification-link-text-view-logentry": "ߕߋ߬ߟߋ߲ ߘߏ߲߬ߠߌ߲ ߠߎ߬ ߦߋ߫", + "thanks-error-invalidpostid": "ߗߋߛߓߍ߫ ߗߋߣߍ߲ ߏ߬ ߡߊ߬ߟߐ߲߬ߠߌ߲ ߓߍ߲߬ߣߍ߲߫ ߕߍ߫.", + "flow-thanks-confirmation-special": "ߌ ߦߴߊ߬ ߝߍ߬ ߟߋ߬ ߓߊ߬ ߞߊ߬ ߌ ߣߌ߫ ߗߋ ߗߋ߫ ߜߍ ߘߐ߫ ߟߋ߬ ߡߙߌߣߊ߲ ߣߌ߲߬ ߢߍ߫؟" } diff --git a/Thanks/i18n/nyn.json b/Thanks/i18n/nyn.json new file mode 100644 index 00000000..8e5a68ef --- /dev/null +++ b/Thanks/i18n/nyn.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Amire80", + "Kakonjo" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|yebaza}}}}" +} diff --git a/Thanks/i18n/ojb.json b/Thanks/i18n/ojb.json new file mode 100644 index 00000000..9f55506f --- /dev/null +++ b/Thanks/i18n/ojb.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Aandeginini" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|daga}}}}", + "thanks-thank-tooltip": "{{GENDER:$1|Naajinizha'}} daga agwaakwa'igan izhi wa'aw {{GENDER:$2|wiin-aabaji'}}" +} diff --git a/Thanks/i18n/om.json b/Thanks/i18n/om.json new file mode 100644 index 00000000..bdd59637 --- /dev/null +++ b/Thanks/i18n/om.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Oromoom" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|galatoomi}}}}", + "thanks-thank-tooltip": "Yaadachiisa galatoomii {{GENDER:$2|fayyadamaa}} {{GENDER:$1|ergi}}" +} diff --git a/Thanks/i18n/or.json b/Thanks/i18n/or.json index d23b99a4..5e0b6b9d 100644 --- a/Thanks/i18n/or.json +++ b/Thanks/i18n/or.json @@ -7,13 +7,25 @@ }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ସାଧୁବାଦ ଦେବେ}}}}", "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|ସାଧୁବାଦ ଦେଲେ}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|ସାଧୁବାଦ}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|ସାଧୁବାଦ ଦେଲେ}}}}", + "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|ସାଧୁବାଦ ଦେଉଛି}}}} $1…", + "thanks-button-action-cancel": "ନାକଚ", + "thanks-button-action-completed": "ଆପଣ $1ଙ୍କୁ {{GENDER:$1|{{GENDER:$2|ସାଧୁବାଦ ଦେଲେ}}}}", + "thanks-error-invalid-log-id": "ଇତିହାସ ମିଳିଲା ନାହିଁ", "thanks-thank-tooltip": "{{GENDER:$2|user}}ଙ୍କୁ ଏକ ସାଧୁବାଦ ସୂଚନା {{GENDER:$1|ପଠାନ୍ତୁ}}", - "thanks-confirmation2": "ଏହି ସମ୍ପାଦନା ପାଇଁ ସାଧାରଣରେ {{GENDER:$1|ସାଧୁବାଦ ଜଣାଇବେ}}?", + "thanks-confirmation2": "ସାଧାରଣରେ ସାଧୁବାଦ {{GENDER:$1|ଜଣାଇବେ}}?", + "thanks-thanked-notice": "{{GENDER:$3|ଆପଣ}} {{GENDER:$2|$1}}ଙ୍କୁ ସାଧୁବାଦ ଦେଲେ ।", "thanks": "ସାଧୁବାଦ ଜଣାନ୍ତୁ", "thanks-submit": "ସାଧୁବାଦ ଜଣାନ୍ତୁ", + "echo-category-title-edit-thank": "ସାଧୁବାଦ", + "notification-thanks-diff-link": "ଆପଣଙ୍କ ସମ୍ପାଦନା", + "notification-header-rev-thank": "<strong>$3</strong>ରେ ଆପଣଙ୍କ ସମ୍ପାଦନା ପାଇଁ {{GENDER:$4|ଆପଣଙ୍କୁ}} $1 {{GENDER:$2|ସାଧୁବାଦ ଦେଲେ}} ।", + "notification-header-creation-thank": "$1 <strong>$3</strong> ତିଆରି କରିବା ସକାଶେ {{GENDER:$4|ଆପଣଙ୍କୁ}} {{GENDER:$2|ସାଧୁବାଦ ଦେଲେ}} ।", "log-description-thanks": "ବାକି ବ୍ୟବହାରକାରୀଙ୍କ ଦ୍ୱାରା ସାଧୁବାଦ ପାଇଥିବା ସଭ୍ୟଙ୍କ ତାଲିକା ।", "logentry-thanks-thank": "$1 {{GENDER:$2|ସାଧୁବାଦ ଦେଲେ}} {{GENDER:$4|$3}}", "flow-thanks-confirmation-special": "ଏହି ମତ ପାଇଁ ସାଧାରଣରେ ସାଧୁବାଦ ଜଣାଇବେ?", - "flow-thanks-thanked-notice": "$1ଙ୍କୁ {{GENDER:$2|ତାଙ୍କ|ତାଙ୍କ|ସେମାନଙ୍କ}} ସମ୍ପାଦନା ଲାଗି ସାଧୁବାଦ ଜଣାଇଦିଆଗଲା ।" + "flow-thanks-thanked-notice": "{{GENDER:$3|ଆପଣ}} $1ଙ୍କୁ for {{GENDER:$2|ତାଙ୍କ|ତାଙ୍କ|ତାଙ୍କ}} ମତ ପାଇଁ ସାଧୁବାଦ ଦେଲେ ।", + "notification-flow-thanks-post-link": "ଆପଣଙ୍କ ମତ", + "ipb-action-thanks": "ସାଧୁବାଦ ଜଣାଉଛି" } diff --git a/Thanks/i18n/os.json b/Thanks/i18n/os.json index 647b79e3..b2505d9d 100644 --- a/Thanks/i18n/os.json +++ b/Thanks/i18n/os.json @@ -4,6 +4,6 @@ "Amikeco" ] }, - "thanks-thank": "бузныг", + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|бузныг зæгъ}}}}", "thanks-button-thank": "Бузныг зæгъын" } diff --git a/Thanks/i18n/pa.json b/Thanks/i18n/pa.json index e76a0d5e..57d69e13 100644 --- a/Thanks/i18n/pa.json +++ b/Thanks/i18n/pa.json @@ -3,11 +3,12 @@ "authors": [ "Aalam", "Babanwalia", + "Bgo eiu", "Satdeep gill", "TariButtar" ] }, - "thanks-desc": "ਵਰਤੋਂਕਾਰਾਂ ਦਾ ਸੋਧਾਂ, ਟਿੱਪਣੀਆਂ ਆਦਿ ਲਈ ਧੰਨਵਾਦ ਕਰਨ ਲਈ ਧੰਨਵਾਦੀ ਲਿੰਕ ਜੋੜਦਾ ਹੈ", + "thanks-desc": "ਵਰਤੋਂਕਾਰਾਂ ਦੀਆਂ ਸੋਧਾਂ, ਟਿੱਪਣੀਆਂ ਆਦਿ ਲਈ ਧੰਨਵਾਦ ਕਰਨ ਲਈ ਧੰਨਵਾਦੀ ਲਿੰਕ ਜੋੜਦਾ ਹੈ", "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ਧੰਨਵਾਦ ਕਹੋ}}}}", "thanks-thanked": "{{GENDER:$1|ਧੰਨਵਾਦ ਕੀਤਾ ਗਿਆ}}", "thanks-button-thank": "ਧੰਨਵਾਦ", diff --git a/Thanks/i18n/pap.json b/Thanks/i18n/pap.json new file mode 100644 index 00000000..21003c7b --- /dev/null +++ b/Thanks/i18n/pap.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "ObaTango" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|yama danki}}}}" +} diff --git a/Thanks/i18n/pcm.json b/Thanks/i18n/pcm.json new file mode 100644 index 00000000..4f06c64b --- /dev/null +++ b/Thanks/i18n/pcm.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Samatics" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|thank}}}}" +} diff --git a/Thanks/i18n/pl.json b/Thanks/i18n/pl.json index 25cf7f16..57704184 100644 --- a/Thanks/i18n/pl.json +++ b/Thanks/i18n/pl.json @@ -9,6 +9,7 @@ "Sethakill", "Tar Lócesilion", "The Polish", + "Tsca", "Ty221", "WTM", "Woytecr" @@ -24,7 +25,7 @@ "thanks-button-action-completed": "{{GENDER:$1|{{GENDER:$2|podziękowałeś|podziękowałaś}}}} $1", "thanks-error-undefined": "Operacja podziękowania nie powiodła się (kod błędu: $1). Proszę spróbować ponownie.", "thanks-error-invalid-log-id": "Nie znaleziono wpisu rejestru", - "thanks-error-invalid-log-type": "Rodzaj czynności z rejestru '$1' nie znajduje się na białej liście dozwolonych rodzajów akcji.", + "thanks-error-invalid-log-type": "Rodzaj czynności z rejestru „$1” nie znajduje się na liście dozwolonych rodzajów akcji.", "thanks-error-log-deleted": "Wskazany wpis rejestru został usunięty, więc nie można wystawić za niego podziękowania.", "thanks-error-invalidrevision": "Nieprawidłowy identyfikator wersji.", "thanks-error-revdeleted": "Nie można wysłać podziękowań, ponieważ wersja została usunięta.", @@ -34,27 +35,27 @@ "thanks-error-invalidrecipient-self": "Nie możesz sobie podziękować", "thanks-error-notloggedin": "Niezarejestrowani użytkownicy nie mogą wysyłać podziękowań", "thanks-error-ratelimited": "{{GENDER:$1|Przekroczyłeś|Przekroczyłaś}} limit podziękowań. Poczekaj jakiś czas i spróbuj ponownie.", - "thanks-error-api-params": "Musi być podany parametr 'revid' lub 'logid'", + "thanks-error-api-params": "Musi być podany parametr „revid” lub „logid”", "thanks-thank-tooltip": "{{GENDER:$1|Wyślij}} podziękowanie do {{GENDER:$2|tego użytkownika|tej użytkowniczki}}", "thanks-thank-tooltip-no": "Nie {{GENDER:$1|wysyłaj}} podziękowania", "thanks-thank-tooltip-yes": "{{GENDER:$1|Wyślij}} podziękowanie", "thanks-confirmation2": "{{GENDER:$1|Wysłać}} publiczne podziękowanie?", - "thanks-thanked-notice": "{{GENDER:$3|Podziękowałeś|Podziękowałaś}} {{GENDER:$2|użytkownikowi $1|użytkowniczce $1}}.", + "thanks-thanked-notice": "{{GENDER:$3|Podziękowałeś|Podziękowałaś|Podziękowano}} {{GENDER:$2|użytkownikowi $1|użytkowniczce $1}}.", "thanks": "Wyślij podziękowanie", "thanks-submit": "Wyślij podziękowanie", "echo-pref-subscription-edit-thank": "podziękuje mi za edycję, którą wykonałem", "echo-pref-tooltip-edit-thank": "Powiadom mnie, kiedy ktoś podziękuje mi za edycję, którą wykonałem.", "echo-category-title-edit-thank": "Podziękowania", "notification-thanks-diff-link": "edycję", - "notification-header-rev-thank": "$1 {{GENDER:$2|podziękował|podziękowała|podziękował(a)}} {{GENDER:$4|ci}} za edycję na stronie <strong>$3</strong>.", - "notification-header-creation-thank": "$1 {{GENDER:$2|podziękował|podziękowała|podziękował(a)}} {{GENDER:$4|ci}} za utworzenie <strong>$3</strong>.", + "notification-header-rev-thank": "$1 {{GENDER:$2|podziękował|podziękowała|podziękował(a)}} {{GENDER:$4|Ci}} za edycję na stronie <strong>$3</strong>.", + "notification-header-creation-thank": "$1 {{GENDER:$2|podziękował|podziękowała|dziękuje}} {{GENDER:$4|Ci}} za utworzenie strony <strong>$3</strong>.", "notification-header-log-thank": "$1 {{GENDER:$2|podziękował|podziękowała}} {{GENDER:$4|Ci}} za czynność związaną ze stroną <strong>$3</strong>.", - "notification-compact-header-edit-thank": "$1 {{GENDER:$2|podziękował|podziękowała|podziękował(a)}} {{GENDER:$3|ci}}.", + "notification-compact-header-edit-thank": "$1 {{GENDER:$2|podziękował|podziękowała|dziękuje}} {{GENDER:$3|Ci}}.", "notification-bundle-header-rev-thank": "{{PLURAL:$1|Jedna osoba|$1 osoby|$1 osób|100=Co najmniej 100 osób}} podziękowało {{GENDER:$3|ci}} za twoją edycję strony <strong>$2</strong>.", "notification-bundle-header-log-thank": "{{PLURAL:$1|Jedna osoba|$1 osoby|100=99+ osób}} podziękowało {{GENDER:$3|Ci}} za czynność związaną ze stroną <strong>$2</strong>.", "log-name-thanks": "Rejestr podziękowań", "log-description-thanks": "Poniżej znajduje się lista użytkowników, którym podziękowali inni użytkownicy.", - "logentry-thanks-thank": "$1 {{GENDER:$2|podziękował|podziękowała}} {{GENDER:$4|użytkownikowi|użytkowniczce}} $3", + "logentry-thanks-thank": "$1 {{GENDER:$2|podziękował|podziękowała|podziękował(a)}} {{GENDER:$4|użytkownikowi|użytkowniczce}} $3", "logeventslist-thanks-log": "Rejestr podziękowań", "thanks-error-no-id-specified": "Musisz określić wersję strony lub identyfikator wpisu rejestru, aby wysłać podziękowanie.", "thanks-confirmation-special-log": "Czy chcesz wysłać publiczne podziękowanie za tę akcję?", @@ -65,7 +66,8 @@ "flow-thanks-confirmation-special": "Czy chcesz wysłać publiczne podziękowanie za ten komentarz?", "flow-thanks-thanked-notice": "{{GENDER:$3|Podziękowałeś|Podziękowałaś}} $1 za {{GENDER:$2|jego|jej}} komentarz.", "notification-flow-thanks-post-link": "twój komentarz", - "notification-header-flow-thank": "$1 {{GENDER:$2|podziękował|podziękowała|podziękował(a)}} {{GENDER:$5|ci}} za komentarz w \"<strong>$3</strong>\".", - "notification-compact-header-flow-thank": "$1 {{GENDER:$2|podziękował|podziękowała|podziękował(a)}} {{GENDER:$3|ci}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Jedna osoba|$1 osoby|$1 osób|100=Co najmniej 100 osób}} podziękowało {{GENDER:$3|ci}} za twój komentarz w „<strong>$2</strong>”." + "notification-header-flow-thank": "$1 {{GENDER:$2|podziękował|podziękowała|dziękuje}} {{GENDER:$5|Ci}} za komentarz w „<strong>$3</strong>”.", + "notification-compact-header-flow-thank": "$1 {{GENDER:$2|podziękował|podziękowała|dziękuje}} {{GENDER:$3|Ci}}.", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Jedna osoba|$1 osoby|$1 osób|100=Co najmniej 100 osób}} podziękowało {{GENDER:$3|ci}} za twój komentarz w „<strong>$2</strong>”.", + "ipb-action-thanks": "Wysyłanie podziękowań" } diff --git a/Thanks/i18n/pnb.json b/Thanks/i18n/pnb.json index 9dc2ab0f..1cfdde28 100644 --- a/Thanks/i18n/pnb.json +++ b/Thanks/i18n/pnb.json @@ -2,9 +2,30 @@ "@metadata": { "authors": [ "Abbas dhothar", + "Bgo eiu", "Khalid Mahmood" ] }, + "thanks-desc": "ورتنوالیاں دیاں سودھاں، ٹپݨیااں آد لئی دھنقار کرن لئی دھنوادی لنک جوڑا اے۔", "thanks-thank": "{{GENDER:$1|{{GENDER:$2|شکریہ}}}}", - "thanks-thank-tooltip": "ایس {{GENDER:$1|پیجو}} نوں اک شکریۓ دا سنیہہ {{GENDER:$2|ورتنوالے}}" + "thanks-thanked": "{{GENDER:$2|{{GENDER:$1|شکریہ بھیجیا گیا}}}}", + "thanks-button-thank": "{{GENDER:$2|{{GENDER:$1|شکریہ بھیجو}}}}", + "thanks-button-thanked": "{{GENDER:$2|{{GENDER:$1|شکریہ بھیجیا گیا}}}}", + "thanks-button-action-queued": "$1 لئی {{GENDER:$2|{{GENDER:$1|شکریہ بیجیا جا رہا اے}}}}…", + "thanks-button-action-cancel": "رد کرو", + "thanks-button-action-completed": "$1 نوں تسیں {{GENDER:$1|{{GENDER:$2|شکریہ بیجے گئے اے۔}}}}", + "thanks-error-undefined": "شکریہ بھیج بہیں سکدیا (غلطی دا کوڈ: $1)۔ خبرے فیر کریو۔", + "thanks-thank-tooltip": "ایس {{GENDER:$1|پیجو}} نوں اک شکریۓ دا سنیہا {{GENDER:$2|ورتنوالے}}", + "thanks-confirmation2": "عاوم {{GENDER:$1|شکریئے بھیجو}}؟", + "thanks": "شکریئے بھیجو", + "thanks-submit": "شکریئے بھیجو", + "echo-pref-subscription-edit-thank": "میں نوں اوہ شکریہ بھیجیا", + "echo-category-title-edit-thank": "شکریئے", + "notification-thanks-diff-link": "تہاڈیاں دودھ", + "notification-compact-header-edit-thank": "$1 توں {{GENDER:$3|تہاڈے}} {{GENDER:$2|شکریہ لے گئے}} او۔", + "logentry-thanks-thank": "{{GENDER:$4|$3}} نوں $1 {{GENDER:$2|شکریہ بھیجیا گیا}}۔", + "notification-link-text-view-post": "ٹپݨی ویکھو", + "notification-flow-thanks-post-link": "تہاڈیاں ٹپݨی", + "notification-compact-header-flow-thank": "$1 توں {{GENDER:$3|تہاڈے}} {{GENDER:$2|شکریہ لے گئے}} او۔", + "ipb-action-thanks": "شکریئے بھیجے جا رہے اے" } diff --git a/Thanks/i18n/prg.json b/Thanks/i18n/prg.json new file mode 100644 index 00000000..9c11bcd7 --- /dev/null +++ b/Thanks/i18n/prg.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Nērtiks Jōrgesuns" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|dīnkun}}}}" +} diff --git a/Thanks/i18n/pt-br.json b/Thanks/i18n/pt-br.json index 7c7c1e61..366c4c6c 100644 --- a/Thanks/i18n/pt-br.json +++ b/Thanks/i18n/pt-br.json @@ -6,6 +6,7 @@ "Chicocvenancio", "Dianakc", "Eduardo Addad de Oliveira", + "Eduardoaddad", "Felipe L. Ewald", "HenriqueCrang", "Macofe", @@ -25,7 +26,7 @@ "thanks-button-action-completed": "{{GENDER:$1|{{GENDER:$2|agradeceu|agradeceu}}}}", "thanks-error-undefined": "O agradecimento falhou (erro: $1). Tente de novamente.", "thanks-error-invalid-log-id": "A entrada do registo não foi encontrada", - "thanks-error-invalid-log-type": "O tipo de registo '$1' não consta da lista branca dos tipos de registo permitidos.", + "thanks-error-invalid-log-type": "O tipo de registo '$1' não consta da lista permitida dos tipos de registo permitidos.", "thanks-error-log-deleted": "A entrada de registo solicitada foi eliminada e não se pode dar agradecimentos por ela.", "thanks-error-invalidrevision": "ID de revisão inválido.", "thanks-error-revdeleted": "Não é possível enviar o agradecimento, porque a revisão foi eliminada.", @@ -68,5 +69,6 @@ "notification-flow-thanks-post-link": "seu comentário", "notification-header-flow-thank": "$1 {{GENDER:$2|agradeceu}} {{GENDER:$5|você}} por seu comentário em <strong>$3</strong>.", "notification-compact-header-flow-thank": "$1 {{GENDER:$2|agradeceu}} {{GENDER:$3|você}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Uma pessoa agradeceu|$1 pessoas agradeceram|100=99+ pessoas agradeceram}} {{GENDER:$3|você}} por seu comentário em <strong>$2</strong>." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Uma pessoa agradeceu|$1 pessoas agradeceram|100=99+ pessoas agradeceram}} {{GENDER:$3|você}} por seu comentário em <strong>$2</strong>.", + "ipb-action-thanks": "Enviando agradecimentos" } diff --git a/Thanks/i18n/pt.json b/Thanks/i18n/pt.json index 97dc88fb..467e9a3a 100644 --- a/Thanks/i18n/pt.json +++ b/Thanks/i18n/pt.json @@ -15,7 +15,8 @@ "Oona", "Opraco", "Titoncio", - "Vitorvicentevalente" + "Vitorvicentevalente", + "Waldyrious" ] }, "thanks-desc": "Adiciona hiperligações para agradecer a utilizadores por edições, comentários, etc.", @@ -28,7 +29,7 @@ "thanks-button-action-completed": "Você {{GENDER:$1|{{GENDER:$2|agradeceu a}}}} $1", "thanks-error-undefined": "A ação de agradecimento falhou (código de erro: $1). Por favor, tente novamente.", "thanks-error-invalid-log-id": "A entrada do registo não foi encontrada", - "thanks-error-invalid-log-type": "O tipo de registo '$1' não consta da lista branca dos tipos de registo permitidos.", + "thanks-error-invalid-log-type": "O tipo de registo '$1' não consta da lista dos tipos de registo permitidos.", "thanks-error-log-deleted": "A entrada de registo solicitada foi eliminada e não se pode dar agradecimentos por ela.", "thanks-error-invalidrevision": "O ID de revisão não é válido.", "thanks-error-revdeleted": "Não é possível enviar o agradecimento, porque a revisão foi eliminada.", @@ -71,5 +72,6 @@ "notification-flow-thanks-post-link": "o seu comentário", "notification-header-flow-thank": "$1 {{GENDER:$2|agradeceu-lhe}} {{GENDER:$5|pelo}} seu comentário em \"<strong>$3</strong>\".", "notification-compact-header-flow-thank": "$1 {{GENDER:$2|agradeceu}}{{GENDER:$3|-lhe}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Uma pessoa agradeceu-lhe|$1 pessoas agradeceram-lhe|100=Mais de 99 pessoas agradeceram-lhe}} pelo {{GENDER:$3|seu}} comentário em \"<strong>$2</strong>\"." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Uma pessoa agradeceu-lhe|$1 pessoas agradeceram-lhe|100=Mais de 99 pessoas agradeceram-lhe}} pelo {{GENDER:$3|seu}} comentário em \"<strong>$2</strong>\".", + "ipb-action-thanks": "A enviar agradecimento" } diff --git a/Thanks/i18n/pwn.json b/Thanks/i18n/pwn.json new file mode 100644 index 00000000..f05e0f71 --- /dev/null +++ b/Thanks/i18n/pwn.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Iyumu" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|pumaljimalji}}}}" +} diff --git a/Thanks/i18n/qqq.json b/Thanks/i18n/qqq.json index 399954b6..5333661b 100644 --- a/Thanks/i18n/qqq.json +++ b/Thanks/i18n/qqq.json @@ -22,12 +22,12 @@ "thanks-thanked": "This message immediately replaces the message {{msg-mw|Thanks-thank}} after it's pressed. It means that the thanking operation has been completed. It can be translated as \"''thanked''\" in \"You ''thanked'' the user\" or \"The user has just been ''thanked''\" - whatever is appropriate to your language.\n\nFor languages that need it, the gender of each of the thanked and thanking users is available.\n\nParameters:\n* $1 - The user that is thanking\n* $2 - The user that has been thanked\n\n{{Identical|Thanked}}", "thanks-button-thank": "Text of a button to thank another user. Same as {{msg-mw|Thanks-thank}}, but the context is in a button.\n\nFor languages that need it, the gender of each of the thanked and thanking users is available.\n\nParameters:\n* $1 - The user that is thanking\n* $2 - The user that is being thanked\n\n{{Identical|Thank}}", "thanks-button-thanked": "This message immediately replaces the message {{msg-mw|Thanks-button-thank}} after it's pressed. It means that the thanking operation has been completed. Same as {{msg-mw|Thanks-thanked}}, but the context is in a button.\n\nFor languages that need it, the gender of each of the thanked and thanking users is available.\n\nParameters:\n* $1 - The user that is thanking\n* $2 - The user that has been thanked\n\n{{Identical|Thanked}}", - "thanks-button-action-queued": "Informs the user the thanks will happen ($1)\nParameters:\n$1 - username \n$2 - gender", + "thanks-button-action-queued": "Informs the user the thanks will happen ($1)\n\nParameters:\n* $1 - username \n* $2 - gender", "thanks-button-action-cancel": "Follows {{msg-mw|thanks-button-action-queued}} and is clickable to cancel the action.\n{{Identical|Cancel}}", "thanks-button-action-completed": "You {{GENDER:$1|{{GENDER:$2|thanked}}}} $1", "thanks-error-undefined": "Error message that is displayed when the thank action fails. $1 is the error code returned by the API (an English string).", "thanks-error-invalid-log-id": "Error message that is displayed when the thank action can't find the log entry it's supposed to thank for.", - "thanks-error-invalid-log-type": "Error message that is displayed when thanks is attempted for a log entry of a non-whitelisted type. $1 is the offending log type.", + "thanks-error-invalid-log-type": "Error message that is displayed when thanks is attempted for a log entry of a non-allowed type. $1 is the offending log type.", "thanks-error-log-deleted": "Error message that is displayed when thanks is attempted for a deleted log entry.", "thanks-error-invalidrevision": "Error message that is displayed when the revision ID is not valid", "thanks-error-revdeleted": "Error message that is displayed when the revision has been deleted (RevDel)", @@ -70,5 +70,6 @@ "notification-flow-thanks-post-link": "The text of a link to the comment made by the user.\n\nUsed for <code>$2</code> in {{msg-mw|notification-flow-thanks}}. Should have capitalization appropriate for the middle of a sentence.\n\nThis is an object in a sentence so it should be in object case in languages where there is a special object form for words.", "notification-header-flow-thank": "Header text for a notification when a user is thanked for their comment on a Flow board.\n\nParameters:\n* $1 – The username of the user sending the thanks (not suitable for GENDER).\n* $2 – Either unused by the translation, or the thanking user's name for use in GENDER.\n* $3 – The title of the topic the comment belongs to.\n* $4 – The title of the page where the comment is located.\n* $5 – Either unused by the translation, or the username of the user being thanked, for use in GENDER.\n\n{{related|Notification-header-flow}}", "notification-compact-header-flow-thank": "Compact header text for a notification when a user is thanked for their comment on a Flow board.\n\nParameters:\n* $1 – The username of the user sending the thanks (not suitable for GENDER).\n* $2 – Either unused by the translation, or the thanking user's name for use in GENDER.\n* $3 – Either unused by the translation, or the username of the user being thanked, for use in GENDER.\n\n{{related|Notification-header-flow}}", - "notification-bundle-header-flow-thank": "Bundle header text for a notification when a user is thanked for their comment on a Flow board.\n\nParameters:\n* $1 – The number of users who sent thanks for the same post. When used with PLURAL, the value 100 represents more than 99.\n* $2 – The title of the topic the comment belongs to.\n* $3 – Either unused by the translation, or the username of the user being thanked, for use in GENDER.\n\n{{related|Notification-header-flow}}" + "notification-bundle-header-flow-thank": "Bundle header text for a notification when a user is thanked for their comment on a Flow board.\n\nParameters:\n* $1 – The number of users who sent thanks for the same post. When used with PLURAL, the value 100 represents more than 99.\n* $2 – The title of the topic the comment belongs to.\n* $3 – Either unused by the translation, or the username of the user being thanked, for use in GENDER.\n\n{{related|Notification-header-flow}}", + "ipb-action-thanks": "The label for a selecting the option on [[Special:Block]] to block a user from sending thanks. Should be similar to these:\n* {{msg-mw|Ipb-action-create}}\n* {{msg-mw|Ipb-action-move}}\n* {{msg-mw|Ipb-action-upload}}" } diff --git a/Thanks/i18n/rki.json b/Thanks/i18n/rki.json new file mode 100644 index 00000000..709c9927 --- /dev/null +++ b/Thanks/i18n/rki.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Tejoebāsa" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ကျေးဇူးတင်ပါရေ}}}}" +} diff --git a/Thanks/i18n/rmc.json b/Thanks/i18n/rmc.json new file mode 100644 index 00000000..d82a5f93 --- /dev/null +++ b/Thanks/i18n/rmc.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Adehertogh" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|paľikerav}}}}" +} diff --git a/Thanks/i18n/rn.json b/Thanks/i18n/rn.json new file mode 100644 index 00000000..190afd11 --- /dev/null +++ b/Thanks/i18n/rn.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Gilbert Ndihokubwayo" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|shima}}}}" +} diff --git a/Thanks/i18n/ro.json b/Thanks/i18n/ro.json index 96ade141..97229542 100644 --- a/Thanks/i18n/ro.json +++ b/Thanks/i18n/ro.json @@ -2,7 +2,9 @@ "@metadata": { "authors": [ "Andrei Stroe", - "Minisarm" + "Carcassonne93", + "Minisarm", + "NGC 54" ] }, "thanks-desc": "Adaugă legături pentru a putea mulțumi utilizatorilor pentru modificări, comentarii etc.", @@ -10,8 +12,15 @@ "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|ați mulțumit}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Mulțumesc}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Ați mulțumit}}}}", + "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Se mulțumește}}}} lui $1…", + "thanks-button-action-cancel": "Anulare", + "thanks-button-action-completed": "{{GENDER:$1|{{GENDER:$2|I-ați mulțumit}}}} lui $1", "thanks-error-undefined": "Încercarea de a mulțumi a eșuat (cod de eroare: $1). Încercați din nou.", "thanks-error-invalidrevision": "Codul versiunii nu este valid.", + "thanks-error-revdeleted": "Nu se pot trimite mulțumiri deoarece revizia a fost ștearsă.", + "thanks-error-invalidrecipient-bot": "Roboților nu li se poate mulțumi", + "thanks-error-invalidrecipient-self": "Nu vă puteți mulțumi vouă.", + "thanks-error-notloggedin": "Utilizatorii anonimi nu pot trimite mulțumiri", "thanks-error-ratelimited": "{{GENDER:$1|V}}-ați depășit limita de evaluare. Așteptați un timp și reîncercați.", "thanks-thank-tooltip": "{{GENDER:$1|Trimite}} o notificare de mulțumire {{GENDER:$2|acestui utilizator|acestei utilizatoare}}", "thanks-thank-tooltip-no": "{{GENDER:$1|Revocă}} notificarea de mulțumire", @@ -24,13 +33,26 @@ "echo-pref-tooltip-edit-thank": "Notifică-mă când cineva îmi mulțumește pentru o modificare pe care am efectuat-o.", "echo-category-title-edit-thank": "Mulțumiri", "notification-thanks-diff-link": "modificarea dumneavoastră", + "notification-header-rev-thank": "$1 {{GENDER:$4|v-a}} {{GENDER:$2|mulțumit}} pentru modificarea dvs. de la pagina <strong>$3</strong>.", + "notification-header-creation-thank": "$1 {{GENDER:$4|v-}}{{GENDER:$2|a mulțumit}} pentru că ați creat pagina <strong>$3</strong>.", + "notification-header-log-thank": "$1 {{GENDER:$4|v-}}a {{GENDER:$2|mulțumit}} pentru acțiunea dvs. privitoare la <strong>$3</strong>.", + "notification-compact-header-edit-thank": "$1 {{GENDER:$2|v-a}} {{GENDER:$3|mulțumit}}.", + "notification-bundle-header-rev-thank": "{{PLURAL:$1|O persoană v-a|$1 persoane v-au|100=99+ de persoane v-au}} {{GENDER:$3|mulțumit}} pentru pentru modificarea dvs. de la pagina <strong>$2</strong>.", + "notification-bundle-header-log-thank": "{{PLURAL:$1|O persoană v-a|$1 persoane v-au|100=99+ de persoane v-au}} {{GENDER:$3|mulțumit}} pentru acțiunea dvs. privitoare la <strong>$2</strong>.", "log-name-thanks": "Jurnal mulțumiri", "log-description-thanks": "Mai jos se află o listă a utilizatorilor cărora li s-a mulțumit de către alți utilizatori.", "logentry-thanks-thank": "$1 {{GENDER:$2|i-a mulțumit}} {{GENDER:$4|utilizatorului $3|utilizatoarei $3}}", + "logeventslist-thanks-log": "Jurnal mulțumiri", "thanks-error-no-id-specified": "Trebuie să precizați un ID de versiune sau de înregistrare de jurnal pentru a trimite mulțumiri.", + "thanks-confirmation-special-log": "Doriți să trimiteți în mod public mulțumiri pentru această acțiune de jurnal?", + "thanks-confirmation-special-rev": "Doriți să trimiteți în mod public mulțumiri pentru această editare?", "notification-link-text-view-post": "Vezi comentariul", + "notification-link-text-view-logentry": "Vezi intrarea în jurnal", "thanks-error-invalidpostid": "ID-ul mesajului nu este valid.", "flow-thanks-confirmation-special": "Doriți să trimiteți în mod public mulțumiri pentru acest comentariu?", - "flow-thanks-thanked-notice": "$1 a primit mulțumirea dumneavoastră pentru comentariul {{GENDER:$2|lui|ei|său}}.", - "notification-flow-thanks-post-link": "comentariul dumneavoastră" + "flow-thanks-thanked-notice": "{{GENDER:$3|Dvs.}} i-ați mulțumit lui $1 pentru comentariul {{GENDER:$2|lui|ei|său}}.", + "notification-flow-thanks-post-link": "comentariul dumneavoastră", + "notification-header-flow-thank": "$1 {{GENDER:$5|v-a}} {{GENDER:$2|mulțumit}} pentru comentariul dvs. din cadrul secțiunii „<strong>$3</strong>”.", + "notification-compact-header-flow-thank": "$1 {{GENDER:$2|v-a}} {{GENDER:$3|mulțumit}}.", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|O persoană v-a|$1 persoane v-au|100=99+ de persoane v-au}} {{GENDER:$3|mulțumit}} pentru pentru comentariul dvs. din cadrul secțiunii „<strong>$2</strong>”." } diff --git a/Thanks/i18n/roa-tara.json b/Thanks/i18n/roa-tara.json index 869b4737..4af3ca0d 100644 --- a/Thanks/i18n/roa-tara.json +++ b/Thanks/i18n/roa-tara.json @@ -57,5 +57,6 @@ "notification-flow-thanks-post-link": "'u commende tune", "notification-header-flow-thank": "$1 {{GENDER:$5|te}} {{GENDER:$2|ave rengraziate}} pu commende tune sus a \"<strong>$3</strong>\".", "notification-compact-header-flow-thank": "$1 {{GENDER:$3|te}} {{GENDER:$2|ave ringraziate}}", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|'Nu crestiane t'ave|$1 crestiane te onne|100=Cchiù de 99 crestiane te onne}} {{GENDER:$3|ringraziate}} pu commende tune sus a \"<strong>$2</strong>\"." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|'Nu crestiane t'ave|$1 crestiane te onne|100=Cchiù de 99 crestiane te onne}} {{GENDER:$3|ringraziate}} pu commende tune sus a \"<strong>$2</strong>\".", + "ipb-action-thanks": "Stoche e manne le rengraziaminde" } diff --git a/Thanks/i18n/rsk.json b/Thanks/i18n/rsk.json new file mode 100644 index 00000000..41c09a17 --- /dev/null +++ b/Thanks/i18n/rsk.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Keresturec" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|подзековац}}}}" +} diff --git a/Thanks/i18n/ru.json b/Thanks/i18n/ru.json index b4725007..777a8714 100644 --- a/Thanks/i18n/ru.json +++ b/Thanks/i18n/ru.json @@ -12,6 +12,7 @@ "Movses", "Okras", "Ole Yves", + "Pacha Tchernof", "Putnik", "Romanko Mikhail", "Sagan", @@ -25,7 +26,7 @@ }, "thanks-desc": "Добавляет ссылки для благодарности участников за правки, комментарии и т.д.", "thanks-thank": "{{GENDER:$1|{{GENDER:$2|поблагодарить}}}}", - "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|отблагодарён|отблагодарена}}}}", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|поблагодарён|поблагодарена}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Поблагодарить}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Поблагодарён|Поблагодарена}}}}", "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Отправка благодарности}}}} $1…", @@ -33,7 +34,7 @@ "thanks-button-action-completed": "Вы {{GENDER:$1|{{GENDER:$2|поблагодарили}}}} $1", "thanks-error-undefined": "Попытка поблагодарить не удалась (код ошибки: $1). Пожалуйста, пробуйте ещё раз.", "thanks-error-invalid-log-id": "Запись журнала не найдена", - "thanks-error-invalid-log-type": "Тип журнала «$1» не находится в белом списке разрешённых.", + "thanks-error-invalid-log-type": "Тип журнала '$1' не находится в списке разрешённых.", "thanks-error-log-deleted": "Запрошенная запись журнала была удалена, невозможно дать за неё благодарность.", "thanks-error-invalidrevision": "Некорректный номер версии.", "thanks-error-revdeleted": "Не удалось отправить благодарность, поскольку эта версия была удалена.", @@ -47,7 +48,7 @@ "thanks-thank-tooltip": "{{GENDER:$1|Отправить}} {{GENDER:$2|этому участнику|этой участнице}} благодарственное сообщение", "thanks-thank-tooltip-no": "{{GENDER:$1|Отменить}} уведомление с благодарностью", "thanks-thank-tooltip-yes": "{{GENDER:$1|Отправить}} уведомление с благодарностью", - "thanks-confirmation2": "{{GENDER:$1|Отправить}} публичную благодарность?", + "thanks-confirmation2": "{{GENDER:$1|Поблагодарить}} публично?", "thanks-thanked-notice": "{{GENDER:$3|Вы}} поблагодарили {{GENDER:$2|$1}}.", "thanks": "Отправить благодарность", "thanks-submit": "Отправить благодарность", @@ -76,5 +77,6 @@ "notification-flow-thanks-post-link": "ваш комментарий", "notification-header-flow-thank": "$1 поблагодарил{{GENDER:$2||а}} {{GENDER:$5|вас}} за комментарий в теме «<strong>$3</strong>».", "notification-compact-header-flow-thank": "$1 поблагодарил{{GENDER:$2||а}} {{GENDER:$3|вас}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Один участник|$1 участника|100=99+ участников}} поблагодарили {{GENDER:$3|вас}} за ваш комментарий в \"<strong>$2</strong>\"." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Один участник|$1 участника|100=99+ участников}} поблагодарили {{GENDER:$3|вас}} за ваш комментарий в \"<strong>$2</strong>\".", + "ipb-action-thanks": "Отправка благодарности" } diff --git a/Thanks/i18n/rue.json b/Thanks/i18n/rue.json new file mode 100644 index 00000000..5f5a3e34 --- /dev/null +++ b/Thanks/i18n/rue.json @@ -0,0 +1,18 @@ +{ + "@metadata": { + "authors": [ + "Tkalyn" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|подяковати}}}}", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|подяковали сьте}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Подяковати}}}}", + "thanks-button-thanked": "{{GENDER:$2|{{GENDER:$1|Подяковали сьте}}}}", + "notification-header-rev-thank": "$1 {{GENDER:$4|Вам}} {{GENDER:$2|подяковав|подяковала}} за едітованя сторінкы <strong>$3</strong>.", + "notification-header-creation-thank": "$1 {{GENDER:$4|Вам}} {{GENDER:$2|подяковав|подяковала}} за створеня сторінкы <strong>$3</strong>.", + "notification-header-log-thank": "$1 {{GENDER:$4|Вам}} {{GENDER:$2|подяковав|подяковала}} за Вашу дїю споєну зо сторінков <strong>$3</strong>.", + "notification-compact-header-edit-thank": "$1 {{GENDER:$3|Вам}} {{GENDER:$2|подяковав|подяковала}}.", + "logentry-thanks-thank": "$1 {{GENDER:$2|подяковав|подяковала}} {{GENDER:$4|хоснователёви|хосновательцї}} $3", + "notification-header-flow-thank": "$1 {{GENDER:$5|Вам}} {{GENDER:$2|подяковав|подяковала}} за Ваш коментарь на <strong>$3</strong>.", + "notification-compact-header-flow-thank": "$1 {{GENDER:$3|Вам}} {{GENDER:$2|подяковав|подяковала}}." +} diff --git a/Thanks/i18n/ryu.json b/Thanks/i18n/ryu.json new file mode 100644 index 00000000..44564ff9 --- /dev/null +++ b/Thanks/i18n/ryu.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "ChoiChong" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|にふぇーでーびる}}}}" +} diff --git a/Thanks/i18n/sc.json b/Thanks/i18n/sc.json index c6889637..155606be 100644 --- a/Thanks/i18n/sc.json +++ b/Thanks/i18n/sc.json @@ -1,9 +1,11 @@ { "@metadata": { "authors": [ + "L2212", "Via maxima" ] }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|torra gràtzias}}}}", "thanks-error-no-id-specified": "Depis ponni su revision ID po torrai gràtzias.", "flow-thanks-confirmation-special": "Bolis torrai gràtzias po custu cumentu?" } diff --git a/Thanks/i18n/scn.json b/Thanks/i18n/scn.json index a4db8e57..6059eddb 100644 --- a/Thanks/i18n/scn.json +++ b/Thanks/i18n/scn.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "Ajeje Brazorf", "Gmelfi", "Macofe", "Pippinu", @@ -12,24 +13,28 @@ "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|fu ringrazziatu|fu ringrazziata}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Ringrazzia}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Fu ringrazziatu|Fu ringrazziata}}}}", - "thanks-error-undefined": "Lu ringrazziamentu nun arriniscìu. Pi favuri prova n'àutra vota.", + "thanks-button-action-cancel": "Annulla", + "thanks-button-action-completed": "{{GENDER:$1|{{GENDER:$2|Ringrazziasti}}}} $1", + "thanks-error-undefined": "Lu ringrazziamentu nun arriniscìu (còdici erruri: $1). Pi favuri prova n'àutra vota.", "thanks-error-invalidrevision": "L'ID dâ virsioni nun è vàlidu.", + "thanks-error-invalidrecipient-bot": "Li bot nun ponnu èssiri ringrazziati.", "thanks-error-ratelimited": "{{GENDER:$1|Passasti}} lu tò lìmiti màssimu di ringrazziamenti. Pi favuri aspetta na picca e appoi prova n'àutra vota.", "thanks-thank-tooltip": "{{GENDER:$1|Manna}} na nutìfica di ringrazziamentu a {{GENDER:$2|st'utenti|st'utenti}}", - "thanks-confirmation2": "{{GENDER:$1|Mannari}} pubblicamenti arringrazziamenti pi stu canciamentu?", - "thanks-thanked-notice": "$1 arricivìu lu tò ringrazziamentu pû {{GENDER:$2|sò}} canciamentu.", + "thanks-confirmation2": "{{GENDER:$1|Mannari}} pubblicamenti arringrazziamenti?", + "thanks-thanked-notice": "{{GENDER:$3|Ringrazziasti}} {{GENDER:$2|$1}}.", "thanks": "Manna ringrazziamenti", - "echo-pref-subscription-edit-thank": "Mi ringrazzia pi nu mè canciamentu", - "echo-pref-tooltip-edit-thank": "Avvìsami quannu quarchidunu mi ringrazzia pi nu canciamentu ca fici.", + "echo-pref-subscription-edit-thank": "Mi ringrazzia p'un mè canciamentu", + "echo-pref-tooltip-edit-thank": "Avvìsami quannu quarchidunu mi ringrazzia p'un canciamentu ca fici.", "echo-category-title-edit-thank": "Ringrazziamenti", "notification-thanks-diff-link": "lu tò canciamentu", "log-name-thanks": "Riggistru dî ringrazziamenti", "log-description-thanks": "Ccassutta c'è na lista di l'utenti chi foru ringrazziati di àutri utenti.", "logentry-thanks-thank": "$1 {{GENDER:$2|ringrazziau}} a {{GENDER:$4|$3}}", - "thanks-error-no-id-specified": "Hai a spicificari n'ID di virsioni pi ringrazziari.", + "logeventslist-thanks-log": "Riggistru dî ringrazziamenti", + "thanks-error-no-id-specified": "Hai a spicificari n'ID di virsioni o riggistru pi ringrazziari.", "notification-link-text-view-post": "Talìa lu cummentu", "thanks-error-invalidpostid": "L'ID dû missaggiu nun è vàlidu.", "flow-thanks-confirmation-special": "Voi ringrazziari pubblicamenti pi stu cummentu?", - "flow-thanks-thanked-notice": "$1 arricivìu lu tò ringrazziamentu pû {{GENDER:$2|sò}} cummentu.", + "flow-thanks-thanked-notice": "{{GENDER:$3|Ringrazziasti}} $1 pû {{GENDER:$2|sò}} cummentu.", "notification-flow-thanks-post-link": "lu tò cummentu" } diff --git a/Thanks/i18n/sd.json b/Thanks/i18n/sd.json index 00ac26b0..a92fdd6c 100644 --- a/Thanks/i18n/sd.json +++ b/Thanks/i18n/sd.json @@ -6,7 +6,7 @@ "Sindhu" ] }, - "thanks-desc": "واپرائيندڙن کي سنوارن، تبصرن وغيرہ لاءِ مھرباني چوڻ لاءِ ڳنڍڻا وجھي ٿو", + "thanks-desc": "واپرائيندڙن کي سنوارن، راين، وغيرہ لاءِ مھرباني چوڻ لاءِ ڳنڍڻا ڏي ٿو", "thanks-thank": "{{GENDER:$1|{{GENDER:$2|مھرباني چئو}}}}", "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|مھرباني چيل}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|مھرباني چئو}}}}", @@ -16,13 +16,15 @@ "thanks-button-action-completed": "توھان $1 کي {{GENDER:$1|{{GENDER:$2|مھرباني چئي}}}}", "thanks-error-undefined": "مھرباني چوڻ جو عمل ناڪام (چڪ ڪوڊ: $1). مھرباني ڪري ٻيھر ڪوشش ڪريو.", "thanks-error-invalid-log-id": "لاگ داخلا نہ لڌي", - "thanks-error-log-deleted": "گھريل لاگ داخلا ڊاھي وئي آھي ۽ ان لاءِ مھرباني نٿي ڏئي سگھجي.", + "thanks-error-invalid-log-type": "لاگ جو قسم '$1' اجازت ڏنل لاگن جي قسمن جي فھرست ۾ نہ آھي.", + "thanks-error-log-deleted": "گهريل لاگ داخلا ڊاھي وئي آھي ۽ ان لاءِ مھرباني نٿي ڏئي سگهجي.", "thanks-error-invalidrevision": "ورجاءُ آئِڊي قابلِڪار ناھي.", "thanks-error-revdeleted": "مھرباني چوڻ ۾ ناڪامي ڇوتہ ورجاءُ ڊاھيو ويو آھي.", + "thanks-error-notitle": "صفحي جو عنوان رِٽريوِ نٿي ڪري سگهيو", "thanks-error-invalidrecipient": "ڪوبہ قابلِڪار وصول ڪندڙ نہ لڌو", - "thanks-error-invalidrecipient-bot": "بوٽن کي مھرباني نٿي چئي سگھجي", - "thanks-error-invalidrecipient-self": "توھان پنھنجو پاڻ کي مھرباني نٿا چئي سگھو", - "thanks-error-notloggedin": "گمنام واپرائيندڙ مھرباني نٿا موڪلي سگھن", + "thanks-error-invalidrecipient-bot": "بوٽن کي مھرباني نٿي چئي سگهجي", + "thanks-error-invalidrecipient-self": "توھان پنھنجو پاڻ کي مھرباني نٿا چئي سگهو", + "thanks-error-notloggedin": "گمنام واپرائيندڙ مھرباني نٿا موڪلي سگهن", "thanks-thank-tooltip": "هن {{GENDER:$2|واپرائيندڙ}} ڏانهن '''توهان جي مهرباني''' جو اطلاع {{GENDER:$1|موڪليو}}", "thanks-thank-tooltip-no": "توھان جي مھرباني اطلاع {{GENDER:$1|رد}} ڪريو", "thanks-thank-tooltip-yes": "توھان جي مھرباني اطلاع {{GENDER:$1|موڪليو}}", @@ -46,12 +48,14 @@ "logeventslist-thanks-log": "مھرباني لاگ", "thanks-confirmation-special-log": "ڇا توھان ھن لاگ عمل لاءِ عوامي طور مھربانيون موڪلڻ چاھيو ٿا؟", "thanks-confirmation-special-rev": "چا توھان ھن سنوار لاءِ عوامي طور مھربانيون موڪلڻ چاھيو ٿا؟", - "notification-link-text-view-post": "تبصرو ڏسو", + "notification-link-text-view-post": "راءِ ڏسو", "notification-link-text-view-logentry": "لاگ داخلا ڏسو", + "thanks-error-invalidpostid": "پوسٽ آئڊي ڪارگر نہ آھي.", "flow-thanks-confirmation-special": "ڇا توھان ھن تبصري لاءِ عوامي طور مھربانيون موڪلڻ چاھيو ٿا؟", - "flow-thanks-thanked-notice": "{{GENDER:$3|توھان}} $1 کي {{GENDER:$2|ھن|ھن|انھن}} کي تبصري لاءِ مھرباني چئي.", - "notification-flow-thanks-post-link": "توھان جو تبصرو", - "notification-header-flow-thank": "$1 {{GENDER:$5|توھان}} کي \"<strong>$3</strong>\" ۾ تبصري لاءِ {{GENDER:$2|مھرباني چئي}}.", + "flow-thanks-thanked-notice": "{{GENDER:$3|توھان}} $1 کي {{GENDER:$2|ھن|ھن|انھن}} کي راءِ لاءِ مھرباني چئي.", + "notification-flow-thanks-post-link": "توھان جي راءِ", + "notification-header-flow-thank": "$1 {{GENDER:$5|توھان}} کي \"<strong>$3</strong>\" ۾ راءِ لاءِ {{GENDER:$2|مھرباني چئي}}.", "notification-compact-header-flow-thank": "$1 {{GENDER:$3|توھان}} کي {{GENDER:$2|مھرباني چئي}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|ھڪ شخص|$1 ماڻھن|100=99+ ماڻھن}} {{GENDER:$3|توھان}} کي \"<strong>$2</strong>\" ۾ تبصري لاءِ مھرباني چئي." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|ھڪ شخص|$1 ماڻھن|100=99+ ماڻھن}} {{GENDER:$3|توھان}} کي \"<strong>$2</strong>\" ۾ راءِ لاءِ مھرباني چئي.", + "ipb-action-thanks": "مھربانيون موڪلڻ" } diff --git a/Thanks/i18n/sdc.json b/Thanks/i18n/sdc.json index 226da08f..5b754ca6 100644 --- a/Thanks/i18n/sdc.json +++ b/Thanks/i18n/sdc.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "F Samaritani", "Jun Misugi" ] }, @@ -20,5 +21,6 @@ "thanks-submit": "Mandà li gratzi", "echo-pref-subscription-edit-thank": "Ringratziamenti pai la mudìfigga mea", "echo-category-title-edit-thank": "Ringratziamentu", - "notification-thanks-diff-link": "la mudìfigga tua" + "notification-thanks-diff-link": "la mudìfigga tua", + "ipb-action-thanks": "Turrà li gratzi" } diff --git a/Thanks/i18n/shi.json b/Thanks/i18n/shi.json index dd20d197..84005586 100644 --- a/Thanks/i18n/shi.json +++ b/Thanks/i18n/shi.json @@ -1,9 +1,10 @@ { "@metadata": { "authors": [ - "Amara-Amaziɣ" + "Amara-Amaziɣ", + "Ayour2002" ] }, - "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ⵙⵏⵉⵎⵎⵔ}}}}", - "thanks-thank-tooltip": "{{GENDER:$1|ⴰⵣⵏ ⵏⵏ}} ⵢⴰⵜ ⵜⵏⵖⵎⵉⵙⵜ ⵏ ⵓⵙⵏⵉⵎⵎⵔ ⵉ {{GENDER:$2|ⵓⵙⵎⵔⴰⵙ|ⵜⵙⵎⵔⴰⵙⵜ}} ⴰⴷ" + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|snimmr}}}}", + "thanks-thank-tooltip": "{{GENDER:$1|Ṣufḍ}} yat tnɣmist n usnimmr i {{GENDER:$2|usmras|tsmrast}} ad" } diff --git a/Thanks/i18n/sje.json b/Thanks/i18n/sje.json new file mode 100644 index 00000000..50fdc72b --- /dev/null +++ b/Thanks/i18n/sje.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Olve Utne" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|gijjto}}}}", + "notification-link-text-view-post": "Vuosedä målgedimev" +} diff --git a/Thanks/i18n/sl.json b/Thanks/i18n/sl.json index 7c7d3c7d..898c89ff 100644 --- a/Thanks/i18n/sl.json +++ b/Thanks/i18n/sl.json @@ -8,14 +8,16 @@ "Yerpo" ] }, - "thanks-desc": "Doda povezave za zahvalo uporabnikom za urejanja, pripombe itn.", - "thanks-thank": "{{GENDER:$1|{{GENDER:$2|zahvala}}}}", + "thanks-desc": "Doda povezave za zahvalo uporabnikom za urejanja, pripombe idr.", + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|zahvali se}}}}", "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|zahvala je objavljena}}}}", "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Zahvala}}}}", "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Zahvala je objavljena}}}}", + "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Zahvaljujem se}}}} $1 …", + "thanks-button-action-cancel": "Prekliči", "thanks-error-undefined": "Dejanje zahvale je spodletelo (koda napake: $1). Prosimo, poskusite znova.", "thanks-error-invalid-log-id": "Dnevniški vpis ni bil najden", - "thanks-error-invalid-log-type": "Vrste dnevnika '$1' ni na belem seznamu predvidenih vrst dnevnikov.", + "thanks-error-invalid-log-type": "Vrste dnevnika »$1« ni na seznamu dovoljenih vrst dnevnikov.", "thanks-error-log-deleted": "Zahtevan dnevniški vpis je bil izbrisan, zato zanj ni mogoče dati zahvale.", "thanks-error-invalidrevision": "ID-številka redakcije ni veljavna.", "thanks-error-revdeleted": "Zahvale ni mogoče poslati, saj je bila redakcija izbrisana.", @@ -29,34 +31,34 @@ "thanks-thank-tooltip": "{{GENDER:$1|Pošljite}} {{GENDER:$2|temu uporabniku|tej uporabnici}} zahvalo", "thanks-thank-tooltip-no": "{{GENDER:$1|Prekliči}} obvestilo zahvale", "thanks-thank-tooltip-yes": "{{GENDER:$1|Pošlji}} obvestilo zahvale", - "thanks-confirmation2": "Se {{GENDER:$1|želiš}} javno zahvaliti?", + "thanks-confirmation2": "Se {{GENDER:$1|želite}} javno zahvaliti?", "thanks-thanked-notice": "{{GENDER:$3|Zahvalili}} ste se {{GENDER:$2|$1}}.", - "thanks": "Pošljite zahvalo", + "thanks": "Pošlji zahvalo", "thanks-submit": "Zahvali se", "echo-pref-subscription-edit-thank": "Se mi zahvali za urejanje", "echo-pref-tooltip-edit-thank": "Obvesti me, kadar se mi kdo zahvali za katero od mojih urejanj.", "echo-category-title-edit-thank": "Zahvala", "notification-thanks-diff-link": "vaše urejanje", - "notification-header-rev-thank": "$1 {{GENDER:$2|se}} {{GENDER:$4|ti}} zahvaljuje za urejanje <strong>$3</strong>.", - "notification-header-creation-thank": "$1 se {{GENDER:$4|ti}} {{GENDER:$2|zahvaljuje}} za ustvaritev <strong>$3</strong>.", - "notification-header-log-thank": "$1 se {{GENDER:$4|ti}} {{GENDER:$2|zahvaljuje}} za tvoj poseg glede <strong>$3</strong>.", - "notification-compact-header-edit-thank": "$1 se {{GENDER:$3|ti}} {{GENDER:$2|zahvaljuje}}.", - "notification-bundle-header-rev-thank": "{{PLURAL:$1|Ena oseba se {{GENDER:$3|ti}} zahvaljuje|$1 osebi se ti zahvaljujeta|$1 osebe se ti zahvaljujejo|100=99+ oseb se ti zahvaljuje}} za urejanje <strong>$2</strong>.", - "notification-bundle-header-log-thank": "{{PLURAL:$1|Ena oseba se {{GENDER:$3|ti}} zahvaljuje|$1 osebi se ti zahvaljujeta|$1 osebe se ti zahvaljujejo|100=99+ oseb se ti zahvaljuje}} za tvoj poseg glede <strong>$2</strong>.", + "notification-header-rev-thank": "$1 se {{GENDER:$4|vam}} je {{GENDER:$2|zahvalil|zahvalila|zahvalil/a}} za urejanje <strong>$3</strong>.", + "notification-header-creation-thank": "$1 se {{GENDER:$4|vam}} je {{GENDER:$2|zahvalil|zahvalila|zahvalil/a}} za ustvaritev strani <strong>$3</strong>.", + "notification-header-log-thank": "$1 se {{GENDER:$4|vam}} je {{GENDER:$2|zahvalil|zahvalila|zahvalil/a}} za vaš poseg v zvezi s stranjo <strong>$3</strong>.", + "notification-compact-header-edit-thank": "$1 se {{GENDER:$3|vam}} {{GENDER:$2|zahvaljuje}}.", + "notification-bundle-header-rev-thank": "Za {{GENDER:$3|vaše}} urejanje »<strong>$2</strong>« {{PLURAL:$1|se vam zahvaljuje ena oseba|se vam zahvaljujeta dve osebi|se vam zahvaljuje $1 oseb|100=se vam zahvaljuje 99+ oseb}}.", + "notification-bundle-header-log-thank": "Za {{GENDER:$3|vaše}} dejanje v zvezi z »<strong>$2</strong>« {{PLURAL:$1|se vam zahvaljuje ena oseba|se vam zahvaljujeta dve osebi|se vam zahvaljuje $1 oseb|100=se vam zahvaljuje 99+ oseb}}.", "log-name-thanks": "Dnevnik zahval", "log-description-thanks": "Prikazan je dnevnik uporabnikov, ki se jim je kdo zahvalil.", "logentry-thanks-thank": "$1 se je {{GENDER:$2|zahvalil|zahvalila}} {{GENDER:$4|uporabniku|uporabnici}} {{GENDER:$4|$3}}", "logeventslist-thanks-log": "Dnevnik zahval", "thanks-error-no-id-specified": "Določiti morate ID redakcije ali dnevnika, da se lahko zahvalite.", - "thanks-confirmation-special-log": "Ali želiš javno poslati zahvale za ta dnevniški poseg?", - "thanks-confirmation-special-rev": "Ali želiš javno poslati zahvale za to urejanje?", + "thanks-confirmation-special-log": "Ali želite javno poslati zahvalo za ta dnevniški poseg?", + "thanks-confirmation-special-rev": "Ali želite javno poslati zahvale za to urejanje?", "notification-link-text-view-post": "Ogled pripombe", "notification-link-text-view-logentry": "Prikaži vpis v dnevnik", "thanks-error-invalidpostid": "ID objave ni veljaven.", "flow-thanks-confirmation-special": "Se želite javno zahvaliti za to pripombo?", "flow-thanks-thanked-notice": "{{GENDER:$3|Zahvalili}} ste se $1 za {{GENDER:$2|njegovo|njeno}} pripombo.", "notification-flow-thanks-post-link": "tvojo pripombo", - "notification-header-flow-thank": "$1 se {{GENDER:$5|ti}} {{GENDER:$2|zahvaljuje}} za tvoj komentar v \"<strong>$3</strong>\".", - "notification-compact-header-flow-thank": "$1 se {{GENDER:$3|ti}} {{GENDER:$2|zahvaljuje}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Ena oseba se {{GENDER:$3|ti}} zahvaljuje|$1 osebi se ti zahvaljujeta|$1 osebe se ti zahvaljujejo|100=99+ oseb se ti zahvaljuje}} za tvoj komentar v »<strong>$2</strong>«." + "notification-header-flow-thank": "$1 se {{GENDER:$5|vam}} je {{GENDER:$2|zahvalil|zahvalila|zahvalil/a}} za vaš komentar na strani »<strong>$3</strong>«.", + "notification-compact-header-flow-thank": "$1 se {{GENDER:$3|vam}} {{GENDER:$2|zahvaljuje}}.", + "notification-bundle-header-flow-thank": "Za {{GENDER:$3|vaš}} komentar v »<strong>$2</strong>« {{PLURAL:$1|se vam zahvaljuje ena oseba|se vam zahvaljujeta dve osebi|se vam zahvaljuje $1 oseb|100=se vam zahvaljuje 99+ oseb}}." } diff --git a/Thanks/i18n/sli.json b/Thanks/i18n/sli.json new file mode 100644 index 00000000..4266001c --- /dev/null +++ b/Thanks/i18n/sli.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Äberlausitzer" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|danken}}}}", + "thanks-thank-tooltip": "{{GENDER:$2|Diesem Benutzer|Dieser Benutzerin}} a Dankeschien {{GENDER:$1|senda}}" +} diff --git a/Thanks/i18n/smn.json b/Thanks/i18n/smn.json index 9a704c0d..19953f77 100644 --- a/Thanks/i18n/smn.json +++ b/Thanks/i18n/smn.json @@ -1,9 +1,15 @@ { "@metadata": { "authors": [ - "Trondtr" + "Trondtr", + "Yupik" ] }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|kijte}}}}", - "thanks-thank-tooltip": "{{GENDER:$1|Vuolgât}} kijttosijd taan {{GENDER:$2|kevttei}}" + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|kiijtij}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Kijte}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Kiijtij}}}}", + "thanks-button-action-cancel": "Jooskâ", + "thanks-thank-tooltip": "{{GENDER:$1|Vuolgât}} kijttosijd taan {{GENDER:$2|kevttei}}", + "logentry-thanks-thank": "$1 {{GENDER:$2|kiijtij}} kevttee {{GENDER:$4|$3}}" } diff --git a/Thanks/i18n/sms.json b/Thanks/i18n/sms.json new file mode 100644 index 00000000..34be0e98 --- /dev/null +++ b/Thanks/i18n/sms.json @@ -0,0 +1,15 @@ +{ + "@metadata": { + "authors": [ + "Yupik" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|späʹssbõõžž}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Späʹssbõõžž}}}}", + "thanks-button-action-cancel": "Jõõsk", + "thanks-thank-tooltip": "{{GENDER:$1|Späʹssbõõžž}} tän {{GENDER:$2|õõʹnni}}", + "thanks": "Späʹssbõõžž", + "thanks-submit": "Vuõlttâd", + "echo-category-title-edit-thank": "Späʹsseb", + "notification-link-text-view-post": "Čuäʹjet kommeeʹnt" +} diff --git a/Thanks/i18n/sr-ec.json b/Thanks/i18n/sr-ec.json index 4a940c1c..343d453b 100644 --- a/Thanks/i18n/sr-ec.json +++ b/Thanks/i18n/sr-ec.json @@ -2,6 +2,7 @@ "@metadata": { "authors": [ "BadDog", + "Kizule", "Macofe", "Milicevic01", "Obsuser", @@ -20,6 +21,7 @@ "thanks-button-action-completed": "Захвалили {{GENDER:$2|сте}} се {{GENDER:$1|кориснику|корисници|кориснику/ци}} $1", "thanks-error-undefined": "Захваљивање није успело (кôд грешке: $1). Покушајте поново.", "thanks-error-invalid-log-id": "Унос у дневнику није пронађен", + "thanks-error-log-deleted": "Тражени унос у дневнику је обрисан и захвалница се не може упутити.", "thanks-error-invalidrevision": "ID измене није важећи.", "thanks-error-revdeleted": "Није могуће послати захвалницу јер је измена избрисана.", "thanks-error-notitle": "Није могуће преузети наслов странице.", @@ -39,15 +41,15 @@ "echo-pref-tooltip-edit-thank": "Обавештава вас када вам се неко захвали за измену коју сте направили.", "echo-category-title-edit-thank": "Захвалнице", "notification-thanks-diff-link": "вашој измени", - "notification-header-rev-thank": "$1 вам се {{GENDER:$2|захвалио|захвалила|захвалио/ла}} на {{GENDER:$4|вашој}} измени странице <strong>$3</strong>.", - "notification-header-creation-thank": "$1 {{GENDER:$4|вам}} се {{GENDER:$2|захвалио|захвалила|захвалио/ла}} на вашем прављењу странице <strong>$3</strong>.", - "notification-header-log-thank": "$1 вам се {{GENDER:$2|захвалио|захвалила|захвалио/ла}} на {{GENDER:$4|вашој}} радњи на страници <strong>$3</strong>.", - "notification-compact-header-edit-thank": "$1 {{GENDER:$3|вам}} се {{GENDER:$2|захвалио|захвалила|захвалио/ла}}.", + "notification-header-rev-thank": "$1 {{GENDER:$4|Вам}} се {{GENDER:$2|захваљује}} на измени странице <strong>$3</strong>.", + "notification-header-creation-thank": "$1 {{GENDER:$4|Вам}} се {{GENDER:$2|захваљује}} на прављењу странице <strong>$3</strong>.", + "notification-header-log-thank": "$1 {{GENDER:$4|Вам}} се {{GENDER:$2|захваљује}} на радњи у вези са страницом <strong>$3</strong>.", + "notification-compact-header-edit-thank": "$1 {{GENDER:$3|Вам}} се {{GENDER:$2|захваљује}}.", "notification-bundle-header-rev-thank": "{{PLURAL:$1|Једна особа вам се захвалила|$1 особе су вам се захвалиле|$1 особа вам се захвалило|100=> 99 особа вам се захвалило}} на {{GENDER:$3|вашој}} измени странице <strong>$2</strong>.", "notification-bundle-header-log-thank": "{{PLURAL:$1|Једна особа вам се захвалила|$1 особе су вам се захвалиле|$1 особа вам се захвалило|100=> 99 особа вам се захвалило}} на {{GENDER:$3|вашој}} радњи на страници <strong>$2</strong>.", "log-name-thanks": "Дневник захвалница", "log-description-thanks": "Испод се налази списак корисника којима су се други корисници захвалили.", - "logentry-thanks-thank": "$1 се {{GENDER:$2|захвалио|захвалила|захвалио/ла}} {{GENDER:$4|кориснику|корисници|кориснику/ци}} {{GENDER:$4|$3}}", + "logentry-thanks-thank": "$1 се {{GENDER:$2|захвалио|захвалила}} {{GENDER:$4|кориснику|корисници}} {{GENDER:$4|$3}}", "logeventslist-thanks-log": "Дневник захвалница", "thanks-error-no-id-specified": "Морате навести ID измене или дневника да бисте послали захвалницу.", "thanks-confirmation-special-log": "Желите ли да јавно пошаљете захваљивање за ову радњу у дневнику?", @@ -58,7 +60,8 @@ "flow-thanks-confirmation-special": "Желите ли да јавно пошаљете захвалницу за овај коментар?", "flow-thanks-thanked-notice": "{{GENDER:$3|Захвалили}} сте се {{GENDER:$2|кориснику|корисници}} $1 на {{GENDER:$2|његовом|њеном}} коментар.", "notification-flow-thanks-post-link": "вашем коментару", - "notification-header-flow-thank": "$1 вам се {{GENDER:$2|захвалио|захвалила|захвалио/ла}} на {{GENDER:$5|вашем}} коментару у одељку „<strong>$3</strong>”.", - "notification-compact-header-flow-thank": "$1 {{GENDER:$3|вам}} се {{GENDER:$2|захвалио|захвалила|захвалио/ла}}", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Једна особа вам се захвалила|$1 особе су вам се захвалиле|$1 особа вам се захвалило|100=> 99 особа вам се захвалило}} на {{GENDER:$3|вашем}} коментару у „<strong>$2</strong>”." + "notification-header-flow-thank": "$1 {{GENDER:$5|Вам}} се {{GENDER:$2|захваљује}} на коментару у одељку „<strong>$3</strong>”.", + "notification-compact-header-flow-thank": "$1 {{GENDER:$3|Вам}} се {{GENDER:$2|захваљује}}.", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Једна особа вам се захвалила|$1 особе су вам се захвалиле|$1 особа вам се захвалило|100=> 99 особа вам се захвалило}} на {{GENDER:$3|вашем}} коментару у „<strong>$2</strong>”.", + "ipb-action-thanks": "Захваљивање" } diff --git a/Thanks/i18n/sr-el.json b/Thanks/i18n/sr-el.json index 7ff77674..a0444b6e 100644 --- a/Thanks/i18n/sr-el.json +++ b/Thanks/i18n/sr-el.json @@ -1,10 +1,12 @@ { "@metadata": { "authors": [ + "Kizule", "Macofe", "Milicevic01", "Obsuser", "Srdjan m", + "Srđan", "Zoranzoki21" ] }, diff --git a/Thanks/i18n/sro.json b/Thanks/i18n/sro.json new file mode 100644 index 00000000..a5123263 --- /dev/null +++ b/Thanks/i18n/sro.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Jaime Sulas" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|torrat gràtzias}}}}" +} diff --git a/Thanks/i18n/sv.json b/Thanks/i18n/sv.json index 90716b02..e6011fb0 100644 --- a/Thanks/i18n/sv.json +++ b/Thanks/i18n/sv.json @@ -10,6 +10,7 @@ "Lokal Profil", "Macofe", "MagnusA", + "Sabelöga", "Skalman", "WikiPhoenix" ] @@ -24,7 +25,7 @@ "thanks-button-action-completed": "Du {{GENDER:$1|{{GENDER:$2|tackade}}}} $1", "thanks-error-undefined": "Tackåtgärden misslyckades (felkod: $1). Var god försök igen.", "thanks-error-invalid-log-id": "Loggpost hittades inte", - "thanks-error-invalid-log-type": "Loggtypen \"$1\" är inte i vitlistan över tillåtna loggtyper.", + "thanks-error-invalid-log-type": "Loggtypen \"$1\" är inte i listan över tillåtna loggtyper.", "thanks-error-log-deleted": "Den begärda loggposten har raderats och tacket kan inte ges för den.", "thanks-error-invalidrevision": "Versions-ID är inte giltigt.", "thanks-error-revdeleted": "Kunde inte skicka tack eftersom sidversionen har raderats.", @@ -67,5 +68,6 @@ "notification-flow-thanks-post-link": "din kommentar", "notification-header-flow-thank": "$1 {{GENDER:$2|tackade}} {{GENDER:$5|dig}} för din kommentar på \"<strong>$3</strong>\".", "notification-compact-header-flow-thank": "$1 {{GENDER:$2|tackade}} {{GENDER:$3|dig}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|En person|$1 personer|100=99+ personer}} tackade {{GENDER:$3|dig}} för din kommentar på \"<strong>$2</strong>\"." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|En person|$1 personer|100=99+ personer}} tackade {{GENDER:$3|dig}} för din kommentar på \"<strong>$2</strong>\".", + "ipb-action-thanks": "Skickar tack" } diff --git a/Thanks/i18n/sw.json b/Thanks/i18n/sw.json index 296e44e1..7b1a7b9f 100644 --- a/Thanks/i18n/sw.json +++ b/Thanks/i18n/sw.json @@ -1,8 +1,10 @@ { "@metadata": { "authors": [ - "Rance" + "Rance", + "Wangombe" ] }, + "thanks-thank": "{{GENDER:$1| {{GENDER:$2| asante}}}}", "logeventslist-thanks-log": "taarifa ya Ahsante" } diff --git a/Thanks/i18n/syl.json b/Thanks/i18n/syl.json new file mode 100644 index 00000000..b1f5db14 --- /dev/null +++ b/Thanks/i18n/syl.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "এম আবু সাঈদ" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ꠡꠥꠇꠞꠤꠀ}}}}" +} diff --git a/Thanks/i18n/ta.json b/Thanks/i18n/ta.json index 7be98c21..1e933ae0 100644 --- a/Thanks/i18n/ta.json +++ b/Thanks/i18n/ta.json @@ -4,11 +4,14 @@ "AntanO", "Jayarathina", "Kalyanasundar", - "Shanmugamp7" + "Kanags", + "MinecraftAustralia", + "Shanmugamp7", + "Siddhan" ] }, "thanks-desc": "பயனர்களின் திருத்தங்கள், கருத்துகள் முதலியவற்றிற்கு நன்றி தெரிவிக்கும் இணைப்பை சேர்க்கும்.", - "thanks-thank": "நன்றியுரை", + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|நன்றி}}}}", "thanks-thanked": "{{GENDER:$1|நன்றியுரைக்கப்பட்டது}}", "thanks-button-thank": "நன்றி!", "thanks-button-thanked": "{{GENDER:$1|நன்றியுரைக்கப்பட்டது}}", diff --git a/Thanks/i18n/tdd.json b/Thanks/i18n/tdd.json new file mode 100644 index 00000000..c0892b45 --- /dev/null +++ b/Thanks/i18n/tdd.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Aey Tai Nuea", + "咽頭べさ" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ᥕᥣᥙᥱ ᥓᥬ ᥗᥪᥒᥴ}}}}" +} diff --git a/Thanks/i18n/te.json b/Thanks/i18n/te.json index 2b5ed14a..158d45d4 100644 --- a/Thanks/i18n/te.json +++ b/Thanks/i18n/te.json @@ -10,20 +10,40 @@ "రహ్మానుద్దీన్" ] }, - "thanks-desc": "చరిత్ర మరియు తేడా వీక్షణాలకు వాడుకరులకు ధన్యవాదములు తెలుపు లంకెలను జత చేస్తుంది", + "thanks-desc": "దిద్దుబాట్లు, వ్యాఖ్యలు వగైరాలు చేసినందుకు గాను వాడుకరులకు ధన్యవాదాలు చెప్పే లింకులను చేరుస్తుంది.", "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ధన్యవాదాలు పంపండి}}}}", - "thanks-thanked": "{{GENDER:$1|అభినందించారు}}", - "thanks-error-undefined": "కృతజ్ఞతల చర్య విఫలమైంది. దయచేసి మళ్ళీ ప్రయత్నించండి.", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|ధన్యవాదాలు చెప్పారు}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|ధన్యవాదాలు పంపండి}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|ధన్యవాదాలు చెప్పారు}}}}", + "thanks-button-action-queued": "$1 కు, {{GENDER:$1|{{GENDER:$2|ధన్యవాదాలు చెబుతున్నారు}}}}…", + "thanks-button-action-cancel": "రద్దుచేయి", + "thanks-button-action-completed": "మీరు $1 కు {{GENDER:$1|{{GENDER:$2|ధన్యవాదాలు పంపారు}}}}", + "thanks-error-undefined": "ధన్యవాదాలు చెప్పడం విఫలమైంది (error code: $1). మళ్ళీ ప్రయత్నించండి.", + "thanks-error-invalid-log-id": "చిట్టాలో ఈ పద్దు లేదు", + "thanks-error-invalid-log-type": "అనుమతించిన చిట్టా రకాల జాబితాలో '$1' అనే రకం లేదు.", "thanks-error-invalidrevision": "కూర్పుల ID చెల్లదు", - "thanks-error-ratelimited": "మీరు మీ రేట్ హద్దును దాటారు. దయచేసి కాసేపాగి తిరిగి ప్రయత్నించండి.", + "thanks-error-notloggedin": "అజ్ఞాత వాడుకరులు ధన్యవాదాలు చెప్పజాలరు", + "thanks-error-ratelimited": "{{GENDER:$1|మీరు}} మీ రేట్ పరిమితిని దాటారు. కాసేపాగి తిరిగి ప్రయత్నించండి.", "thanks-thank-tooltip": "{{GENDER:$2|వాడుకరి}}కి ఒక ధన్యవాద సూచన {{GENDER:$1|పంపండి}}", + "thanks-thank-tooltip-no": "ధన్యవాదాలు గమనింపును {{GENDER:$1|రద్దు చెయ్యి}}", + "thanks-confirmation2": "ధన్యవాదాలను బహిరంగంగా {{GENDER:$1|పంపుతారా?}}", + "thanks-thanked-notice": "{{GENDER:$3|మీరు}}, {{GENDER:$2|$1}} కు ధన్యవాదాలు పంపారు.", "echo-pref-subscription-edit-thank": "నా మార్పుకు ధన్యవాదాలు", "echo-pref-tooltip-edit-thank": "నేను చేసిన మార్పుకు ఎవరైనా ధన్యవాదాలు చెపితే నాకు తెలియజేయి", "echo-category-title-edit-thank": "ధన్యవాదాలు", "notification-thanks-diff-link": "మీ మార్పు", + "notification-header-rev-thank": "<strong>$3</strong> లో మీరు చేసిన దిద్దుబాటుకు గాను $1, {{GENDER:$4|మీకు}} {{GENDER:$2|ధన్యవాదాలు}} చెప్పారు.", + "notification-header-creation-thank": "<strong>$3</strong> ను సృష్టించినందుకు $1, {{GENDER:$4|మీకు}} {{GENDER:$2|ధన్యవాదాలు}} చెప్పారు.", + "notification-header-log-thank": "<strong>$3</strong> కు సంబంధించి {{GENDER:$4|మీరు}} తీసుకున్న చర్యకు గాను $1, {{GENDER:$2|ధన్యవాదాలు}} చెప్పారు.", + "notification-compact-header-edit-thank": "$1 {{GENDER:$3|మీకు}} ధన్యవాదాలు {{GENDER:$2|చెప్పారు}}.", + "notification-bundle-header-rev-thank": "<strong>$2</strong> లో {{GENDER:$3|మీరు}} చేసిన దిద్దుబాటుకు గాను {{PLURAL:$1|ఒక వ్యక్తి|$1 మంది|100=99+ వ్యక్తులు}} ధన్యవాదాలు చెప్పారు.", + "notification-bundle-header-log-thank": "<strong>$2</strong> కు సంబంధించి మీరు తీసుకున్న చర్యకు గాను {{PLURAL:$1|ఒక వ్యక్తి|$1 మంది|100=99+ మంది}} {{GENDER:$3|మీకు}} ధన్యవాదాలు చెప్పారు.", "log-name-thanks": "ధన్యవాదాల చిట్టా", "log-description-thanks": "క్రింది వాడుకరులు ఇతర వాడుకరుల నుండి ధన్యవాదాలు పొందారు.", "logentry-thanks-thank": "$1 {{GENDER:$4|$3}} కు {{GENDER:$2|ధన్యవాదాలు పంపారు}}", + "logeventslist-thanks-log": "ధన్యవాదాల చిట్టా", + "thanks-error-no-id-specified": "ధన్యవాదాలు పంపించేందుకు మీరొక కూర్పునో లాగ్ ఐడీనో ఇవ్వాలి.", + "thanks-confirmation-special-log": "ఈ లాగ్ చర్యకు గాను మీరు బహిరంగంగా ధన్యవాదాలు పంపాలనుకుంటున్నారా?", "notification-link-text-view-post": "వ్యాఖ్యను చూడండి", "flow-thanks-confirmation-special": "ఈ వ్యాఖ్యకు బహిరంగంగా ధన్యవాదములు తెలుపుతారా?", "notification-flow-thanks-post-link": "మీ వ్యాఖ్య" diff --git a/Thanks/i18n/th.json b/Thanks/i18n/th.json index 75ca02b6..b08b71de 100644 --- a/Thanks/i18n/th.json +++ b/Thanks/i18n/th.json @@ -30,7 +30,7 @@ "thanks-thank-tooltip": "{{GENDER:$1|ส่ง}}การแจ้งขอบคุณไปยัง{{GENDER:$2|ผู้ใช้}}นี้", "thanks-thank-tooltip-no": "{{GENDER:$1|ยกเลิก}}การแจ้งขอบคุณ", "thanks-thank-tooltip-yes": "{{GENDER:$1|ส่ง}}การแจ้งขอบคุณ", - "thanks-confirmation2": "ส่งคำขอบคุณแบบเปิดเผยต่อสาธารณะหรือไม่", + "thanks-confirmation2": "{{GENDER:$1|ส่ง}}คำขอบคุณแบบเปิดเผยต่อสาธารณะหรือไม่", "thanks-thanked-notice": "{{GENDER:$3|คุณ}}กล่าวขอบคุณ {{GENDER:$2|$1}} แล้ว", "thanks": "ส่งคำขอบคุณ", "thanks-submit": "ส่งคำขอบคุณ", @@ -39,7 +39,7 @@ "echo-category-title-edit-thank": "ขอบคุณ", "notification-thanks-diff-link": "การแก้ไขของคุณ", "notification-header-rev-thank": "$1 ได้{{GENDER:$2|กล่าวขอบคุณ}}{{GENDER:$4|คุณ}}สำหรับการแก้ไขของคุณบน <strong>$3</strong>", - "notification-header-creation-thank": "$1 ขอบคุณคุณสำหรับการสร้างหน้า <strong>$3</strong>", + "notification-header-creation-thank": "$1 {{GENDER:$2|ขอบคุณ}}{{GENDER:$4|คุณ}}สำหรับการสร้างหน้า <strong>$3</strong>", "notification-header-log-thank": "$1 ได้{{GENDER:$2|กล่าวขอบคุณ}}{{GENDER:$4|คุณ}}สำหรับการกระทำของคุณเกี่ยวกับ <strong>$3</strong>", "notification-compact-header-edit-thank": "$1 ได้{{GENDER:$2|กล่าวขอบคุณ}}{{GENDER:$3|คุณ}}", "notification-bundle-header-rev-thank": "{{PLURAL:$1|1 คน|$1 คน|100=99+ คน}}ได้กล่าวขอบคุณ{{GENDER:$3|คุณ}}สำหรับการแก้ไขของคุณบน <strong>$2</strong>", diff --git a/Thanks/i18n/ti.json b/Thanks/i18n/ti.json new file mode 100644 index 00000000..79164f37 --- /dev/null +++ b/Thanks/i18n/ti.json @@ -0,0 +1,10 @@ +{ + "@metadata": { + "authors": [ + "Joanmp17" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|ኣመስግን|ኣመስግኒ}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|ኣመስግን|ኣመስግኒ}}}}", + "thanks-button-action-cancel": "ኣትርፍ" +} diff --git a/Thanks/i18n/tk.json b/Thanks/i18n/tk.json new file mode 100644 index 00000000..8aa1f554 --- /dev/null +++ b/Thanks/i18n/tk.json @@ -0,0 +1,10 @@ +{ + "@metadata": { + "authors": [ + "TayfunEt." + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|sag boluň}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Sag boluň}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Sag boluň iberildi}}}}" +} diff --git a/Thanks/i18n/tl.json b/Thanks/i18n/tl.json index 08a2d199..bc9afac7 100644 --- a/Thanks/i18n/tl.json +++ b/Thanks/i18n/tl.json @@ -2,25 +2,64 @@ "@metadata": { "authors": [ "AnakngAraw", + "GinawaSaHapon", + "Jojit fb", "LR Guanzon", "Sky Harbor" ] }, - "thanks-desc": "Nagdaragdag ng mga kawing ng pasasalamat sa pagtanaw ng kasaysayan at pagkakaiba", - "thanks-thank": "{{GENDER:$1|{{GENDER:$2|pasalamatan}}}}", - "thanks-thanked": "{{GENDER:$1|pinasalamatan na}}", - "thanks-button-thank": "Pasalamatan", - "thanks-button-thanked": "{{GENDER:$1|Pinasalamatan na}}", - "thanks-error-undefined": "Nabigo ang kilos ng pagpapasalamat. Mangyaring subukan muli.", - "thanks-error-invalidrevision": "Walang saysay ang ID ng rebisyon.", - "thanks-error-ratelimited": "Nilampasan mo ang iyong hangganan ng antas. Mangyaring maghintay ng ilang sandali at subukan muli.", - "thanks-thank-tooltip": "{{GENDER:$1|Magpadala}} ng isang pabatid ng pasasalamat sa {{GENDER:$2|tagagamit}} na ito", - "thanks-thanked-notice": "Sinabihan si $1 na ginusto mo ang {{GENDER:$2|kaniyang|kanilang}} pagbabago.", - "echo-pref-subscription-edit-thank": "Pinasalamatan ako para sa aking pagbabago", - "echo-pref-tooltip-edit-thank": "Ipabatid sa akin kapag may nagpasalamat sa akin para sa isang pagbabagong naigawa ko.", + "thanks-desc": "Nagdadagdag ng mga link para pasalamatan ang mga tagagamit para sa kanilang binago, komento, atbp.", + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|salamat}}}}", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|pinasalamatan}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Pasalamatan}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Pinasalamatan}}}}", + "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Pinapasalamatan}}}} si $1…", + "thanks-button-action-cancel": "Ikansela", + "thanks-button-action-completed": "{{GENDER:$1|{{GENDER:$2|Pinasalamatan}}}} mo si $1", + "thanks-error-undefined": "Pumalya ang pagpapasalamat (error code: $1). Pakiulit po uli.", + "thanks-error-invalid-log-id": "Di nakita ang entry ng tala", + "thanks-error-invalid-log-type": "Wala sa talaan ng mga pinapayagang uri ng tala ang '$1'.", + "thanks-error-log-deleted": "Binura na ang hiniling na entry ng tala kaya di na mabibigay ang pasasalamat.", + "thanks-error-invalidrevision": "Di valid ang ID ng pagbabago.", + "thanks-error-revdeleted": "Di magawang mapadala ang pasasalamat dahil binura na ang pagbabago.", + "thanks-error-notitle": "Di makuha ang pamagat ng pahina", + "thanks-error-invalidrecipient": "Walang nakitang valid na tatanggap", + "thanks-error-invalidrecipient-bot": "Di mapapasalamatan ang mga bot", + "thanks-error-invalidrecipient-self": "Bawal mong pasalamatan ang sarili mo", + "thanks-error-notloggedin": "Bawal magpasalamat ang mga di kilalang tagagamit", + "thanks-error-ratelimited": "Narating {{GENDER:$1|mo}} na ang hangganan ng pagpadala mo. Mangyaring maghintay ka muna ng ilang sandali at pakisubukan muli.", + "thanks-error-api-params": "Dapat may binigay na 'revid' o di kaya 'logid'", + "thanks-thank-tooltip": "{{GENDER:$1|Magpadala}} ng pasasalamat sa {{GENDER:$2|tagagamit}} na ito", + "thanks-thank-tooltip-no": "{{GENDER:$1|Ikansela}} ang pasasalamat", + "thanks-thank-tooltip-yes": "{{GENDER:$1|Magpadala}} ng pasasalamat", + "thanks-confirmation2": "{{GENDER:$1|Magpapasalamat}} ka ba talaga?", + "thanks-thanked-notice": "Pinasalamatan mo {{GENDER:$3|mo}} si {{GENDER:$2|$1}}.", + "thanks": "Magpasalamat", + "thanks-submit": "Magpasalamat", + "echo-pref-subscription-edit-thank": "Pinasalamatan ako sa pagbabagong ginawa ko", + "echo-pref-tooltip-edit-thank": "Abisuhan ako kapag may nagpasalamat sa akin para sa pagbabagong ginawa ko.", "echo-category-title-edit-thank": "Pasasalamat", - "notification-thanks-diff-link": "ang pagbabago mo", + "notification-thanks-diff-link": "pagbabago mo", + "notification-header-rev-thank": "{{GENDER:$2|Pinasalamatan}} {{GENDER:$4|ka}} ni $1 para sa pagbabagong ginawa mo sa <strong>$3</strong>.", + "notification-header-creation-thank": "{{GENDER:$2|Pinasalamatan}} {{GENDER:$4|ka}} ni $1 para sa paggawa mo sa <strong>$3</strong>.", + "notification-header-log-thank": "{{GENDER:$2|Pinasalamatan}} {{GENDER:$4|ka}} ni $1 para sa ginawa mong may kinalaman sa <strong>$3</strong>.", + "notification-compact-header-edit-thank": "{{GENDER:$2|Pinasalamatan}} {{GENDER:$3|ka}} ni $1.", + "notification-bundle-header-rev-thank": "Nagpasalamat ang {{PLURAL:$1|isang tao|$1 (na) tago|100=99+ na tao}} {{GENDER:$3|sa'yo}} para sa pagbago mo sa <strong>$2</strong>.", + "notification-bundle-header-log-thank": "Nagpasalamat ang {{PLURAL:$1|isang tao|$1 (na) tago|100=99+ na tao}} {{GENDER:$3|sa'yo}} para sa ginawa mong may kinalaman sa <strong>$2</strong>.", "log-name-thanks": "Tala ng pasasalamat", - "log-description-thanks": "Nasa ibaba ang isang tala ng mga tagagamit na pinasalamatan ng ibang tagagamit.", - "logentry-thanks-thank": "{{GENDER:$2|Pinasalamatan}} ni $1 si {{GENDER:$4|$3}}" + "log-description-thanks": "Nasa baba ang tala ng mga tagagamit na pinasalamatan ng ibang tagagamit.", + "logentry-thanks-thank": "{{GENDER:$2|Pinasalamatan}} ni $1 si {{GENDER:$4|$3}}", + "logeventslist-thanks-log": "Tala ng pasasalamat", + "thanks-error-no-id-specified": "Kailangan mo munang ibigay ang ID ng pagbabago o tala para magpasalamat.", + "thanks-confirmation-special-log": "Gusto mo ba talagang magpadala ng pasasalamat para sa talang ito?", + "thanks-confirmation-special-rev": "Gusto mo ba talagang magpadala ng pasasalamat para sa pagbabagong ito?", + "notification-link-text-view-post": "Tingnan ang komento", + "notification-link-text-view-logentry": "Tingnan ang entry ng tala", + "thanks-error-invalidpostid": "Di valid ang ID ng post.", + "flow-thanks-confirmation-special": "Gusto mo ba talagang magpadala ng pasasalamat para sa komentong ito?", + "flow-thanks-thanked-notice": "Pinasalamatan {{GENDER:$3|mo}} si $1 para sa {{GENDER:$2|kanyang}} komento.", + "notification-flow-thanks-post-link": "komento mo", + "notification-header-flow-thank": "{{GENDER:$2|Pinasalamatan}} {{GENDER:$5|ka}} ni $1 para sa komento mo sa \"<strong>$3</strong>\".", + "notification-compact-header-flow-thank": "{{GENDER:$2|Pinasalamatan}} {{GENDER:$3|ka}} ni $1", + "notification-bundle-header-flow-thank": "Nagpasalamat ang {{PLURAL:$1|isang tao|$1 (na) tago|100=99+ na tao}} {{GENDER:$3|sa'yo}} para sa komento mo sa \"<strong>$2</strong>\"." } diff --git a/Thanks/i18n/tly.json b/Thanks/i18n/tly.json index e51ffc2a..c28b86b4 100644 --- a/Thanks/i18n/tly.json +++ b/Thanks/i18n/tly.json @@ -1,8 +1,11 @@ { "@metadata": { "authors": [ - "Patriot Kur" + "Patriot Kur", + "Гусейн" ] }, - "thanks-button-action-cancel": "Ləğv karde" + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|сәғби воте}}}}", + "thanks-button-action-cancel": "Ləğv karde", + "thanks-thank-tooltip": "{{GENDER:$1|Vığande}} {{GENDER:$2|bı iştirokəkə|bı iştirokəkə}} ve səğbi" } diff --git a/Thanks/i18n/tr.json b/Thanks/i18n/tr.json index 23c5e4e2..2427a21a 100644 --- a/Thanks/i18n/tr.json +++ b/Thanks/i18n/tr.json @@ -9,8 +9,11 @@ "Macofe", "McAang", "Meelo", + "Melissadilara", "Rapsar", + "SaldırganSincap", "Sayginer", + "Sezgin İbiş", "Stultiwikia", "Vito Genovese" ] @@ -25,7 +28,7 @@ "thanks-button-action-completed": "$1 kullanıcıya {{GENDER:$1|{{GENDER:$2|teşekkür}}}} ettiniz", "thanks-error-undefined": "Teşekkür eylemi başarısız oldu (hata kodu: $1). Lütfen tekrar deneyin.", "thanks-error-invalid-log-id": "Günlük girişi bulunamadı", - "thanks-error-invalid-log-type": "'$1' günlük türü, izin verilen günlük türlerinin beyaz listesinde değil.", + "thanks-error-invalid-log-type": "'$1' günlük türü, izin verilen günlük türlerinin listesinde değil.", "thanks-error-log-deleted": "İstenen günlük girişi silindi ve giriş için teşekkür edilemiyor.", "thanks-error-invalidrevision": "Revizyon kimliği geçerli değil.", "thanks-error-revdeleted": "Revizyon silindiği için teşekkür gönderilemiyor.", @@ -47,15 +50,15 @@ "echo-pref-tooltip-edit-thank": "Yaptığım katkılar için yapılan teşekkürleri bana bildir.", "echo-category-title-edit-thank": "Teşekkürler", "notification-thanks-diff-link": "değişikliğiniz", - "notification-header-rev-thank": "$1 kullanıcısı <strong>$3</strong> sayfasındaki değişikliğiniz için {{GENDER:$4|size}} {{GENDER:$2|teşekkür etti}}.", + "notification-header-rev-thank": "$1, <strong>$3</strong> sayfasındaki değişikliğiniz için {{GENDER:$4|size}} {{GENDER:$2|teşekkür etti}}.", "notification-header-creation-thank": "$1, <strong>$3</strong> sayfasını oluşturduğunuz için {{GENDER:$4|size}} {{GENDER:$2|teşekkür etti}}.", "notification-header-log-thank": "$1, <strong>$3</strong> ile ilgili eyleminiz için {{GENDER:$4|size}} {{GENDER:$2|teşekkür etti}}.", - "notification-compact-header-edit-thank": "$1 {{GENDER:$3|size}} {{GENDER:$2|teşekkür etti}}.", + "notification-compact-header-edit-thank": "$1, {{GENDER:$3|size}} {{GENDER:$2|teşekkür etti}}.", "notification-bundle-header-rev-thank": "{{PLURAL:$1|Bir kişi|$1 kişi|100=99+ kişi}} <strong>$2</strong> sayfasındaki düzenlemeniz için {{GENDER:$3|size}} teşekkür etti.", "notification-bundle-header-log-thank": "{{PLURAL:$1|Bir kişi|$1 kişi|100=99+ kişi}} <strong>$2</strong> ile ilgili işleminiz için {{GENDER:$3|size}} teşekkür etti.", "log-name-thanks": "Teşekkür günlüğü", "log-description-thanks": "Diğer teşekkür eden kullanıcılar aşağıda listelenmektedir.", - "logentry-thanks-thank": "$1 {{GENDER:$2}}, {{GENDER:$4|$3}} kullanıcısına teşekkür etti.", + "logentry-thanks-thank": "$1, {{GENDER:$4|$3}} kullanıcısına {{GENDER:$2|teşekkür etti}}.", "logeventslist-thanks-log": "Teşekkür günlüğü", "thanks-error-no-id-specified": "Teşekkür göndermek için bir revizyon veya günlük kimliği belirtmelisiniz.", "thanks-confirmation-special-log": "Bu günlük işlemi için herkese açık olarak teşekkür etmek ister misiniz?", @@ -67,6 +70,7 @@ "flow-thanks-thanked-notice": "$1 {{GENDER:$2|kullanıcısına}} yorumuna {{GENDER:$3|teşekkür ettiniz}}.", "notification-flow-thanks-post-link": "yorumunuz", "notification-header-flow-thank": "$1, {{GENDER:$5|size}} \"<strong>$3</strong>\" yorumunuza {{GENDER:$2|teşekkür etti}}.", - "notification-compact-header-flow-thank": "$1 {{GENDER:$3|size}} {{GENDER:$2|teşekkür etti}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Bir kişi|$1 kişi|100=99+ kişi}} \"<strong>$2</strong>\" içindeki yorumunuz için {{GENDER:$3|size}} teşekkür etti." + "notification-compact-header-flow-thank": "$1, {{GENDER:$3|size}} {{GENDER:$2|teşekkür etti}}.", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Bir kişi|$1 kişi|100=99+ kişi}} \"<strong>$2</strong>\" içindeki yorumunuz için {{GENDER:$3|size}} teşekkür etti.", + "ipb-action-thanks": "Teşekkür gönderme" } diff --git a/Thanks/i18n/tum.json b/Thanks/i18n/tum.json new file mode 100644 index 00000000..034bbd62 --- /dev/null +++ b/Thanks/i18n/tum.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Amire80", + "Tumbuka Arch" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|wonga}}}}" +} diff --git a/Thanks/i18n/tw.json b/Thanks/i18n/tw.json new file mode 100644 index 00000000..3a7227b4 --- /dev/null +++ b/Thanks/i18n/tw.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Robertjamal12" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|da ase}}}}" +} diff --git a/Thanks/i18n/tyv.json b/Thanks/i18n/tyv.json new file mode 100644 index 00000000..dd49099a --- /dev/null +++ b/Thanks/i18n/tyv.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Riverman" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|четтирдим}}}}" +} diff --git a/Thanks/i18n/ug-arab.json b/Thanks/i18n/ug-arab.json new file mode 100644 index 00000000..bd169998 --- /dev/null +++ b/Thanks/i18n/ug-arab.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Sahran" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|رەھمەت}}}}" +} diff --git a/Thanks/i18n/uk.json b/Thanks/i18n/uk.json index 5576f3c2..dda5ab7a 100644 --- a/Thanks/i18n/uk.json +++ b/Thanks/i18n/uk.json @@ -5,7 +5,9 @@ "Aced", "Andriykopanytsia", "Base", + "DDPAT", "Green Zero", + "Ice bulldog", "Macofe", "NickK", "Olion", @@ -25,7 +27,7 @@ "thanks-button-action-completed": "Ви {{GENDER:$1|{{GENDER:$2|подякували}}}} $1", "thanks-error-undefined": "Не вдалось подякувати (код помилки: $1). Спробуйте знову.", "thanks-error-invalid-log-id": "Запис журналу не знайдено", - "thanks-error-invalid-log-type": "Типу журналу «$1» немає у білому списку дозволених типів журналів.", + "thanks-error-invalid-log-type": "Типу журналу «$1» немає у списку дозволених типів журналів.", "thanks-error-log-deleted": "Запитаний запис журналу було вилучено, за нього не можна подякувати.", "thanks-error-invalidrevision": "Неправильний ідентифікатор версії.", "thanks-error-revdeleted": "Не вдалося надіслати подяку, бо версію вилучено.", @@ -36,7 +38,7 @@ "thanks-error-notloggedin": "Анонімні користувачі не можуть надсилати подяк", "thanks-error-ratelimited": "{{GENDER:$1|Ви}} перевищили свій ліміт частоти. Будь ласка, зачекайте деякий час, і спробуйте знову.", "thanks-error-api-params": "Має бути присутній один з параметрів «revid» або «logid»", - "thanks-thank-tooltip": "{{GENDER:$1|Надіслати}} сповіщення вдячності {{GENDER:$2|цьому користувачу|цій користувачці}}", + "thanks-thank-tooltip": "{{GENDER:$1|Надіслати}} сповіщення про подяку {{GENDER:$2|цьому користувачу|цій користувачці}}", "thanks-thank-tooltip-no": "{{GENDER:$1|Скасувати}} сповіщення про подяку", "thanks-thank-tooltip-yes": "{{GENDER:$1|Надіслати}} сповіщення про подяку", "thanks-confirmation2": "{{GENDER:$1|Надіслати}} подяку?", @@ -45,7 +47,7 @@ "thanks-submit": "Надіслати подяку", "echo-pref-subscription-edit-thank": "Дякує мені за мої редагування", "echo-pref-tooltip-edit-thank": "Повідомляти, коли хтось дякує мені за редагування, зроблені мною.", - "echo-category-title-edit-thank": "Вдячність", + "echo-category-title-edit-thank": "Подяки", "notification-thanks-diff-link": "Ваше редагування", "notification-header-rev-thank": "$1 {{GENDER:$2|подякував|подякувала}} {{GENDER:$4|Вам}} за редагування на сторінці <strong>$3</strong>.", "notification-header-creation-thank": "$1 {{GENDER:$2|подякував|подякувала}} {{GENDER:$4|Вам}} за створення <strong>$3</strong>.", @@ -53,7 +55,7 @@ "notification-compact-header-edit-thank": "$1 {{GENDER:$2|подякував|подякувала}} {{GENDER:$3|Вам}}.", "notification-bundle-header-rev-thank": "{{PLURAL:$1|Одна людина подякувала|$1 людей подякувало|100=99+ людей подякували}} {{GENDER:$3|Вам}} за редагування сторінки <strong>$2</strong>.", "notification-bundle-header-log-thank": "{{PLURAL:$1|Одна людина подякувала|$1 людей подякувало|100=99+ людей подякували}} {{GENDER:$3|Вам}} за вашу дію щодо <strong>$2</strong>.", - "log-name-thanks": "Журнал вдячностей", + "log-name-thanks": "Журнал подяк", "log-description-thanks": "Нижче наведено перелік користувачів, яким подякували інші користувачі.", "logentry-thanks-thank": "$1 {{GENDER:$2|подякував|подякувала}} {{GENDER:$4|користувачу|користувачці}} $3", "logeventslist-thanks-log": "Журнал подяк", @@ -68,5 +70,6 @@ "notification-flow-thanks-post-link": "ваш коментар", "notification-header-flow-thank": "$1 {{GENDER:$2|подякував|подякувала}} {{GENDER:$5|Вам}} за Ваш коментар у <strong>$3</strong>.", "notification-compact-header-flow-thank": "$1 {{GENDER:$2|подякував|подякувала}} {{GENDER:$3|Вам}}.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Одна людина подякувала|$1 людей подякувало|100=99+ людей подякували}} {{GENDER:$3|Вам}} за коментар на «<strong>$2</strong>»." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Одна людина подякувала|$1 людей подякувало|100=99+ людей подякували}} {{GENDER:$3|Вам}} за коментар на «<strong>$2</strong>».", + "ipb-action-thanks": "Надсилання подяк" } diff --git a/Thanks/i18n/uz.json b/Thanks/i18n/uz.json index 9653a41f..d89703c9 100644 --- a/Thanks/i18n/uz.json +++ b/Thanks/i18n/uz.json @@ -2,24 +2,47 @@ "@metadata": { "authors": [ "Abdulla", + "Malikxan", "Nataev", "Sociologist" ] }, "thanks-thank": "{{GENDER:$1|{{GENDER:$2|rahmat}}}}", - "thanks-thanked": "{{GENDER:$1|rahmat aytildi}}", - "thanks-button-thank": "{{GENDER:$1|Rahmat}}", - "thanks-button-thanked": "{{GENDER:$1|Rahmat aytildi}}", - "thanks-error-undefined": "Rahmat yetkazilmadi. Iltimos takrorlang.", + "thanks-thanked": "{{GENDER:$1|{{GENDER:$2|rahmat aytildi}}}}", + "thanks-button-thank": "{{GENDER:$1|{{GENDER:$2|Rahmat}}}}", + "thanks-button-thanked": "{{GENDER:$1|{{GENDER:$2|Rahmat aytildi}}}}", + "thanks-button-action-queued": "$1ga {{GENDER:$1|{{GENDER:$2|rahmat aytilyabdi}}}}…", + "thanks-button-action-cancel": "Bekor qilish", + "thanks-button-action-completed": "Siz $1 ga {{GENDER:$1|{{GENDER:$2|rahmat aytdingiz}}}}", + "thanks-error-undefined": "Rahmat yetkazilmadi (xatolik kodi: $1). Iltimos qayta urining.", + "thanks-error-invalid-log-id": "Kirish qaydlari topilmadi", "thanks-error-invalidrevision": "Versiya raqami notoʻgʻri.", "thanks-error-ratelimited": "{{GENDER:$1|Siz}} bu amallarni haddan oshiq tez bajaryapsiz. Iltimos bir oz kuting va takrorlang.", "thanks-thank-tooltip": "Bu {{GENDER:$2|foydalanuvchiga}} rahmat {{GENDER:$1|ayt}}", - "thanks-thanked-notice": "$1ga {{GENDER:$2|uning|uning|ularning}} tahririni yoqtirganingiz haqida bildirildi.", + "thanks-confirmation2": "Hammaga rahmat {{GENDER:$1|aytilsinmi}}?", + "thanks-thanked-notice": "{{GENDER:$2|$1}}ga tahririni {{GENDER:$3|yoqtirganingiz}} haqida bildirildi.", + "thanks": "Rahmatni yuborish", + "thanks-submit": "Rahmat yuborildi", "echo-pref-subscription-edit-thank": "Tahririm uchun menga rahmat aytildi", "echo-pref-tooltip-edit-thank": "Tahririm uchun rahmat aytilsa menga bildir.", "echo-category-title-edit-thank": "Rahmat", "notification-thanks-diff-link": "tahriringiz", + "notification-header-rev-thank": "$1 {{GENDER:$4|sizga}} <strong>$3</strong>dagi tahriringiz uchun {{GENDER:$2|rahmat aytdi}}.", + "notification-header-creation-thank": "$1 {{GENDER:$4|sizga}} <strong>$3</strong>ni yaratganligingiz uchun {{GENDER:$2|rahmat aytdi}}.", + "notification-header-log-thank": "$1 {{GENDER:$4|sizga}} <strong>$3</strong>ga tegishli harakatingiz uchun {{GENDER:$2|rahmat aytdi}}.", + "notification-compact-header-edit-thank": "$1 {{GENDER:$3|sizga}} {{GENDER:$2|rahmat aytdi}}.", + "notification-bundle-header-rev-thank": "{{PLURAL:$1|Bir kishi|$1 kishilar|100=99+ kishi}} {{GENDER:$3|sizga}} \"<strong>$2</strong>\"dagi tahriringiz uchun rahmat aytdi.", + "notification-bundle-header-log-thank": "{{PLURAL:$1|Bir kishi|$1 kishilar|100=99+ kishi}} {{GENDER:$3|sizga}} \"<strong>$2</strong>\"ga tegishli harakatingiz uchun rahmat aytdi.", "log-name-thanks": "Rahmatlar qaydi", "log-description-thanks": "Quyida rahmat aytilgan foydalanuvchilar roʻyxati keltirilgan.", - "logentry-thanks-thank": "$1 {{GENDER:$4|$3}}ga {{GENDER:$2|rahmat aytdi}}" + "logentry-thanks-thank": "$1 {{GENDER:$4|$3}}ga {{GENDER:$2|rahmat aytdi}}", + "logeventslist-thanks-log": "Rahmatlar qaydi", + "notification-link-text-view-post": "Izohni koʻrish", + "notification-link-text-view-logentry": "Kirish qaydiga razm solish", + "thanks-error-invalidpostid": "Post ID — yaroqsiz", + "flow-thanks-thanked-notice": "{{GENDER:$3|Siz}} {{GENDER:$2|uning|ularning}} izohi uchun $1 ga rahmat aytdingiz.", + "notification-flow-thanks-post-link": "sizning izohingiz", + "notification-header-flow-thank": "$1 {{GENDER:$5|sizga}} \"<strong>$3</strong>\"dagi izohingiz uchun {{GENDER:$2|rahmat aytdi}}.", + "notification-compact-header-flow-thank": "$1 {{GENDER:$3|sizga}} {{GENDER:$2|rahmat aytdi}}.", + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Bir kishi|$1 kishilar|100=99+ kishi}} {{GENDER:$3|sizga}} \"<strong>$2</strong>\"dagi izohingiz uchun rahmat aytdi." } diff --git a/Thanks/i18n/vi.json b/Thanks/i18n/vi.json index f184818c..427b95a2 100644 --- a/Thanks/i18n/vi.json +++ b/Thanks/i18n/vi.json @@ -7,9 +7,11 @@ "Macofe", "Max20091", "Minh Nguyen", + "NguoiDungKhongDinhDanh", "Nguyên Lê", "Prenn", - "Trần Nguyễn Minh Huy" + "Trần Nguyễn Minh Huy", + "Vinhtantran" ] }, "thanks-desc": "Thêm các liên kết để cảm ơn người dùng vì sửa đổi, bình luận, v.v.", @@ -17,9 +19,12 @@ "thanks-thanked": "{{GENDER:$1}}{{GENDER:$2}}đã cảm ơn", "thanks-button-thank": "{{GENDER:$1}}{{GENDER:$2}}Cảm ơn", "thanks-button-thanked": "{{GENDER:$1}}{{GENDER:$2}}Đã cảm ơn", + "thanks-button-action-queued": "{{GENDER:$1|{{GENDER:$2|Đang cảm ơn}}}} $1…", + "thanks-button-action-cancel": "Hủy", + "thanks-button-action-completed": "Bạn {{GENDER:$1|{{GENDER:$2|đã cảm ơn}}}} $1", "thanks-error-undefined": "Tác vụ cảm ơn bị thất bại (mã lỗi: $1). Xin vui lòng thử lại.", "thanks-error-invalid-log-id": "Không tìm thấy mục nhật trình", - "thanks-error-invalid-log-type": "Không có kiểu nhật trình “$1” trong danh sách trắng các kiểu nhật trình được cho phép.", + "thanks-error-invalid-log-type": "Không có kiểu nhật trình “$1” trong danh sách các kiểu nhật trình được cho phép.", "thanks-error-log-deleted": "Mục nhật trình được yêu cầu đã bị xóa, nên không thể gửi lời cảm ơn về nó.", "thanks-error-invalidrevision": "Số phiên bản không hợp lệ.", "thanks-error-revdeleted": "Không thể gửi lời cảm ơn vì phiên bản đã bị xóa.", @@ -38,10 +43,11 @@ "thanks": "Gửi lời cảm ơn", "thanks-submit": "Gửi lời cảm ơn", "echo-pref-subscription-edit-thank": "Cảm ơn tôi vì một sửa đổi của tôi", - "echo-pref-tooltip-edit-thank": "Báo cho tôi biết khi nào người ta cảm ơn tôi vì một sửa đổi của tôi.", + "echo-pref-tooltip-edit-thank": "Báo cho tôi khi có người cảm ơn một sửa đổi của tôi.", "echo-category-title-edit-thank": "Cảm ơn", "notification-thanks-diff-link": "sửa đổi của bạn", "notification-header-rev-thank": "$1 {{GENDER:$2}}đã cảm ơn {{GENDER:$4}}bạn vì sửa đổi tại <strong>$3</strong>.", + "notification-header-creation-thank": "$1 {{GENDER:$2|đã cảm ơn}} vì {{GENDER:$4|bạn}} đã tạo <strong>$3</strong>.", "notification-header-log-thank": "$1 {{GENDER:$2}}đã cảm ơn {{GENDER:$4}}bạn vì tác vụ có liên quan đến <strong>$3</strong>.", "notification-compact-header-edit-thank": "$1 {{GENDER:$2}}đã cảm ơn {{GENDER:$3}}bạn.", "notification-bundle-header-rev-thank": "{{PLURAL:$1|Một người|$1 người|100=99+ người}} đã cảm ơn {{GENDER:$3}}bạn vì sửa đổi của bạn tại <strong>$2</strong>.", @@ -51,8 +57,8 @@ "logentry-thanks-thank": "$1 {{GENDER:$2}}đã cảm ơn {{GENDER:$4}}$3", "logeventslist-thanks-log": "Nhật trình cảm ơn", "thanks-error-no-id-specified": "Bạn phải định rõ số phiên bản hoặc mục nhật trình để gửi cảm ơn.", - "thanks-confirmation-special-log": "Bạn có muốn công khai cám ơn cho hành động này không?", - "thanks-confirmation-special-rev": "Bạn có muốn cám ơn một cách công khai về sửa đổi này không?", + "thanks-confirmation-special-log": "Bạn có muốn công khai cảm ơn cho hành động này không?", + "thanks-confirmation-special-rev": "Bạn có muốn cảm ơn một cách công khai về sửa đổi này không?", "notification-link-text-view-post": "Xem bình luận", "notification-link-text-view-logentry": "Xem mục nhật trình", "thanks-error-invalidpostid": "Số bài đăng không hợp lệ.", @@ -61,5 +67,6 @@ "notification-flow-thanks-post-link": "đã bình luận", "notification-header-flow-thank": "$1 {{GENDER:$2}}đã cảm ơn {{GENDER:$5}}bạn vì bình luận ở “<strong>$3</strong>”.", "notification-compact-header-flow-thank": "$1 {{GENDER:$2}}đã cảm ơn {{GENDER:$3}}bạn.", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|Một người|$1 người|100=99+ người}} đã cảm ơn {{GENDER:$3}}bạn vì lời bình luận của bạn trong “<strong>$2</strong>”." + "notification-bundle-header-flow-thank": "{{PLURAL:$1|Một người|$1 người|100=99+ người}} đã cảm ơn {{GENDER:$3}}bạn vì lời bình luận của bạn trong “<strong>$2</strong>”.", + "ipb-action-thanks": "Gửi thông báo cảm ơn" } diff --git a/Thanks/i18n/vmw.json b/Thanks/i18n/vmw.json new file mode 100644 index 00000000..8c0396ff --- /dev/null +++ b/Thanks/i18n/vmw.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Amire80" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|oxukhuru}}}}" +} diff --git a/Thanks/i18n/wls.json b/Thanks/i18n/wls.json new file mode 100644 index 00000000..5493057a --- /dev/null +++ b/Thanks/i18n/wls.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Lea.Fakauvea" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|fakamālo}}}}" +} diff --git a/Thanks/i18n/xh.json b/Thanks/i18n/xh.json deleted file mode 100644 index 2ac40d61..00000000 --- a/Thanks/i18n/xh.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Nomden" - ] - }, - "thanks-thank-tooltip": "Thumela amazwi ombulelelo kulo mntu" -} diff --git a/Thanks/i18n/yi.json b/Thanks/i18n/yi.json index 4fe7bff6..420f348c 100644 --- a/Thanks/i18n/yi.json +++ b/Thanks/i18n/yi.json @@ -15,6 +15,7 @@ "thanks-button-action-completed": "איר האט {{GENDER:$1|{{GENDER:$2|געדאַנקט}}}}", "thanks-error-undefined": "דאנק אקציע אדורכגעפאלן (פֿעלערקאד: $1). זייט אזוי גוט פרובירט נאכאמאל.", "thanks-error-invalidrevision": "רעוויסיע אידענטיפיצורונג נישט גילטיק.", + "thanks-error-revdeleted": "נישט געקענט שיקן א דאַנק ווייַל די רעוויזיע איז געווארן אויסגעמעקט.", "thanks-error-invalidrecipient-bot": "מען קען נישט דאנקען קיין באט", "thanks-error-invalidrecipient-self": "מען קען נישט דאנקען זיך אליין", "thanks-error-notloggedin": "אנאנימע באניצער קענען נישט שיקן דאנקען", @@ -38,10 +39,14 @@ "log-name-thanks": "דאנק־לאגבוך", "log-description-thanks": "אונטן איז רשימה פון באניצער געדאַנקט דורך אנדערע באניצער.", "logentry-thanks-thank": "$1 {{GENDER:$2|האט געדאנקט}} {{GENDER:$4|$3}}", + "thanks-confirmation-special-log": "צי ווילט איר שיקן עפנטלעך א דאַנק פאר דער לאגירן־פעולה?", + "thanks-confirmation-special-rev": "צי ווילט איר שיקן עפֿנטלעך א דאַנק פאר דער רעדאקטירונג?", "notification-link-text-view-post": "ווייזן הערה", + "notification-link-text-view-logentry": "באקוקן לאגבוך איינגאב", "flow-thanks-confirmation-special": "צי ווילט איר שיקן עפנטלעך א דאַנק פאר דער הערה?", "flow-thanks-thanked-notice": "{{GENDER:$3|איר}} האט געדאנקט $1 פאר {{GENDER:$2|זיין|איר|זייער}} הערה.", "notification-flow-thanks-post-link": "אייער הערה", "notification-header-flow-thank": "$1 {{GENDER:$2|האט}} {{GENDER:$5|אייך}} געדאַנקט פֿאר אייער הערה אין <strong>$3</strong>.", - "notification-compact-header-flow-thank": "$1 {{GENDER:$2|האט געדאנקט}} {{GENDER:$3|אייך}}." + "notification-compact-header-flow-thank": "$1 {{GENDER:$2|האט געדאנקט}} {{GENDER:$3|אייך}}.", + "ipb-action-thanks": "שיקן א דאנק" } diff --git a/Thanks/i18n/yrl.json b/Thanks/i18n/yrl.json new file mode 100644 index 00000000..22905595 --- /dev/null +++ b/Thanks/i18n/yrl.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Karapananguasú Kururú Teremembé", + "Maracajá Teremembé" + ] + }, + "thanks-thank": "{{GENDER:$1|{{GENDER:$2|kuekatú}}}}" +} diff --git a/Thanks/i18n/zh-hans.json b/Thanks/i18n/zh-hans.json index 55438cad..f002e819 100644 --- a/Thanks/i18n/zh-hans.json +++ b/Thanks/i18n/zh-hans.json @@ -9,12 +9,14 @@ "Fantasticfears", "Hzy980512", "Impersonator 1", + "Lakejason0", "Liuxinyu970226", "Macofe", "Mywood", "Northteam", "Phenolla", "Qiyue2001", + "Shizhao", "WQL", "Xiaomingyan", "Xiplus", @@ -37,7 +39,7 @@ "thanks-button-action-completed": "您已{{GENDER:$1|{{GENDER:$2|感谢}}}}$1", "thanks-error-undefined": "感谢操作失败(错误代码:$1)。请重试。", "thanks-error-invalid-log-id": "找不到日志记录", - "thanks-error-invalid-log-type": "日志类型“$1”没有在允许的日志类型白名单中。", + "thanks-error-invalid-log-type": "日志类型“$1”没有在允许的日志类型名单中。", "thanks-error-log-deleted": "请求的日志记录已删除,且不能给它提供感谢。", "thanks-error-invalidrevision": "版本ID无效。", "thanks-error-revdeleted": "无法发送感谢,因为修订版本已删除。", @@ -51,7 +53,7 @@ "thanks-thank-tooltip": "{{GENDER:$1|发送}}感谢通知给该{{GENDER:$2|用户}}", "thanks-thank-tooltip-no": "{{GENDER:$1|取消}}感谢您的通知", "thanks-thank-tooltip-yes": "{{GENDER:$1|发送}}感谢您的通知", - "thanks-confirmation2": "公开{{GENDER:$1|发送}}感谢么?", + "thanks-confirmation2": "{{GENDER:$1|发送}}公开感谢吗?", "thanks-thanked-notice": "{{GENDER:$3|您}}感谢了{{GENDER:$2|$1}}。", "thanks": "发送感谢", "thanks-submit": "发送感谢", @@ -70,15 +72,16 @@ "logentry-thanks-thank": "$1{{GENDER:$2|感谢了}}{{GENDER:$4|$3}}", "logeventslist-thanks-log": "感谢日志", "thanks-error-no-id-specified": "您必须指定发送感谢的版本或日志ID。", - "thanks-confirmation-special-log": "您希望对此日志操作公开发送感谢么?", - "thanks-confirmation-special-rev": "您希望对此编辑公开发送感谢么?", + "thanks-confirmation-special-log": "要公开感谢此日志操作吗?", + "thanks-confirmation-special-rev": "要公开感谢此次编辑吗?", "notification-link-text-view-post": "查看评论", "notification-link-text-view-logentry": "查看日志记录", "thanks-error-invalidpostid": "帖子ID无效。", - "flow-thanks-confirmation-special": "您希望对此评论公开发送感谢么?", + "flow-thanks-confirmation-special": "要公开感谢此评论吗?", "flow-thanks-thanked-notice": "$1已收到{{GENDER:$3|您}}对{{GENDER:$2|其}}评论做出的感谢。", "notification-flow-thanks-post-link": "您的评论", "notification-header-flow-thank": "$1{{GENDER:$2|感谢了}}{{GENDER:$5|您}}在“<strong>$3</strong>”发表的评论。", "notification-compact-header-flow-thank": "$1{{GENDER:$2|感谢了}}{{GENDER:$3|您}}。", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|$1个人|100=超过99个人}}感谢了{{GENDER:$3|您}}在“<strong>$2</strong>”发表的评论。" + "notification-bundle-header-flow-thank": "{{PLURAL:$1|$1个人|100=超过99个人}}感谢了{{GENDER:$3|您}}在“<strong>$2</strong>”发表的评论。", + "ipb-action-thanks": "发送感谢" } diff --git a/Thanks/i18n/zh-hant.json b/Thanks/i18n/zh-hant.json index a504b342..1aeeeae7 100644 --- a/Thanks/i18n/zh-hant.json +++ b/Thanks/i18n/zh-hant.json @@ -29,7 +29,7 @@ "thanks-button-action-completed": "您{{GENDER:$1|{{GENDER:$2|已感謝}}}}$1", "thanks-error-undefined": "感謝操作失敗 (錯誤代碼:$1),請再試一次。", "thanks-error-invalid-log-id": "找不到日誌項目", - "thanks-error-invalid-log-type": "日誌類型「$1」未在允許的日誌類型白名單裡。", + "thanks-error-invalid-log-type": "日誌類型「$1」未在允許日誌類型的清單裡。", "thanks-error-log-deleted": "請求的日誌項目已被刪除,因此不能對此表達感謝。", "thanks-error-invalidrevision": "修訂 ID 無效。", "thanks-error-revdeleted": "因修訂內容已被刪除,因此無法發送感謝。", @@ -72,5 +72,6 @@ "notification-flow-thanks-post-link": "您的評論", "notification-header-flow-thank": "$1 {{GENDER:$2|已感謝}}{{GENDER:$5|您}}於「<strong>$3</strong>」中的評論。", "notification-compact-header-flow-thank": "$1{{GENDER:$2|已感謝}}{{GENDER:$3|您}}。", - "notification-bundle-header-flow-thank": "{{PLURAL:$1|有$1位|100=有超過99位}}對於{{GENDER:$3|您}}在「<strong>$2</strong>」所作出的評論表示感謝。" + "notification-bundle-header-flow-thank": "{{PLURAL:$1|有$1位|100=有超過99位}}對於{{GENDER:$3|您}}在「<strong>$2</strong>」所作出的評論表示感謝。", + "ipb-action-thanks": "正在傳送感謝" } diff --git a/Thanks/includes/ApiCoreThank.php b/Thanks/includes/ApiCoreThank.php index b9a2828c..3727475d 100644 --- a/Thanks/includes/ApiCoreThank.php +++ b/Thanks/includes/ApiCoreThank.php @@ -1,7 +1,19 @@ <?php +namespace MediaWiki\Extension\Thanks; + +use ApiBase; +use DatabaseLogEntry; +use EchoDiscussionParser; +use EchoEvent; +use LogEntry; use MediaWiki\MediaWikiServices; use MediaWiki\Revision\RevisionRecord; +use MediaWiki\User\UserIdentity; +use Title; +use User; +use Wikimedia\ParamValidator\ParamValidator; +use Wikimedia\ParamValidator\TypeDef\IntegerDef; /** * API module to send thanks notifications for revisions and log entries. @@ -20,6 +32,7 @@ class ApiCoreThank extends ApiThank { // Initial setup. $user = $this->getUser(); $this->dieOnBadUser( $user ); + $this->dieOnUserBlockedFromThanks( $user ); $params = $this->extractRequestParams(); $revcreation = false; @@ -34,7 +47,6 @@ class ApiCoreThank extends ApiThank { $id = $params['log']; } else { $this->dieWithError( 'thanks-error-api-params', 'thanks-error-api-params' ); - throw new LogicException(); } $recipientUsername = null; @@ -47,7 +59,6 @@ class ApiCoreThank extends ApiThank { $id = $logEntry->getAssociatedRevId(); } else { // If there's no associated revision, die if the user is sitewide blocked - $this->dieOnSitewideBlockedUser( $user ); $excerpt = ''; $title = $logEntry->getTarget(); $recipient = $this->getUserFromLog( $logEntry ); @@ -58,7 +69,7 @@ class ApiCoreThank extends ApiThank { $revision = $this->getRevisionFromId( $id ); $excerpt = EchoDiscussionParser::getEditExcerpt( $revision, $this->getLanguage() ); $title = $this->getTitleFromRevision( $revision ); - $this->dieOnBlockedUser( $user, $title ); + $this->dieOnUserBlockedFromTitle( $user, $title ); $recipient = $this->getUserFromRevision( $revision ); $recipientUsername = $revision->getUser()->getName(); @@ -127,9 +138,10 @@ class ApiCoreThank extends ApiThank { $this->dieWithError( 'thanks-error-invalid-log-id', 'thanks-error-invalid-log-id' ); } - // Make sure this log type is whitelisted. - $logTypeWhitelist = $this->getConfig()->get( 'ThanksLogTypeWhitelist' ); - if ( !in_array( $logEntry->getType(), $logTypeWhitelist ) ) { + // Make sure this log type is allowed. + $allowedLogTypes = $this->getConfig()->get( 'ThanksAllowedLogTypes' ); + if ( !in_array( $logEntry->getType(), $allowedLogTypes ) + && !in_array( $logEntry->getType() . '/' . $logEntry->getSubtype(), $allowedLogTypes ) ) { $err = $this->msg( 'thanks-error-invalid-log-type', $logEntry->getType() ); $this->dieWithError( $err, 'thanks-error-invalid-log-type' ); } @@ -178,15 +190,11 @@ class ApiCoreThank extends ApiThank { /** * @param LogEntry $logEntry - * @return User + * @return UserIdentity */ private function getUserFromLog( LogEntry $logEntry ) { - $recipient = $logEntry->getPerformer(); - if ( !$recipient ) { - $this->dieWithError( 'thanks-error-invalidrecipient', 'invalidrecipient' ); - } - // @phan-suppress-next-line PhanTypeMismatchReturnNullable T240141 - return $recipient; + $recipient = $logEntry->getPerformerIdentity(); + return MediaWikiServices::getInstance()->getUserFactory()->newFromUserIdentity( $recipient ); } /** @@ -237,22 +245,22 @@ class ApiCoreThank extends ApiThank { public function getAllowedParams() { return [ 'rev' => [ - ApiBase::PARAM_TYPE => 'integer', - ApiBase::PARAM_MIN => 1, - ApiBase::PARAM_REQUIRED => false, + ParamValidator::PARAM_TYPE => 'integer', + IntegerDef::PARAM_MIN => 1, + ParamValidator::PARAM_REQUIRED => false, ], 'log' => [ - ApiBase::PARAM_TYPE => 'integer', - ApiBase::PARAM_MIN => 1, - ApiBase::PARAM_REQUIRED => false, + ParamValidator::PARAM_TYPE => 'integer', + IntegerDef::PARAM_MIN => 1, + ParamValidator::PARAM_REQUIRED => false, ], 'token' => [ - ApiBase::PARAM_TYPE => 'string', - ApiBase::PARAM_REQUIRED => true, + ParamValidator::PARAM_TYPE => 'string', + ParamValidator::PARAM_REQUIRED => true, ], 'source' => [ - ApiBase::PARAM_TYPE => 'string', - ApiBase::PARAM_REQUIRED => false, + ParamValidator::PARAM_TYPE => 'string', + ParamValidator::PARAM_REQUIRED => false, ] ]; } diff --git a/Thanks/includes/ApiFlowThank.php b/Thanks/includes/ApiFlowThank.php index 49fdf056..65ce54f5 100644 --- a/Thanks/includes/ApiFlowThank.php +++ b/Thanks/includes/ApiFlowThank.php @@ -1,10 +1,18 @@ <?php +namespace MediaWiki\Extension\Thanks; + +use ApiBase; +use EchoEvent; use Flow\Container; use Flow\Conversion\Utils; use Flow\Exception\FlowException; use Flow\Model\PostRevision; use Flow\Model\UUID; +use MWException; +use Title; +use User; +use Wikimedia\ParamValidator\ParamValidator; /** * API module to send Flow thanks notifications @@ -20,6 +28,7 @@ class ApiFlowThank extends ApiThank { public function execute() { $user = $this->getUser(); $this->dieOnBadUser( $user ); + $this->dieOnUserBlockedFromThanks( $user ); $params = $this->extractRequestParams(); @@ -47,7 +56,7 @@ class ApiFlowThank extends ApiThank { // Truncate the title text to prevent issues with database storage. $topicTitleText = $this->getLanguage()->truncateForDatabase( $rawTopicTitleText, 200 ); $pageTitle = $this->getPageTitleFromRootPost( $rootPost ); - $this->dieOnBlockedUser( $user, $pageTitle ); + $this->dieOnUserBlockedFromTitle( $user, $pageTitle ); /** @var PostRevision $post */ $post = $data['post']; @@ -168,7 +177,7 @@ class ApiFlowThank extends ApiThank { 'agent' => $user, ] ); - // And mark the thank in session for a cheaper check to prevent duplicates (Bug 46690). + // And mark the thank in session for a cheaper check to prevent duplicates (T48690). $user->getRequest()->setSessionData( "flow-thanked-{$postId->getAlphadecimal()}", true ); // Set success message. $this->markResultSuccess( $recipient->getName() ); @@ -178,12 +187,12 @@ class ApiFlowThank extends ApiThank { public function getAllowedParams() { return [ 'postid' => [ - ApiBase::PARAM_TYPE => 'string', - ApiBase::PARAM_REQUIRED => true, + ParamValidator::PARAM_TYPE => 'string', + ParamValidator::PARAM_REQUIRED => true, ], 'token' => [ - ApiBase::PARAM_TYPE => 'string', - ApiBase::PARAM_REQUIRED => true, + ParamValidator::PARAM_TYPE => 'string', + ParamValidator::PARAM_REQUIRED => true, ], ]; } diff --git a/Thanks/includes/ApiThank.php b/Thanks/includes/ApiThank.php index 9e99711f..ad7fc38c 100644 --- a/Thanks/includes/ApiThank.php +++ b/Thanks/includes/ApiThank.php @@ -1,6 +1,14 @@ <?php +namespace MediaWiki\Extension\Thanks; + +use ApiBase; +use ExtensionRegistry; +use ManualLogEntry; +use MediaWiki\CheckUser\Hooks; use MediaWiki\MediaWikiServices; +use Title; +use User; /** * Base API module for Thanks @@ -29,9 +37,11 @@ abstract class ApiThank extends ApiBase { * @param User $user * @param Title $title */ - protected function dieOnBlockedUser( User $user, Title $title ) { + protected function dieOnUserBlockedFromTitle( User $user, Title $title ) { $permissionManager = MediaWikiServices::getInstance()->getPermissionManager(); if ( $permissionManager->isBlockedFrom( $user, $title ) ) { + // Block should definitely exist + // @phan-suppress-next-line PhanTypeMismatchArgumentNullable $this->dieBlocked( $user->getBlock() ); } } @@ -39,14 +49,17 @@ abstract class ApiThank extends ApiBase { /** * Check whether the user is sitewide blocked. * - * This is separate from dieOnBlockedUser because we need to know if the thank - * is related to a revision. (If it is, then use dieOnBlockedUser instead.) + * This is separate from dieOnUserBlockedFromTitle because we need to know if the thank + * is related to a revision. (If it is, then use dieOnUserBlockedFromTitle instead.) * * @param User $user */ - protected function dieOnSitewideBlockedUser( User $user ) { + protected function dieOnUserBlockedFromThanks( User $user ) { $block = $user->getBlock(); - if ( $block && $block->isSitewide() ) { + if ( + $block && + ( $block->isSitewide() || $block->appliesToRight( 'thanks' ) ) + ) { $this->dieBlocked( $block ); } } @@ -74,19 +87,20 @@ abstract class ApiThank extends ApiBase { * @return bool Whether thanks has already been sent */ protected function haveAlreadyThanked( User $thanker, $uniqueId ) { - $dbw = wfGetDB( DB_MASTER ); - $logWhere = ActorMigration::newMigration()->getWhere( $dbw, 'log_user', $thanker ); + $dbw = wfGetDB( DB_PRIMARY ); + $thankerActor = MediaWikiServices::getInstance()->getActorNormalization() + ->acquireActorId( $thanker, $dbw ); return (bool)$dbw->selectRow( - [ 'log_search', 'logging' ] + $logWhere['tables'], + [ 'log_search', 'logging' ], [ 'ls_value' ], [ - $logWhere['conds'], + 'log_actor' => $thankerActor, 'ls_field' => 'thankid', 'ls_value' => $uniqueId, ], __METHOD__, [], - [ 'logging' => [ 'INNER JOIN', 'ls_log_id=log_id' ] ] + $logWhere['joins'] + [ 'logging' => [ 'INNER JOIN', 'ls_log_id=log_id' ] ] ); } @@ -110,7 +124,7 @@ abstract class ApiThank extends ApiBase { if ( ExtensionRegistry::getInstance()->isLoaded( 'CheckUser' ) ) { $recentChange = $logEntry->getRecentChange(); - CheckUserHooks::updateCheckUserData( $recentChange ); + Hooks::updateCheckUserData( $recentChange ); } } diff --git a/Thanks/includes/EchoCoreThanksPresentationModel.php b/Thanks/includes/EchoCoreThanksPresentationModel.php index 7360cf84..465d8868 100644 --- a/Thanks/includes/EchoCoreThanksPresentationModel.php +++ b/Thanks/includes/EchoCoreThanksPresentationModel.php @@ -1,6 +1,17 @@ <?php +namespace MediaWiki\Extension\Thanks; + +use DatabaseLogEntry; +use EchoEventPresentationModel; +use Linker; +use LogEntry; +use LogFormatter; +use LogPage; use MediaWiki\Revision\RevisionRecord; +use RawMessage; +use Sanitizer; +use SpecialPage; class EchoCoreThanksPresentationModel extends EchoEventPresentationModel { /** @var LogEntry|bool|null */ @@ -55,13 +66,17 @@ class EchoCoreThanksPresentationModel extends EchoEventPresentationModel { public function getBodyMessage() { $comment = $this->getRevOrLogComment(); - if ( $comment ) { + if ( $comment !== '' ) { $msg = new RawMessage( '$1' ); $msg->plaintextParams( $comment ); return $msg; } + return false; } + /** + * @return string|bool The comment or false if it could not be retrieved. + */ private function getRevisionEditSummary() { if ( !$this->userCan( RevisionRecord::DELETED_COMMENT ) ) { return false; @@ -79,9 +94,9 @@ class EchoCoreThanksPresentationModel extends EchoEventPresentationModel { /** * Get the comment/summary/excerpt of the log entry or revision, * for use in the notification body. - * @return string|bool The comment or false if it could not be retrieved. + * @return string */ - protected function getRevOrLogComment() { + protected function getRevOrLogComment(): string { if ( $this->event->getExtraParam( 'logid' ) ) { $logEntry = $this->getLogEntry(); if ( !$logEntry ) { @@ -91,18 +106,18 @@ class EchoCoreThanksPresentationModel extends EchoEventPresentationModel { $excerpt = $formatter->getPlainActionText(); // Turn wikitext into plaintext $excerpt = Linker::formatComment( $excerpt ); - $excerpt = Sanitizer::stripAllTags( $excerpt ); - return $excerpt; + return Sanitizer::stripAllTags( $excerpt ); } else { // Try to get edit summary. $summary = $this->getRevisionEditSummary(); - if ( $summary ) { + if ( $summary !== false && $summary !== '' ) { return $summary; } // Fallback on edit excerpt. if ( $this->userCan( RevisionRecord::DELETED_TEXT ) ) { - return $this->event->getExtraParam( 'excerpt', false ); + return $this->event->getExtraParam( 'excerpt', '' ); } + return ''; } } diff --git a/Thanks/includes/EchoFlowThanksPresentationModel.php b/Thanks/includes/EchoFlowThanksPresentationModel.php index eb5050b5..54195ae8 100644 --- a/Thanks/includes/EchoFlowThanksPresentationModel.php +++ b/Thanks/includes/EchoFlowThanksPresentationModel.php @@ -1,6 +1,12 @@ <?php -class EchoFlowThanksPresentationModel extends Flow\Notifications\FlowPresentationModel { +namespace MediaWiki\Extension\Thanks; + +use Flow\Notifications\FlowPresentationModel; +use RawMessage; +use Title; + +class EchoFlowThanksPresentationModel extends FlowPresentationModel { public function canRender() { return (bool)$this->event->getTitle(); } diff --git a/Thanks/includes/ThanksHooks.php b/Thanks/includes/Hooks.php index 34cadd69..784aa7f7 100644 --- a/Thanks/includes/ThanksHooks.php +++ b/Thanks/includes/Hooks.php @@ -1,9 +1,31 @@ <?php +namespace MediaWiki\Extension\Thanks; + +use ApiModuleManager; +use Article; +use CategoryPage; +use ConfigException; +use DatabaseLogEntry; +use DifferenceEngine; +use EchoEvent; +use ExtensionRegistry; +use Html; +use ImagePage; +use LogEventsList; +use LogPage; use MediaWiki\Linker\LinkTarget; use MediaWiki\MediaWikiServices; use MediaWiki\Revision\RevisionRecord; use MediaWiki\User\UserIdentity; +use MobileContext; +use OutputPage; +use RequestContext; +use Skin; +use SpecialPage; +use Title; +use User; +use WikiPage; /** * Hooks for Thanks extension @@ -11,23 +33,65 @@ use MediaWiki\User\UserIdentity; * @file * @ingroup Extensions */ -class ThanksHooks { +class Hooks { /** - * Handler for HistoryTools and DiffTools hooks. + * Handler for the HistoryTools hook * + * @param RevisionRecord $revisionRecord + * @param array &$links + * @param RevisionRecord|null $oldRevisionRecord + * @param UserIdentity $userIdentity + */ + public static function onHistoryTools( + RevisionRecord $revisionRecord, + array &$links, + ?RevisionRecord $oldRevisionRecord, + UserIdentity $userIdentity + ) { + self::insertThankLink( $revisionRecord, + $links, $userIdentity ); + } + + /** + * Handler for the DiffTools hook + * + * @param RevisionRecord $revisionRecord + * @param array &$links + * @param RevisionRecord|null $oldRevisionRecord + * @param UserIdentity $userIdentity + */ + public static function onDiffTools( + RevisionRecord $revisionRecord, + array &$links, + ?RevisionRecord $oldRevisionRecord, + UserIdentity $userIdentity + ) { + // Don't allow thanking for a diff that includes multiple revisions + // This does a query that is too expensive for history rows (T284274) + $previous = MediaWikiServices::getInstance() + ->getRevisionLookup() + ->getPreviousRevision( $revisionRecord ); + if ( $oldRevisionRecord && $previous && + $previous->getId() !== $oldRevisionRecord->getId() + ) { + return; + } + + self::insertThankLink( $revisionRecord, + $links, $userIdentity ); + } + + /** * Insert a 'thank' link into revision interface, if the user is allowed to thank. * * @param RevisionRecord $revisionRecord RevisionRecord object to add the thank link for * @param array &$links Links to add to the revision interface - * @param ?RevisionRecord $oldRevisionRecord RevisionRecord object of the "old" revision - * when viewing a diff * @param UserIdentity $userIdentity The user performing the thanks. */ - public static function insertThankLink( + private static function insertThankLink( RevisionRecord $revisionRecord, array &$links, - ?RevisionRecord $oldRevisionRecord, UserIdentity $userIdentity ) { $recipient = $revisionRecord->getUser(); @@ -36,28 +100,20 @@ class ThanksHooks { return; } - $recipient = User::newFromIdentity( $recipient ); - $previous = MediaWikiServices::getInstance() - ->getRevisionLookup() - ->getPreviousRevision( $revisionRecord ); - - $user = User::newFromIdentity( $userIdentity ); + $user = MediaWikiServices::getInstance()->getUserFactory()->newFromUserIdentity( $userIdentity ); // Don't let users thank themselves. // Exclude anonymous users. // Exclude users who are blocked. // Check whether bots are allowed to receive thanks. - // Check if there's other revisions between $prev and $oldRev - // (It supports discontinuous history created by Import or CX but - // prevents thanking diff across multiple revisions) - if ( !$user->isAnon() - && !$user->equals( $recipient ) + // Don't allow thanking for a diff that includes multiple revisions + if ( $userIdentity->isRegistered() + && !$userIdentity->equals( $recipient ) && !self::isUserBlockedFromTitle( $user, $revisionRecord->getPageAsLinkTarget() ) + && !self::isUserBlockedFromThanks( $user ) && !$user->isBlockedGlobally() && self::canReceiveThanks( $recipient ) && !$revisionRecord->isDeleted( RevisionRecord::DELETED_TEXT ) - && ( !$oldRevisionRecord || !$previous || - $previous->getId() === $oldRevisionRecord->getId() ) ) { $links[] = self::generateThankElement( $revisionRecord->getId(), @@ -71,7 +127,7 @@ class ThanksHooks { * Check whether the user is blocked from the title associated with the revision. * * This queries the replicas for a block; if 'no block' is incorrectly reported, it - * will be caught by ApiThank::dieOnBlockedUser when the user attempts to thank. + * will be caught by ApiThank::dieOnUserBlockedFromTitle when the user attempts to thank. * * @param User $user * @param LinkTarget $title @@ -83,19 +139,31 @@ class ThanksHooks { } /** + * Check whether the user is blocked from giving thanks. + * + * @param User $user + * @return bool + */ + private static function isUserBlockedFromThanks( User $user ) { + $block = $user->getBlock(); + return $block && ( $block->isSitewide() || $block->appliesToRight( 'thanks' ) ); + } + + /** * Check whether a user is allowed to receive thanks or not * - * @param User $user Recipient + * @param UserIdentity $user Recipient * @return bool true if allowed, false if not */ - protected static function canReceiveThanks( User $user ) { + protected static function canReceiveThanks( UserIdentity $user ) { global $wgThanksSendToBots; - if ( $user->isAnon() || $user->isSystemUser() ) { + $legacyUser = MediaWikiServices::getInstance()->getUserFactory()->newFromUserIdentity( $user ); + if ( !$user->isRegistered() || $legacyUser->isSystemUser() ) { return false; } - if ( !$wgThanksSendToBots && $user->isBot() ) { + if ( !$wgThanksSendToBots && $legacyUser->isBot() ) { return false; } @@ -107,12 +175,12 @@ class ThanksHooks { * Creates either a thank link or thanked span based on users session * @param int $id Revision or log ID to generate the thank element for. * @param User $sender User who sends thanks notification. - * @param User $recipient User who receives thanks notification. + * @param UserIdentity $recipient User who receives thanks notification. * @param string $type Either 'revision' or 'log'. * @return string */ protected static function generateThankElement( - $id, User $sender, User $recipient, $type = 'revision' + $id, User $sender, UserIdentity $recipient, $type = 'revision' ) { // Check if the user has already thanked for this revision or log entry. // Session keys are backwards-compatible, and are also used in the ApiCoreThank class. @@ -164,7 +232,7 @@ class ThanksHooks { * @param RequestContext $context RequestContext object */ public static function onPageHistoryBeforeList( $page, $context ) { - if ( $context->getUser()->isLoggedIn() ) { + if ( $context->getUser()->isRegistered() ) { static::addThanksModule( $context->getOutput() ); } } @@ -175,7 +243,7 @@ class ThanksHooks { * @param DifferenceEngine $diff DifferenceEngine object that's calling. */ public static function onDifferenceEngineViewHeader( $diff ) { - if ( $diff->getUser()->isLoggedIn() ) { + if ( $diff->getUser()->isRegistered() ) { static::addThanksModule( $diff->getOutput() ); } } @@ -199,7 +267,7 @@ class ThanksHooks { 'category' => 'edit-thank', 'group' => 'positive', 'section' => 'message', - 'presentation-model' => 'EchoCoreThanksPresentationModel', + 'presentation-model' => EchoCoreThanksPresentationModel::class, 'bundle' => [ 'web' => true, 'expandable' => true, @@ -211,7 +279,7 @@ class ThanksHooks { 'category' => 'edit-thank', 'group' => 'positive', 'section' => 'message', - 'presentation-model' => 'EchoFlowThanksPresentationModel', + 'presentation-model' => EchoFlowThanksPresentationModel::class, 'bundle' => [ 'web' => true, 'expandable' => true, @@ -221,8 +289,8 @@ class ThanksHooks { $icons['thanks'] = [ 'path' => [ - 'ltr' => 'Thanks/userTalk-constructive-ltr.svg', - 'rtl' => 'Thanks/userTalk-constructive-rtl.svg' + 'ltr' => 'Thanks/modules/userTalk-constructive-ltr.svg', + 'rtl' => 'Thanks/modules/userTalk-constructive-rtl.svg' ] ]; } @@ -257,8 +325,8 @@ class ThanksHooks { // New users get echo preferences set that are not the default settings for existing users. // Specifically, new users are opted into email notifications for thanks. if ( !$autocreated ) { - $user->setOption( 'echo-subscriptions-email-edit-thank', true ); - $user->saveSettings(); + $userOptionsManager = MediaWikiServices::getInstance()->getUserOptionsManager(); + $userOptionsManager->setOption( $user, 'echo-subscriptions-email-edit-thank', true ); } } @@ -277,8 +345,8 @@ class ThanksHooks { if ( $rev && ExtensionRegistry::getInstance()->isLoaded( 'MobileFrontend' ) && $rev->getUser() - && self::canReceiveThanks( User::newFromIdentity( $rev->getUser() ) ) - && $output->getUser()->isLoggedIn() + && self::canReceiveThanks( $rev->getUser() ) + && $output->getUser()->isRegistered() ) { $output->addModules( [ 'ext.thanks.mobilediff' ] ); @@ -300,6 +368,10 @@ class ThanksHooks { $types[] = 'thanks'; } + public static function onGetAllBlockActions( array &$actions ) { + $actions[ 'thanks' ] = 100; + } + /** * Handler for BeforePageDisplay. Inserts javascript to enhance thank * links from static urls to in-page dialogs along with reloading @@ -331,7 +403,7 @@ class ThanksHooks { $moduleManager->addModule( 'flowthank', 'action', - 'ApiFlowThank' + ApiFlowThank::class ); } } @@ -373,7 +445,7 @@ class ThanksHooks { * * @link https://www.mediawiki.org/wiki/Manual:Hooks/LogEventsListLineEnding * @param LogEventsList $page The log events list. - * @param string &$ret The lineending HTML, to modify. + * @param string &$ret The line ending HTML, to modify. * @param DatabaseLogEntry $entry The log entry. * @param string[] &$classes CSS classes to add to the line. * @param string[] &$attribs HTML attributes to add to the line. @@ -389,27 +461,27 @@ class ThanksHooks { $user->isAnon() || $entry->isDeleted( LogPage::DELETED_USER ) || self::isUserBlockedFromTitle( $user, $entry->getTarget() ) + || self::isUserBlockedFromThanks( $user ) || $user->isBlockedGlobally() ) { return; } - // Make sure this log type is whitelisted. - $logTypeWhitelist = MediaWikiServices::getInstance() + // Make sure this log type is allowed. + $allowedLogTypes = MediaWikiServices::getInstance() ->getMainConfig() - ->get( 'ThanksLogTypeWhitelist' ); - if ( !in_array( $entry->getType(), $logTypeWhitelist ) ) { + ->get( 'ThanksAllowedLogTypes' ); + if ( !in_array( $entry->getType(), $allowedLogTypes ) + && !in_array( $entry->getType() . '/' . $entry->getSubtype(), $allowedLogTypes ) ) { return; } // Don't thank if no recipient, // or if recipient is the current user or unable to receive thanks. // Don't check for deleted revision (this avoids extraneous queries from Special:Log). - $recipient = $entry->getPerformer(); - if ( !$recipient - || $recipient->getId() === $user->getId() - || !self::canReceiveThanks( $recipient ) - ) { + + $recipient = $entry->getPerformerIdentity(); + if ( $recipient->getId() === $user->getId() || !self::canReceiveThanks( $recipient ) ) { return; } diff --git a/Thanks/includes/SpecialThanks.php b/Thanks/includes/SpecialThanks.php index 4b8e9c3a..a38fb3af 100644 --- a/Thanks/includes/SpecialThanks.php +++ b/Thanks/includes/SpecialThanks.php @@ -1,23 +1,34 @@ <?php +namespace MediaWiki\Extension\Thanks; + +use ApiMain; +use ApiUsageException; +use DerivativeRequest; +use FormSpecialPage; +use HTMLForm; +use Linker; +use Status; +use User; + class SpecialThanks extends FormSpecialPage { /** * API result - * @var array $result + * @var array */ protected $result; /** * 'rev' for revision, 'log' for log entry, or 'flow' for Flow comment, * null if no ID is specified - * @var string|null $type + * @var string|null */ protected $type; /** * Revision or Log ID ('0' = invalid) or Flow UUID - * @var string $id + * @var string */ protected $id; @@ -90,7 +101,7 @@ class SpecialThanks extends FormSpecialPage { * Return the confirmation or error message. * @return string */ - protected function preText() { + protected function preHtml() { if ( $this->type === null ) { $msgKey = 'thanks-error-no-id-specified'; } elseif ( $this->type === 'rev' && $this->id === '0' ) { diff --git a/Thanks/includes/ThanksLogFormatter.php b/Thanks/includes/ThanksLogFormatter.php index a67991c0..efd83b98 100644 --- a/Thanks/includes/ThanksLogFormatter.php +++ b/Thanks/includes/ThanksLogFormatter.php @@ -1,5 +1,12 @@ <?php +namespace MediaWiki\Extension\Thanks; + +use LogFormatter; +use Message; +use Title; +use User; + /** * This class formats log entries for thanks */ diff --git a/Thanks/jsduck.json b/Thanks/jsduck.json index e3919b44..ca0a547d 100644 --- a/Thanks/jsduck.json +++ b/Thanks/jsduck.json @@ -5,7 +5,7 @@ "--warnings-exit-nonzero": true, "--builtin-classes": true, "--external": "jQuery.Promise", - "--warnings": ["-nodoc(class,public)", "-global"], + "--warnings": [ "-nodoc(class,public)", "-global" ], "--": [ "modules" ] diff --git a/Thanks/modules/.eslintrc.json b/Thanks/modules/.eslintrc.json new file mode 100644 index 00000000..408d7aaa --- /dev/null +++ b/Thanks/modules/.eslintrc.json @@ -0,0 +1,13 @@ +{ + "root": true, + "extends": [ + "wikimedia/client-es5", + "wikimedia/jquery", + "wikimedia/mediawiki", + "wikimedia/jsduck" + ], + "rules": { + "max-len": "off", + "no-jquery/no-global-selector": "off" + } +} diff --git a/Thanks/modules/ext.thanks.corethank.js b/Thanks/modules/ext.thanks.corethank.js index 748d7a3c..671b94c5 100644 --- a/Thanks/modules/ext.thanks.corethank.js +++ b/Thanks/modules/ext.thanks.corethank.js @@ -1,10 +1,12 @@ ( function () { 'use strict'; + var attrName = 'data-revision-id'; + function reloadThankedState() { $( 'a.mw-thanks-thank-link' ).each( function ( idx, el ) { var $thankLink = $( el ); - if ( mw.thanks.thanked.contains( $thankLink ) ) { + if ( mw.thanks.thanked.contains( $thankLink.attr( attrName ) ) ) { $thankLink.before( $( '<span>' ).addClass( 'mw-thanks-thank-confirmation' ).text( mw.msg( 'thanks-thanked', mw.user, $thankLink.data( 'recipient-gender' ) ) ) @@ -52,7 +54,7 @@ function () { $thankElement.before( mw.message( 'thanks-thanked', mw.user, $thankLink.data( 'recipient-gender' ) ).escaped() ); $thankElement.remove(); - mw.thanks.thanked.push( $thankLink ); + mw.thanks.thanked.push( $thankLink.attr( attrName ) ); }, // Fail function ( errorCode ) { diff --git a/Thanks/modules/ext.thanks.flowthank.js b/Thanks/modules/ext.thanks.flowthank.js index af4e1fb4..9af5d30c 100644 --- a/Thanks/modules/ext.thanks.flowthank.js +++ b/Thanks/modules/ext.thanks.flowthank.js @@ -1,11 +1,10 @@ ( function () { 'use strict'; - var $thankedLabel = $( '<span>' ) - .addClass( 'mw-thanks-flow-thanked mw-ui-quiet' ); + var $thankedLabel = $( '<span>' ).addClass( 'mw-thanks-flow-thanked mw-ui-quiet' ); - mw.thanks.thanked.cookieName = 'flow-thanked'; - mw.thanks.thanked.attrName = 'data-flow-id'; + var attrName = 'data-flow-id'; + var cookieName = 'flow-thanked'; function findPostAuthorFromThankLink( $thankLink ) { // We can't use 'closest' directly because .flow-author is a cousin @@ -17,7 +16,7 @@ $( 'a.mw-thanks-flow-thank-link' ).each( function ( idx, el ) { var $thankLink = $( el ), author = findPostAuthorFromThankLink( $thankLink ); - if ( mw.thanks.thanked.contains( $thankLink.closest( '.flow-post' ) ) ) { + if ( mw.thanks.thanked.contains( $thankLink.closest( '.flow-post' ).attr( attrName ), cookieName ) ) { mw.thanks.getUserGender( author ) .done( function ( recipientGender ) { $thankLink.before( @@ -36,7 +35,7 @@ function sendFlowThanks( $thankLink ) { ( new mw.Api() ).postWithToken( 'csrf', { action: 'flowthank', - postid: $thankLink.closest( '.flow-post' ).attr( mw.thanks.thanked.attrName ) + postid: $thankLink.closest( '.flow-post' ).attr( attrName ) } ) .then( // Success @@ -61,7 +60,7 @@ $thankUserLabel.append( mw.msg( 'thanks-button-thanked', mw.user, recipientGender ) ); - mw.thanks.thanked.push( $thankLink.closest( '.flow-post' ) ); + mw.thanks.thanked.push( $thankLink.closest( '.flow-post' ).attr( attrName ), cookieName ); $thankLink.before( $thankUserLabel ); $thankLink.remove(); } ); diff --git a/Thanks/modules/ext.thanks.mobilediff.js b/Thanks/modules/ext.thanks.mobilediff.js index 56764ff7..9328fe0c 100644 --- a/Thanks/modules/ext.thanks.mobilediff.js +++ b/Thanks/modules/ext.thanks.mobilediff.js @@ -72,7 +72,7 @@ new Icon( { name: 'userTalk', glyphPrefix: 'thanks', - hasText: true, + type: 'before', label: mw.msg( 'thanks-button-thank', mw.user, gender ) } ).$el.appendTo( $button ); diff --git a/Thanks/modules/ext.thanks.thank.js b/Thanks/modules/ext.thanks.thank.js index ca5c46dd..9e017d97 100644 --- a/Thanks/modules/ext.thanks.thank.js +++ b/Thanks/modules/ext.thanks.thank.js @@ -6,27 +6,45 @@ thanked: { maxHistory: 100, cookieName: 'thanks-thanked', - attrName: 'data-revision-id', - load: function () { - var cookie = mw.cookie.get( this.cookieName ); + /** + * Load thanked IDs from cookies + * + * @param {string} [cookieName] Cookie name to use, defaults to this.cookieName + * @return {string[]} Thanks IDs + */ + load: function ( cookieName ) { + var cookie = mw.cookie.get( cookieName || this.cookieName ); if ( cookie === null ) { return []; } return unescape( cookie ).split( ',' ); }, - push: function ( $thankLink ) { + /** + * Record as ID as having been thanked + * + * @param {string} id Thanked ID + * @param {string} [cookieName] Cookie name to use, defaults to this.cookieName + */ + push: function ( id, cookieName ) { var saved = this.load(); - saved.push( $thankLink.attr( this.attrName ) ); + saved.push( id ); if ( saved.length > this.maxHistory ) { // prevent forever growing saved = saved.slice( saved.length - this.maxHistory ); } - mw.cookie.set( this.cookieName, escape( saved.join( ',' ) ) ); + mw.cookie.set( cookieName || this.cookieName, escape( saved.join( ',' ) ) ); }, - contains: function ( $thankLink ) { - return this.load().indexOf( $thankLink.attr( this.attrName ) ) !== -1; + /** + * Check if an ID has already been thanked, according to the cookie + * + * @param {string} id Thanks ID + * @param {string} [cookieName] Cookie name to use, defaults to this.cookieName + * @return {boolean} ID has been thanked + */ + contains: function ( id, cookieName ) { + return this.load( cookieName ).indexOf( id ) !== -1; } }, diff --git a/Thanks/modules/jquery.findWithParent.js b/Thanks/modules/jquery.findWithParent.js index c8ec6001..e66e99d6 100644 --- a/Thanks/modules/jquery.findWithParent.js +++ b/Thanks/modules/jquery.findWithParent.js @@ -23,7 +23,7 @@ $context = $context.find( matches[ 1 ] ); } if ( matches[ 2 ].trim() ) { - $context = $context.closest( matches[ 2 ].substr( 1 ) ); + $context = $context.closest( matches[ 2 ].slice( 1 ) ); } selector = matches[ 3 ].trim(); } @@ -48,8 +48,8 @@ $elements = $(), self = this; - selectors.forEach( function ( selector ) { - $elements = $elements.add( jQueryFindWithParent( self, selector ) ); + selectors.forEach( function ( sel ) { + $elements = $elements.add( jQueryFindWithParent( self, sel ) ); } ); return $elements; diff --git a/Thanks/userTalk-constructive-ltr.svg b/Thanks/modules/userTalk-constructive-ltr.svg index 2717aa2e..2717aa2e 100644 --- a/Thanks/userTalk-constructive-ltr.svg +++ b/Thanks/modules/userTalk-constructive-ltr.svg diff --git a/Thanks/userTalk-constructive-rtl.svg b/Thanks/modules/userTalk-constructive-rtl.svg index 93871d47..93871d47 100644 --- a/Thanks/userTalk-constructive-rtl.svg +++ b/Thanks/modules/userTalk-constructive-rtl.svg diff --git a/Thanks/modules/userTalk-ltr.svg b/Thanks/modules/userTalk-ltr.svg index 53b80fdd..d41188cc 100644 --- a/Thanks/modules/userTalk-ltr.svg +++ b/Thanks/modules/userTalk-ltr.svg @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"> - <path d="M18 0H2a2 2 0 0 0-2 2v18l4-4h14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm-4 4a1.5 1.5 0 1 1-1.5 1.5A1.5 1.5 0 0 1 14 4zM6 4a1.5 1.5 0 1 1-1.5 1.5A1.5 1.5 0 0 1 6 4zm4 8c-2.61 0-4.83-.67-5.65-3h11.3c-.82 2.33-3.04 3-5.65 3z"/> + <path d="M18 0H2a2 2 0 0 0-2 2v18l4-4h14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm-4 4a1.5 1.5 0 1 1-1.5 1.5A1.5 1.5 0 0 1 14 4zM6 4a1.5 1.5 0 1 1-1.5 1.5A1.5 1.5 0 0 1 6 4zm4 8c-2.61 0-4.83-.67-5.65-3h11.3c-.82 2.33-3.04 3-5.65 3z"/> </svg> diff --git a/Thanks/modules/userTalk-rtl.svg b/Thanks/modules/userTalk-rtl.svg index d50868bc..3e8aa3be 100644 --- a/Thanks/modules/userTalk-rtl.svg +++ b/Thanks/modules/userTalk-rtl.svg @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"> - <path d="M0 2v12c0 1.1.9 2 2 2h14l4 4V2c0-1.1-.9-2-2-2H2C.9 0 0 .9 0 2zm7.5 3.5C7.5 6.3 6.8 7 6 7s-1.5-.7-1.5-1.5S5.2 4 6 4s1.5.7 1.5 1.5zm8 0c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5S13.2 4 14 4s1.5.7 1.5 1.5zM4.4 9h11.3c-.8 2.3-3 3-5.6 3s-4.9-.7-5.7-3z"/> -</svg>
\ No newline at end of file + <path d="M0 2v12c0 1.1.9 2 2 2h14l4 4V2c0-1.1-.9-2-2-2H2C.9 0 0 .9 0 2zm7.5 3.5C7.5 6.3 6.8 7 6 7s-1.5-.7-1.5-1.5S5.2 4 6 4s1.5.7 1.5 1.5zm8 0c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5S13.2 4 14 4s1.5.7 1.5 1.5zM4.4 9h11.3c-.8 2.3-3 3-5.6 3s-4.9-.7-5.7-3z"/> +</svg> diff --git a/Thanks/package-lock.json b/Thanks/package-lock.json index 6d04d111..9c894126 100644 --- a/Thanks/package-lock.json +++ b/Thanks/package-lock.json @@ -1,29 +1,3695 @@ { + "name": "Thanks", + "lockfileVersion": 2, "requires": true, - "lockfileVersion": 1, + "packages": { + "": { + "name": "Thanks", + "devDependencies": { + "eslint-config-wikimedia": "0.22.1", + "grunt": "1.5.3", + "grunt-banana-checker": "0.10.0", + "grunt-contrib-watch": "1.1.0", + "grunt-eslint": "24.0.0", + "svgo": "2.8.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.20.1.tgz", + "integrity": "sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ==", + "dev": true, + "dependencies": { + "comment-parser": "1.3.0", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "~2.2.3" + }, + "engines": { + "node": "^12 || ^14 || ^16 || ^17" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "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==", + "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==", + "dev": true + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@mdn/browser-compat-data": "^3.3.14" + } + }, + "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", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", + "dev": true, + "dependencies": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "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" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", + "dev": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/chalk/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ci-info": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", + "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", + "dev": true + }, + "node_modules/clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clean-regexp/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/comment-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz", + "integrity": "sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==", + "dev": true, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/continuable-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", + "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", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "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==", + "dev": true + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "dev": true, + "dependencies": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", + "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "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-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-wikimedia": { + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.22.1.tgz", + "integrity": "sha512-TtN+gWJrcW0i1sEu7vPE1tHpEilrMUuTxP6UK97Amvva/KDV9/tvRUifGhw0q5uBswp+HWgF12p8rq68hZqMbA==", + "dev": true, + "dependencies": { + "eslint": "^8.6.0", + "eslint-plugin-compat": "^4.0.2", + "eslint-plugin-es": "^4.1.0", + "eslint-plugin-jsdoc": "^37.7.1", + "eslint-plugin-json-es": "^1.5.4", + "eslint-plugin-mediawiki": "^0.3.0", + "eslint-plugin-mocha": "^9.0.0", + "eslint-plugin-no-jquery": "^2.7.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-qunit": "^7.2.0", + "eslint-plugin-unicorn": "^40.1.0", + "eslint-plugin-vue": "^8.4.1", + "eslint-plugin-wdio": "^7.4.2", + "eslint-plugin-yml": "^0.13.0" + } + }, + "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==", + "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", + "find-up": "^5.0.0", + "lodash.memoize": "4.1.2", + "semver": "7.3.5" + }, + "engines": { + "node": ">=9.x" + }, + "peerDependencies": { + "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "37.9.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.7.tgz", + "integrity": "sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g==", + "dev": true, + "dependencies": { + "@es-joy/jsdoccomment": "~0.20.1", + "comment-parser": "1.3.0", + "debug": "^4.3.3", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "regextras": "^0.8.0", + "semver": "^7.3.5", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": "^12 || ^14 || ^16 || ^17" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "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", + "integrity": "sha512-ehBHcCcJo4iViYx6vp3T+SmwzLIlVDzZNoVxN/txZIiPwDQ26mnYaN5iJ3imqN4l1b8z6rbxEH2kB9XDGxeU/w==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1" + }, + "peerDependencies": { + "eslint": ">= 7" + } + }, + "node_modules/eslint-plugin-json-es/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==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-plugin-mediawiki": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.3.0.tgz", + "integrity": "sha512-Lhyj2PSkhDzYSc1PNbURysY/WoqvY0brw558ZInT3erzf5KUlro18MTKFdV+nlht475ZgnsfHsgfg6Ut2w1SVg==", + "dev": true, + "dependencies": { + "eslint-plugin-vue": "^7.20.0", + "upath": "^2.0.1" + }, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-mediawiki/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/eslint-plugin-mediawiki/node_modules/eslint-plugin-vue": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz", + "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.1.0", + "natural-compare": "^1.4.0", + "semver": "^6.3.0", + "vue-eslint-parser": "^7.10.0" + }, + "engines": { + "node": ">=8.10" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-mediawiki/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-plugin-mediawiki/node_modules/espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-mediawiki/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-plugin-mediawiki/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-mediawiki/node_modules/vue-eslint-parser": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", + "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8.10" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-mocha": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-9.0.0.tgz", + "integrity": "sha512-d7knAcQj1jPCzZf3caeBIn3BnW6ikcvfz0kSqQpwPYcVGLoJV5sz0l0OJB2LR8I7dvTDbqq1oV6ylhSgzA10zg==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "ramda": "^0.27.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-mocha/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-plugin-mocha/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-no-jquery": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.7.0.tgz", + "integrity": "sha512-Aeg7dA6GTH1AcWLlBtWNzOU9efK5KpNi7b0EhBO0o0M+awyzguUUo8gF6hXGjQ9n5h8/uRtYv9zOqQkeC5CG0w==", + "dev": true, + "peerDependencies": { + "eslint": ">=2.3.0" + } + }, + "node_modules/eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "dependencies": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-plugin-node/node_modules/eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "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==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-qunit": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.2.0.tgz", + "integrity": "sha512-ebT6aOpmMj4vchG0hVw9Ukbutk/lgywrc8gc9w9hH2/4WjKqwMlyM7iVwqB7OAXv6gtQMJZuziT0wNjjymAuWA==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "requireindex": "^1.2.0" + }, + "engines": { + "node": "12.x || 14.x || >=16.0.0" + } + }, + "node_modules/eslint-plugin-qunit/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-plugin-qunit/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-unicorn": { + "version": "40.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-40.1.0.tgz", + "integrity": "sha512-y5doK2DF9Sr5AqKEHbHxjFllJ167nKDRU01HDcWyv4Tnmaoe9iNxMrBnaybZvWZUaE3OC5Unu0lNIevYamloig==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "ci-info": "^3.3.0", + "clean-regexp": "^1.0.0", + "eslint-utils": "^3.0.0", + "esquery": "^1.4.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.1.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.24", + "safe-regex": "^2.1.1", + "semver": "^7.3.5", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=7.32.0" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz", + "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^8.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-plugin-vue/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-wdio": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-7.4.2.tgz", + "integrity": "sha512-tkISFycJmRFMKsEjetRcAmWSHKJKnw5rKHDxfE7Ob3tF5lbmYlCLfNKH0UwanOpSdulpe52s3K+CBHSd6qUUNQ==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/eslint-plugin-yml": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.13.0.tgz", + "integrity": "sha512-rZvdnhe28jIbgSIZo3qYqkl9hKslyTDfMwqIGDzz873gxghzBw0yeFG+P7sMfOkFfpqwJzZy3IKe2cIiCp4FrA==", + "dev": true, + "dependencies": { + "debug": "^4.3.2", + "lodash": "^4.17.21", + "natural-compare": "^1.4.0", + "yaml-eslint-parser": "^0.5.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "dependencies": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "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=", + "dev": true + }, + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "dev": true, + "dependencies": { + "glob": "~5.0.0" + }, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/findup-sync/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "dev": true + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "dependencies": { + "globule": "^1.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/getobject": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.1.tgz", + "integrity": "sha512-tj18lLe+917AACr6BdVoUuHnBPTVd9BEJp1vxnMZ58ztNvuxz9Ufa+wf3g37tlGITH35jggwZ2d9lcgHJJgXfQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "dependencies": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/grunt": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.5.3.tgz", + "integrity": "sha512-mKwmo4X2d8/4c/BmcOETHek675uOqw0RuA/zy12jaspWqvTp4+ZeQF1W+OTpcbncnaBsfbQJ6l0l4j+Sn/GmaQ==", + "dev": true, + "dependencies": { + "dateformat": "~3.0.3", + "eventemitter2": "~0.4.13", + "exit": "~0.1.2", + "findup-sync": "~0.3.0", + "glob": "~7.1.6", + "grunt-cli": "~1.4.3", + "grunt-known-options": "~2.0.0", + "grunt-legacy-log": "~3.0.0", + "grunt-legacy-util": "~2.0.1", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.14.0", + "minimatch": "~3.0.4", + "mkdirp": "~1.0.4", + "nopt": "~3.0.6", + "rimraf": "~3.0.2" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/grunt-banana-checker": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.10.0.tgz", + "integrity": "sha512-Sx+P3zWjn4YmBCqzidnCEkYrACe1SLTIT8kKC6C3f21Hu6sm17U/V+re343cuK3U+iGZv15ux6bY+69buIbYrA==", + "dev": true, + "bin": { + "banana-checker": "src/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/grunt-cli": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", + "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==", + "dev": true, + "dependencies": { + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~4.0.1", + "v8flags": "~3.2.0" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-cli/node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/grunt-contrib-watch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", + "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==", + "dev": true, + "dependencies": { + "async": "^2.6.0", + "gaze": "^1.1.0", + "lodash": "^4.17.10", + "tiny-lr": "^1.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-contrib-watch/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/grunt-eslint": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.0.0.tgz", + "integrity": "sha512-WpTeBBFweyhMuPjGwRSQV9JFJ+EczIdlsc7Dd/1g78QVI1aZsk4g/H3e+3S5HEwsS1RKL2YZIrGj8hMLlBfN8w==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "eslint": "^8.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "peerDependencies": { + "grunt": ">=1" + } + }, + "node_modules/grunt-known-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz", + "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-legacy-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz", + "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", + "dev": true, + "dependencies": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.19" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/grunt-legacy-log-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz", + "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==", + "dev": true, + "dependencies": { + "chalk": "~4.1.0", + "lodash": "~4.17.19" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-legacy-util": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz", + "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==", + "dev": true, + "dependencies": { + "async": "~3.2.0", + "exit": "~0.1.2", + "getobject": "~1.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.21", + "underscore.string": "~3.3.5", + "which": "~2.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/http-parser-js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", + "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", + "dev": true + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz", + "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/liftup": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz", + "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==", + "dev": true, + "dependencies": { + "extend": "^3.0.2", + "findup-sync": "^4.0.0", + "fined": "^1.2.0", + "flagged-respawn": "^1.0.1", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.1", + "rechoir": "^0.7.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/liftup/node_modules/findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/livereload-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", + "dev": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "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==", + "dev": true + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "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==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ramda": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", + "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==", + "dev": true + }, + "node_modules/raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", + "dev": true, + "dependencies": { + "bytes": "1", + "string_decoder": "0.10" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regexp-tree": { + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", + "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", + "dev": true, + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regextras": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.8.0.tgz", + "integrity": "sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==", + "dev": true, + "engines": { + "node": ">=0.1.14" + } + }, + "node_modules/requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true, + "engines": { + "node": ">=0.10.5" + } + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-json-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", + "dev": true + }, + "node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "dependencies": { + "regexp-tree": "~0.1.1" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "node_modules/string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", + "dev": true + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/tiny-lr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "dev": true, + "dependencies": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + } + }, + "node_modules/tiny-lr/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/underscore.string": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", + "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", + "dev": true, + "dependencies": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vue-eslint-parser": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", + "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==", + "dev": true, + "dependencies": { + "debug": "^4.3.2", + "eslint-scope": "^7.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/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==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "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", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.5.0.tgz", + "integrity": "sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.0.0", + "lodash": "^4.17.21", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/yaml-eslint-parser/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==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.16.7" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -38,15 +3704,110 @@ "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } + } + }, + "@es-joy/jsdoccomment": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.20.1.tgz", + "integrity": "sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ==", + "dev": true, + "requires": { + "comment-parser": "1.3.0", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "~2.2.3" + } + }, + "@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } } } }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@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==", + "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==", + "dev": true + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -54,21 +3815,21 @@ "dev": true }, "acorn": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", - "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true }, "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true }, "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -77,16 +3838,10 @@ "uri-js": "^4.2.2" } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { @@ -107,28 +3862,10 @@ "sprintf-js": "~1.0.2" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, "array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", "dev": true }, "array-slice": { @@ -137,34 +3874,27 @@ "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "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==", + "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 + } + } }, "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", "dev": true }, "balanced-match": { @@ -173,61 +3903,6 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "body": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", @@ -240,6 +3915,12 @@ "safe-json-parse": "~1.0.1" } }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -251,67 +3932,55 @@ } }, "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.20.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "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" } }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, "bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", "dev": true }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "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==", + "dev": true + }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -360,39 +4029,29 @@ } } }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "ci-info": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", + "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", + "dev": true + }, + "clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "escape-string-regexp": "^1.0.5" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true } } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -414,16 +4073,16 @@ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, - "comment-parser": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.5.tgz", - "integrity": "sha512-iH9YA35ccw94nx5244GVkpyC9eVTsL71jZz6iz5w6RIf79JLF2AsXHXq9p6Oaohyl3sx5qSMnGsWUDFIAfWL4w==", + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true }, - "component-emitter": { + "comment-parser": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz", + "integrity": "sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==", "dev": true }, "concat-map": { @@ -438,10 +4097,10 @@ "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", "dev": true }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "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": { @@ -455,6 +4114,50 @@ "which": "^2.0.1" } }, + "css-select": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, "dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", @@ -462,67 +4165,20 @@ "dev": true }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", @@ -538,21 +4194,55 @@ "esutils": "^2.0.2" } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", "dev": true }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "domhandler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", "dev": true, "requires": { - "ansi-colors": "^4.1.1" + "domelementtype": "^2.2.0" } }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "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==", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, "error": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", @@ -563,79 +4253,161 @@ "xtend": "~4.0.0" } }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "eslint": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.4.0.tgz", - "integrity": "sha512-gU+lxhlPHu45H3JkEGgYhWhkR9wLHHEXC9FbWFnTlEkbKyZKWgWRLgf61E8zWmBuI6g5xKBph9ltg3NtZMVF8g==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", + "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.0", - "eslint-utils": "^2.0.0", - "eslint-visitor-keys": "^1.2.0", - "espree": "^7.1.0", - "esquery": "^1.2.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "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==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "eslint-config-wikimedia": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.16.2.tgz", - "integrity": "sha512-tQikCZT2k3z9UzvRDFAUOpVSwE/MEmKIUQQraFh9tgyPOmRY6fVkMONcFqdEuz8eyg2syW9MNvT2d1SGSMLfBg==", - "dev": true, - "requires": { - "eslint": "^7.2.0", - "eslint-plugin-es": "^3.0.1", - "eslint-plugin-jsdoc": "^27.1.2", - "eslint-plugin-json": "^2.1.1", - "eslint-plugin-mediawiki": "^0.2.5", - "eslint-plugin-mocha": "^7.0.1", - "eslint-plugin-no-jquery": "^2.4.1", + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.22.1.tgz", + "integrity": "sha512-TtN+gWJrcW0i1sEu7vPE1tHpEilrMUuTxP6UK97Amvva/KDV9/tvRUifGhw0q5uBswp+HWgF12p8rq68hZqMbA==", + "dev": true, + "requires": { + "eslint": "^8.6.0", + "eslint-plugin-compat": "^4.0.2", + "eslint-plugin-es": "^4.1.0", + "eslint-plugin-jsdoc": "^37.7.1", + "eslint-plugin-json-es": "^1.5.4", + "eslint-plugin-mediawiki": "^0.3.0", + "eslint-plugin-mocha": "^9.0.0", + "eslint-plugin-no-jquery": "^2.7.0", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-qunit": "^4.2.0", - "eslint-plugin-vue": "^6.2.2", - "eslint-plugin-wdio": "^6.0.12" + "eslint-plugin-qunit": "^7.2.0", + "eslint-plugin-unicorn": "^40.1.0", + "eslint-plugin-vue": "^8.4.1", + "eslint-plugin-wdio": "^7.4.2", + "eslint-plugin-yml": "^0.13.0" + } + }, + "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==", + "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", + "find-up": "^5.0.0", + "lodash.memoize": "4.1.2", + "semver": "7.3.5" } }, "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", "dev": true, "requires": { "eslint-utils": "^2.0.0", @@ -643,24 +4415,92 @@ } }, "eslint-plugin-jsdoc": { - "version": "27.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-27.1.2.tgz", - "integrity": "sha512-iWrG2ZK4xrxamoMkoyzgkukdmfqWc5Ncd6K+CnwRgxrbwjQQpzmt5Kl8GB0l12R0oUK2AF+9tGFJKNGzuyz79Q==", + "version": "37.9.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.7.tgz", + "integrity": "sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g==", + "dev": true, + "requires": { + "@es-joy/jsdoccomment": "~0.20.1", + "comment-parser": "1.3.0", + "debug": "^4.3.3", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "regextras": "^0.8.0", + "semver": "^7.3.5", + "spdx-expression-parse": "^3.0.1" + } + }, + "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", + "integrity": "sha512-ehBHcCcJo4iViYx6vp3T+SmwzLIlVDzZNoVxN/txZIiPwDQ26mnYaN5iJ3imqN4l1b8z6rbxEH2kB9XDGxeU/w==", "dev": true, "requires": { - "comment-parser": "^0.7.5", - "debug": "^4.1.1", - "jsdoctypeparser": "^6.1.0", - "lodash": "^4.17.15", - "regextras": "^0.7.1", - "semver": "^6.3.0", - "spdx-expression-parse": "^3.0.1" + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1" }, "dependencies": { - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "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==", + "dev": true + } + } + }, + "eslint-plugin-mediawiki": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.3.0.tgz", + "integrity": "sha512-Lhyj2PSkhDzYSc1PNbURysY/WoqvY0brw558ZInT3erzf5KUlro18MTKFdV+nlht475ZgnsfHsgfg6Ut2w1SVg==", + "dev": true, + "requires": { + "eslint-plugin-vue": "^7.20.0", + "upath": "^2.0.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "eslint-plugin-vue": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz", + "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==", + "dev": true, + "requires": { + "eslint-utils": "^2.1.0", + "natural-compare": "^1.4.0", + "semver": "^6.3.0", + "vue-eslint-parser": "^7.10.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "semver": { @@ -668,51 +4508,55 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true + }, + "vue-eslint-parser": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", + "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^6.3.0" + } } } }, - "eslint-plugin-json": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-2.1.1.tgz", - "integrity": "sha512-Ktsab8ij33V2KFLhh4alC1FYztdmbV32DeMZYYUCZm4kKLW1s4DrleKKgtbAHSJsmshCK5QGOZtfyc2r3jCRsg==", + "eslint-plugin-mocha": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-9.0.0.tgz", + "integrity": "sha512-d7knAcQj1jPCzZf3caeBIn3BnW6ikcvfz0kSqQpwPYcVGLoJV5sz0l0OJB2LR8I7dvTDbqq1oV6ylhSgzA10zg==", "dev": true, "requires": { - "lodash": "^4.17.15", - "vscode-json-languageservice": "^3.5.1" + "eslint-utils": "^3.0.0", + "ramda": "^0.27.1" }, "dependencies": { - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, - "eslint-plugin-mediawiki": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.2.5.tgz", - "integrity": "sha512-Xs5G4f1EnS6+9gFWkk28nWA9xcOEPx7YZEGsMYGLelZRAF+2DmV/PigF5N5VqoOkNBpwcbXqLD8wLfkg29aF8w==", - "dev": true, - "requires": { - "eslint-plugin-vue": "^6.2.2", - "upath": "^1.2.0" - } - }, - "eslint-plugin-mocha": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-7.0.1.tgz", - "integrity": "sha512-zkQRW9UigRaayGm/pK9TD5RjccKXSgQksNtpsXbG9b6L5I+jNx7m98VUbZ4w1H1ArlNA+K7IOH+z8TscN6sOYg==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "ramda": "^0.27.0" - } - }, "eslint-plugin-no-jquery": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.5.0.tgz", - "integrity": "sha512-RrQ380mUJJKdjgpQ/tZAJ3B3W1n3LbVmULooS2Pv5pUDcc5uVHVSJMTdUlsbvQyfo6hWP2LJ4FbOoDzENWcF7A==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.7.0.tgz", + "integrity": "sha512-Aeg7dA6GTH1AcWLlBtWNzOU9efK5KpNi7b0EhBO0o0M+awyzguUUo8gF6hXGjQ9n5h8/uRtYv9zOqQkeC5CG0w==", "dev": true }, "eslint-plugin-node": { @@ -729,11 +4573,15 @@ "semver": "^6.1.0" }, "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true + "eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + } }, "semver": { "version": "6.3.0", @@ -744,44 +4592,128 @@ } }, "eslint-plugin-qunit": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-4.2.0.tgz", - "integrity": "sha512-UibPK0fSshPTJauyitsHjACixpf+I5BEKqXi6WJ/WGhW31WwP7flSdBW8+Y9B46v05KYH6MJg/uZVIaiaHO5Cg==", - "dev": true + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.2.0.tgz", + "integrity": "sha512-ebT6aOpmMj4vchG0hVw9Ukbutk/lgywrc8gc9w9hH2/4WjKqwMlyM7iVwqB7OAXv6gtQMJZuziT0wNjjymAuWA==", + "dev": true, + "requires": { + "eslint-utils": "^3.0.0", + "requireindex": "^1.2.0" + }, + "dependencies": { + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-plugin-unicorn": { + "version": "40.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-40.1.0.tgz", + "integrity": "sha512-y5doK2DF9Sr5AqKEHbHxjFllJ167nKDRU01HDcWyv4Tnmaoe9iNxMrBnaybZvWZUaE3OC5Unu0lNIevYamloig==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "ci-info": "^3.3.0", + "clean-regexp": "^1.0.0", + "eslint-utils": "^3.0.0", + "esquery": "^1.4.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.1.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.24", + "safe-regex": "^2.1.1", + "semver": "^7.3.5", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } }, "eslint-plugin-vue": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz", - "integrity": "sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz", + "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==", "dev": true, "requires": { + "eslint-utils": "^3.0.0", "natural-compare": "^1.4.0", - "semver": "^5.6.0", - "vue-eslint-parser": "^7.0.0" + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^8.0.1" }, "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, "eslint-plugin-wdio": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-6.0.12.tgz", - "integrity": "sha512-qZqcU1Z0bqrqhYM1MbwIvKQxcQEGIOEclOjcveavvLZAN4ezpXb1Ogw3xu+UK13iArregJOMI6uUt+JkFmER1A==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-7.4.2.tgz", + "integrity": "sha512-tkISFycJmRFMKsEjetRcAmWSHKJKnw5rKHDxfE7Ob3tF5lbmYlCLfNKH0UwanOpSdulpe52s3K+CBHSd6qUUNQ==", "dev": true }, + "eslint-plugin-yml": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.13.0.tgz", + "integrity": "sha512-rZvdnhe28jIbgSIZo3qYqkl9hKslyTDfMwqIGDzz873gxghzBw0yeFG+P7sMfOkFfpqwJzZy3IKe2cIiCp4FrA==", + "dev": true, + "requires": { + "debug": "^4.3.2", + "lodash": "^4.17.21", + "natural-compare": "^1.4.0", + "yaml-eslint-parser": "^0.5.0" + } + }, "eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" } }, "eslint-utils": { @@ -800,14 +4732,22 @@ "dev": true }, "espree": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz", - "integrity": "sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "dev": true, "requires": { - "acorn": "^7.2.0", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.2.0" + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "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==", + "dev": true + } } }, "esprima": { @@ -817,35 +4757,27 @@ "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", - "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", - "dev": true - } } }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" } }, "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, "esutils": { @@ -866,56 +4798,6 @@ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -931,92 +4813,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -1045,35 +4841,31 @@ } }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, "findup-sync": { @@ -1120,20 +4912,19 @@ "dev": true }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "for-in": { @@ -1151,21 +4942,18 @@ "for-in": "^1.0.1" } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", @@ -1181,16 +4969,10 @@ "globule": "^1.0.0" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, "getobject": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", - "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.1.tgz", + "integrity": "sha512-tj18lLe+917AACr6BdVoUuHnBPTVd9BEJp1vxnMZ58ztNvuxz9Ufa+wf3g37tlGITH35jggwZ2d9lcgHJJgXfQ==", "dev": true }, "glob": { @@ -1208,12 +4990,12 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" } }, "global-modules": { @@ -1252,12 +5034,12 @@ } }, "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" } }, "globule": { @@ -1272,9 +5054,9 @@ } }, "grunt": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.2.1.tgz", - "integrity": "sha512-zgJjn9N56tScvRt/y0+1QA+zDBnKTrkpyeSBqQPLcZvbqTD/oyGMrdZQXmm6I3828s+FmPvxc3Xv+lgKFtudOw==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.5.3.tgz", + "integrity": "sha512-mKwmo4X2d8/4c/BmcOETHek675uOqw0RuA/zy12jaspWqvTp4+ZeQF1W+OTpcbncnaBsfbQJ6l0l4j+Sn/GmaQ==", "dev": true, "requires": { "dateformat": "~3.0.3", @@ -1282,10 +5064,10 @@ "exit": "~0.1.2", "findup-sync": "~0.3.0", "glob": "~7.1.6", - "grunt-cli": "~1.3.2", - "grunt-known-options": "~1.1.0", - "grunt-legacy-log": "~2.0.0", - "grunt-legacy-util": "~1.1.1", + "grunt-cli": "~1.4.3", + "grunt-known-options": "~2.0.0", + "grunt-legacy-log": "~3.0.0", + "grunt-legacy-util": "~2.0.1", "iconv-lite": "~0.4.13", "js-yaml": "~3.14.0", "minimatch": "~3.0.4", @@ -1295,9 +5077,9 @@ }, "dependencies": { "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -1307,55 +5089,40 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } - }, - "grunt-cli": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz", - "integrity": "sha512-8OHDiZZkcptxVXtMfDxJvmN7MVJNE8L/yIcPb4HB7TlyFD1kDvjHrb62uhySsU14wJx9ORMnTuhRMQ40lH/orQ==", - "dev": true, - "requires": { - "grunt-known-options": "~1.1.0", - "interpret": "~1.1.0", - "liftoff": "~2.5.0", - "nopt": "~4.0.1", - "v8flags": "~3.1.1" - }, - "dependencies": { - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - } - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } } } }, "grunt-banana-checker": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.9.0.tgz", - "integrity": "sha512-SqPiB6OazWqR8USL0NymtuT5Br3mD9WBBsM1rHC/3wIi2SrZNM6/+j9CIeuEM5oCn+AtO2Y0+rzzFyOdC9afAg==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.10.0.tgz", + "integrity": "sha512-Sx+P3zWjn4YmBCqzidnCEkYrACe1SLTIT8kKC6C3f21Hu6sm17U/V+re343cuK3U+iGZv15ux6bY+69buIbYrA==", "dev": true }, + "grunt-cli": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", + "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==", + "dev": true, + "requires": { + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~4.0.1", + "v8flags": "~3.2.0" + }, + "dependencies": { + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + } + } + }, "grunt-contrib-watch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", @@ -1369,97 +5136,76 @@ }, "dependencies": { "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "requires": { - "lodash": "^4.17.11" + "lodash": "^4.17.14" } - }, - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", - "dev": true } } }, "grunt-eslint": { - "version": "23.0.0", - "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-23.0.0.tgz", - "integrity": "sha512-QqHSAiGF08EVD7YlD4OSRWuLRaDvpsRdTptwy9WaxUXE+03mCLVA/lEaR6SHWehF7oUwIqCEjaNONeeeWlB4LQ==", + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.0.0.tgz", + "integrity": "sha512-WpTeBBFweyhMuPjGwRSQV9JFJ+EczIdlsc7Dd/1g78QVI1aZsk4g/H3e+3S5HEwsS1RKL2YZIrGj8hMLlBfN8w==", "dev": true, "requires": { - "chalk": "^4.0.0", - "eslint": "^7.0.0" + "chalk": "^4.1.2", + "eslint": "^8.0.1" } }, "grunt-known-options": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", - "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz", + "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==", "dev": true }, "grunt-legacy-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", - "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz", + "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", "dev": true, "requires": { "colors": "~1.1.2", - "grunt-legacy-log-utils": "~2.0.0", + "grunt-legacy-log-utils": "~2.1.0", "hooker": "~0.2.3", - "lodash": "~4.17.5" + "lodash": "~4.17.19" } }, "grunt-legacy-log-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", - "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz", + "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==", "dev": true, "requires": { - "chalk": "~2.4.1", - "lodash": "~4.17.10" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "chalk": "~4.1.0", + "lodash": "~4.17.19" } }, "grunt-legacy-util": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", - "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz", + "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==", "dev": true, "requires": { - "async": "~1.5.2", - "exit": "~0.1.1", - "getobject": "~0.1.0", + "async": "~3.2.0", + "exit": "~0.1.2", + "getobject": "~1.0.0", "hooker": "~0.2.3", - "lodash": "~4.17.10", - "underscore.string": "~3.3.4", - "which": "~1.3.0" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } + "lodash": "~4.17.21", + "underscore.string": "~3.3.5", + "which": "~2.0.2" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" } }, "has-flag": { @@ -1468,38 +5214,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -1515,6 +5229,12 @@ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", "dev": true }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, "http-parser-js": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", @@ -1531,15 +5251,15 @@ } }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -1552,6 +5272,12 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -1569,9 +5295,9 @@ "dev": true }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, "interpret": { @@ -1590,117 +5316,50 @@ "is-windows": "^1.0.1" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "builtin-modules": "^3.0.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "has": "^1.0.3" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-plain-object": { "version": "2.0.4", @@ -1735,12 +5394,6 @@ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -1769,10 +5422,16 @@ "esprima": "^4.0.0" } }, - "jsdoctypeparser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-6.1.0.tgz", - "integrity": "sha512-UCQBZ3xCUBv/PLfwKAJhp6jmGOSLFNKzrotXGNgbKhWvz27wPsCsVeP7gIcHPElQw2agBmynAitXqhxR58XAmA==", + "jsdoc-type-pratt-parser": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz", + "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "json-schema-traverse": { @@ -1787,12 +5446,6 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, - "jsonc-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.0.tgz", - "integrity": "sha512-b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA==", - "dev": true - }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -1809,57 +5462,84 @@ "type-check": "~0.4.0" } }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "liftup": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz", + "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==", "dev": true, "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", + "extend": "^3.0.2", + "findup-sync": "^4.0.0", + "fined": "^1.2.0", + "flagged-respawn": "^1.0.1", "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" + "object.map": "^1.0.1", + "rechoir": "^0.7.0", + "resolve": "^1.19.0" }, "dependencies": { "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", "dev": true, "requires": { "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", "resolve-dir": "^1.0.1" } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } } } }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "livereload-js": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", "dev": true }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "make-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", @@ -1875,80 +5555,42 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true }, "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "brace-expansion": "^1.1.7" } }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true }, "ms": { "version": "2.1.2", @@ -1956,31 +5598,18 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "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==", + "dev": true + }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -1990,52 +5619,41 @@ "abbrev": "1" } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "dev": true, "requires": { - "isobject": "^3.0.0" + "boolbase": "^1.0.0" } }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, "object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", @@ -2112,6 +5730,30 @@ "os-tmpdir": "^1.0.0" } }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -2132,21 +5774,33 @@ "path-root": "^0.1.1" } }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "dev": true }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, @@ -2157,9 +5811,9 @@ "dev": true }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-root": { @@ -2177,24 +5831,40 @@ "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", "dev": true }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -2208,9 +5878,9 @@ "dev": true }, "ramda": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.0.tgz", - "integrity": "sha512-pVzZdDpWwWqEVVLshWUHjNwuVP7SfcmPraYuqocJp1yo2U1R7P+5QAfDhdItkuoGqIBnBYrtPp7rEPqDn9HlZA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", + "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==", "dev": true }, "raw-body": { @@ -2223,56 +5893,124 @@ "string_decoder": "0.10" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { - "resolve": "^1.1.6" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "resolve": "^1.9.0" } }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "regexp-tree": { + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", + "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", "dev": true }, - "regextras": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz", - "integrity": "sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==", + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "regextras": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.8.0.tgz", + "integrity": "sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==", "dev": true }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", "dev": true }, "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-dir": { @@ -2291,22 +6029,10 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" @@ -2319,12 +6045,12 @@ "dev": true }, "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", "dev": true, "requires": { - "ret": "~0.1.10" + "regexp-tree": "~0.1.1" } }, "safer-buffer": { @@ -2334,32 +6060,12 @@ "dev": true }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "lru-cache": "^6.0.0" } }, "shebang-command": { @@ -2377,164 +6083,22 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, "spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", @@ -2552,46 +6116,28 @@ } }, "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true }, "string-template": { "version": "0.2.1", @@ -2599,53 +6145,28 @@ "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", "dev": true }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "ansi-regex": "^5.0.1" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "min-indent": "^1.0.0" } }, "strip-json-comments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", - "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { @@ -2657,16 +6178,25 @@ "has-flag": "^3.0.0" } }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" } }, "text-table": { @@ -2700,46 +6230,13 @@ } } }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "^7.0.0" } }, "type-check": { @@ -2752,9 +6249,9 @@ } }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, "unc-path-regex": { @@ -2773,85 +6270,21 @@ "util-deprecate": "^1.0.2" } }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", "dev": true }, "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -2859,86 +6292,49 @@ "dev": true }, "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "v8flags": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", - "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", "dev": true, "requires": { "homedir-polyfill": "^1.0.1" } }, - "vscode-json-languageservice": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.7.0.tgz", - "integrity": "sha512-nGLqcBhTjdfkl8Dz9sYGK/ZCTjscYFoIjYw+qqkWB+vyNfM0k/AyIoT73DQvB/PArteCKjEVfQUF72GRZEDSbQ==", + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "jsonc-parser": "^2.2.1", - "vscode-languageserver-textdocument": "^1.0.1", - "vscode-languageserver-types": "^3.15.1", - "vscode-nls": "^4.1.2", - "vscode-uri": "^2.1.2" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "vscode-languageserver-textdocument": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz", - "integrity": "sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==", - "dev": true - }, - "vscode-languageserver-types": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz", - "integrity": "sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==", - "dev": true - }, - "vscode-nls": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-4.1.2.tgz", - "integrity": "sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==", - "dev": true - }, - "vscode-uri": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz", - "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==", - "dev": true - }, "vue-eslint-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.1.0.tgz", - "integrity": "sha512-Kr21uPfthDc63nDl27AGQEhtt9VrZ9nkYk/NTftJ2ws9XiJwzJJCnCr3AITQ2jpRMA0XPGDECxYH8E027qMK9Q==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "eslint-scope": "^5.0.0", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.2.1", - "esquery": "^1.0.1", - "lodash": "^4.17.15" + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", + "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==", + "dev": true, + "requires": { + "debug": "^4.3.2", + "eslint-scope": "^7.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.5" }, "dependencies": { - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "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==", "dev": true } } @@ -2954,9 +6350,9 @@ } }, "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, "which": { @@ -2980,20 +6376,48 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yaml-eslint-parser": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.5.0.tgz", + "integrity": "sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.0.0", + "lodash": "^4.17.21", + "yaml": "^1.10.2" + }, + "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==", + "dev": true + } + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/Thanks/package.json b/Thanks/package.json index 6d22960d..dc1752ef 100644 --- a/Thanks/package.json +++ b/Thanks/package.json @@ -1,13 +1,16 @@ { + "name": "Thanks", "private": true, "scripts": { + "minify:svg": "svgo --config=.svgo.config.js --quiet --folder modules/", "test": "grunt test" }, "devDependencies": { - "eslint-config-wikimedia": "0.16.2", - "grunt": "1.2.1", - "grunt-banana-checker": "0.9.0", + "eslint-config-wikimedia": "0.22.1", + "grunt": "1.5.3", + "grunt-banana-checker": "0.10.0", "grunt-contrib-watch": "1.1.0", - "grunt-eslint": "23.0.0" + "grunt-eslint": "24.0.0", + "svgo": "2.8.0" } } diff --git a/Thanks/scripts/pre-commit b/Thanks/scripts/pre-commit index 7badd1fe..5cb9c36c 100755 --- a/Thanks/scripts/pre-commit +++ b/Thanks/scripts/pre-commit @@ -1,11 +1,8 @@ #!/bin/bash -# Enable all the git hooks by executing the following from the project root directory -# $ make installhooks -# # Code from https://gist.github.com/holysugar/1318698 , simpler than # http://stackoverflow.com/a/6262715/451712 -# Work out location of Flow/scripts/ directory +# Work out location of Thanks/scripts/ directory dir=$(dirname $(php -r "echo realpath('$0'), \"\\n\";")) # Move to the project root cd $(dirname $dir) diff --git a/Thanks/tests/phpunit/ApiCoreThankIntegrationTest.php b/Thanks/tests/phpunit/ApiCoreThankIntegrationTest.php index de2eeb2c..7a317771 100644 --- a/Thanks/tests/phpunit/ApiCoreThankIntegrationTest.php +++ b/Thanks/tests/phpunit/ApiCoreThankIntegrationTest.php @@ -6,7 +6,7 @@ use MediaWiki\Revision\SlotRecord; /** * Integration tests for the Thanks API module * - * @covers ApiCoreThank + * @covers \MediaWiki\Extension\Thanks\ApiCoreThank * * @group Thanks * @group Database @@ -32,7 +32,7 @@ class ApiCoreThankIntegrationTest extends ApiTestCase { */ protected $logId; - public function setUp() : void { + public function setUp(): void { parent::setUp(); $this->uploader = $this->getTestUser( [ 'uploader' ] )->getUser(); @@ -41,9 +41,12 @@ class ApiCoreThankIntegrationTest extends ApiTestCase { $pageName = __CLASS__; $content = __CLASS__; $pageTitle = Title::newFromText( $pageName ); + + $wikiPageFactory = $this->getServiceContainer()->getWikiPageFactory(); + // If the page already exists, delete it, otherwise our edit will not result in a new revision if ( $pageTitle->exists() ) { - $wikiPage = WikiPage::factory( $pageTitle ); + $wikiPage = $wikiPageFactory->newFromTitle( $pageTitle ); $wikiPage->doDeleteArticleReal( '', $user ); } $result = $this->editPage( $pageName, $content, 'Summary', NS_MAIN, $user ); @@ -55,7 +58,7 @@ class ApiCoreThankIntegrationTest extends ApiTestCase { // Create a 2nd page and delete it, so we can thank for the log entry. $pageToDeleteTitle = Title::newFromText( 'Page to delete' ); - $pageToDelete = WikiPage::factory( $pageToDeleteTitle ); + $pageToDelete = $wikiPageFactory->newFromTitle( $pageToDeleteTitle ); $updater = $pageToDelete->newPageUpdater( $user ); $updater->setcontent( @@ -97,11 +100,10 @@ class ApiCoreThankIntegrationTest extends ApiTestCase { } public function testLogRequestWithDisallowedLogType() { - // Empty the log-type whitelist. - $this->setMwGlobals( [ 'wgThanksLogTypeWhitelist' => [] ] ); + $this->setMwGlobals( [ 'wgThanksAllowedLogTypes' => [] ] ); $this->expectException( ApiUsageException::class ); $this->expectExceptionMessage( - "Log type 'delete' is not in the whitelist of permitted log types." ); + "Log type 'delete' is not in the list of permitted log types." ); $this->doApiRequestWithToken( [ 'action' => 'thank', 'log' => $this->logId, diff --git a/Thanks/tests/phpunit/ApiCoreThankUnitTest.php b/Thanks/tests/phpunit/ApiCoreThankUnitTest.php index 00a2b411..16ad3bef 100644 --- a/Thanks/tests/phpunit/ApiCoreThankUnitTest.php +++ b/Thanks/tests/phpunit/ApiCoreThankUnitTest.php @@ -1,6 +1,8 @@ <?php use MediaWiki\Block\DatabaseBlock; +use MediaWiki\Extension\Thanks\ApiCoreThank; +use MediaWiki\User\UserIdentityValue; /** * Unit tests for the Thanks API module @@ -10,18 +12,16 @@ use MediaWiki\Block\DatabaseBlock; * * @author Addshore */ -class ApiCoreThankUnitTest extends MediaWikiTestCase { - - protected static $moduleName = 'thank'; +class ApiCoreThankUnitTest extends MediaWikiIntegrationTestCase { protected function getModule() { - return new ApiCoreThank( new ApiMain(), self::$moduleName ); + return new ApiCoreThank( new ApiMain(), 'thank' ); } private function createBlock( $options ) { $options = array_merge( [ 'address' => 'Test user', - 'by' => 1, + 'by' => new UserIdentityValue( 1, 'TestUser' ), 'reason' => __METHOD__, 'timestamp' => wfTimestamp( TS_MW ), 'expiry' => 'infinity', @@ -31,8 +31,8 @@ class ApiCoreThankUnitTest extends MediaWikiTestCase { /** * @dataProvider provideDieOnBadUser - * @covers ApiThank::dieOnBadUser - * @covers ApiThank::dieOnSitewideBlockedUser + * @covers \MediaWiki\Extension\Thanks\ApiThank::dieOnBadUser + * @covers \MediaWiki\Extension\Thanks\ApiThank::dieOnUserBlockedFromThanks */ public function testDieOnBadUser( $user, $dieMethod, $expectedError ) { $module = $this->getModule(); @@ -52,10 +52,10 @@ class ApiCoreThankUnitTest extends MediaWikiTestCase { public function provideDieOnBadUser() { $testCases = []; - $mockUser = $this->createMock( 'User' ); + $mockUser = $this->createMock( User::class ); $mockUser->expects( $this->once() ) ->method( 'isAnon' ) - ->will( $this->returnValue( true ) ); + ->willReturn( true ); $testCases[ 'anon' ] = [ $mockUser, @@ -63,13 +63,13 @@ class ApiCoreThankUnitTest extends MediaWikiTestCase { 'Anonymous users cannot send thanks' ]; - $mockUser = $this->createMock( 'User' ); + $mockUser = $this->createMock( User::class ); $mockUser->expects( $this->once() ) ->method( 'isAnon' ) - ->will( $this->returnValue( false ) ); + ->willReturn( false ); $mockUser->expects( $this->once() ) ->method( 'pingLimiter' ) - ->will( $this->returnValue( true ) ); + ->willReturn( true ); $testCases[ 'ping' ] = [ $mockUser, @@ -77,21 +77,19 @@ class ApiCoreThankUnitTest extends MediaWikiTestCase { "You've exceeded your rate limit. Please wait some time and try again" ]; - $mockUser = $this->createMock( 'User' ); + $mockUser = $this->createMock( User::class ); $mockUser->expects( $this->once() ) ->method( 'isAnon' ) - ->will( $this->returnValue( false ) ); + ->willReturn( false ); $mockUser->expects( $this->once() ) ->method( 'pingLimiter' ) - ->will( $this->returnValue( false ) ); + ->willReturn( false ); $mockUser->expects( $this->once() ) ->method( 'isBlockedGlobally' ) - ->will( $this->returnValue( true ) ); + ->willReturn( true ); $mockUser->expects( $this->once() ) ->method( 'getGlobalBlock' ) - ->will( $this->returnValue( - $this->createBlock( [] ) - ) ); + ->willReturn( $this->createBlock( [] ) ); $testCases[ 'globally blocked' ] = [ $mockUser, @@ -99,31 +97,27 @@ class ApiCoreThankUnitTest extends MediaWikiTestCase { 'You have been blocked from editing' ]; - $mockUser = $this->createMock( 'User' ); + $mockUser = $this->createMock( User::class ); $mockUser->expects( $this->once() ) ->method( 'getBlock' ) - ->will( $this->returnValue( - $this->createBlock( [] ) - ) ); + ->willReturn( $this->createBlock( [] ) ); $testCases[ 'sitewide blocked' ] = [ $mockUser, - 'dieOnSitewideBlockedUser', + 'dieOnUserBlockedFromThanks', 'You have been blocked from editing' ]; - $mockUser = $this->createMock( 'User' ); + $mockUser = $this->createMock( User::class ); $mockUser->expects( $this->once() ) ->method( 'getBlock' ) - ->will( $this->returnValue( - $this->createBlock( [ - 'sitewide' => false - ] ) - ) ); + ->willReturn( + $this->createBlock( [ 'sitewide' => false ] ) + ); $testCases[ 'partial blocked' ] = [ $mockUser, - 'dieOnSitewideBlockedUser', + 'dieOnUserBlockedFromThanks', false ]; diff --git a/Thanks/tests/phpunit/ApiFlowThankIntegrationTest.php b/Thanks/tests/phpunit/ApiFlowThankIntegrationTest.php index b8185c8e..3298236f 100644 --- a/Thanks/tests/phpunit/ApiFlowThankIntegrationTest.php +++ b/Thanks/tests/phpunit/ApiFlowThankIntegrationTest.php @@ -8,7 +8,7 @@ use Flow\Model\Workflow; /** * Integration tests for the Thanks Flow api module * - * @covers ApiFlowThank + * @covers \MediaWiki\Extension\Thanks\ApiFlowThank * * @group Thanks * @group Database @@ -35,7 +35,7 @@ class ApiFlowThankIntegrationTest extends ApiTestCase { /** @var PostRevision */ public $postByMe; - public function setUp() : void { + public function setUp(): void { parent::setUp(); if ( !ExtensionRegistry::getInstance()->isLoaded( 'Flow' ) ) { @@ -61,34 +61,31 @@ class ApiFlowThankIntegrationTest extends ApiTestCase { ], [], 1 ); // Set up mock classes in Container. - $mockLoader = $this->getMockBuilder( '\Flow\Repository\RootPostLoader' ) + $mockLoader = $this->getMockBuilder( \Flow\Repository\RootPostLoader::class ) ->disableOriginalConstructor() ->getMock(); - $that = $this; $mockLoader->expects( $this->any() ) ->method( 'getWithRoot' ) - ->will( $this->returnCallback( - // Hard to work with class variables or callbacks, - // using anonymous function instead. - function ( $postId ) use ( $that ) { + ->willReturnCallback( + function ( $postId ) { switch ( $postId ) { - case $that->postByOtherUser->getPostId(): + case $this->postByOtherUser->getPostId(): return [ - 'post' => $that->postByOtherUser, - 'root' => $that->topic + 'post' => $this->postByOtherUser, + 'root' => $this->topic ]; - case $that->postByMe->getPostId(): + case $this->postByMe->getPostId(): return [ - 'post' => $that->postByMe, - 'root' => $that->topic + 'post' => $this->postByMe, + 'root' => $this->topic ]; default: return [ 'post' => null ]; } } - ) ); + ); $mockWorkflow = $this->createMock( Workflow::class ); $mockWorkflow->expects( $this->any() ) @@ -98,21 +95,21 @@ class ApiFlowThankIntegrationTest extends ApiTestCase { ->method( 'getArticleTitle' ) ->willReturn( $this->createMock( Title::class ) ); - $mockStorage = $this->getMockBuilder( '\Flow\Data\ManagerGroup' ) + $mockStorage = $this->getMockBuilder( \Flow\Data\ManagerGroup::class ) ->disableOriginalConstructor() ->getMock(); $mockStorage->expects( $this->any() ) ->method( 'get' ) - ->will( $this->returnValue( $mockWorkflow ) ); + ->willReturn( $mockWorkflow ); - $mockTemplating = $this->getMockBuilder( 'Flow\Templating' ) + $mockTemplating = $this->getMockBuilder( \Flow\Templating::class ) ->disableOriginalConstructor() ->getMock(); $mockTemplating->expects( $this->any() ) ->method( 'getContent' ) - ->will( $this->returnValue( 'test content' ) ); + ->willReturn( 'test content' ); Flow\Container::reset(); $container = Flow\Container::getContainer(); @@ -149,7 +146,7 @@ class ApiFlowThankIntegrationTest extends ApiTestCase { public function testRequestWithInvalidId() { $this->expectException( ApiUsageException::class ); $this->expectExceptionMessage( 'Post ID is not valid' ); - list( $result,, ) = $this->doApiRequestWithToken( [ + $this->doApiRequestWithToken( [ 'action' => 'flowthank', 'postid' => UUID::create( '42' )->getAlphadecimal(), ] ); @@ -158,7 +155,7 @@ class ApiFlowThankIntegrationTest extends ApiTestCase { public function testRequestWithOwnId() { $this->expectException( ApiUsageException::class ); $this->expectExceptionMessage( 'You cannot thank yourself' ); - list( $result,, ) = $this->doApiRequestWithToken( [ + $this->doApiRequestWithToken( [ 'action' => 'flowthank', 'postid' => $this->postByMe->getPostId()->getAlphadecimal(), ], null, $this->meUser ); @@ -178,7 +175,7 @@ class ApiFlowThankIntegrationTest extends ApiTestCase { * With no arguments tossed in, default data (resembling a newly-created * topic title) will be returned. * - * @param array[optional] $row DB row data (only specify override columns) + * @param array $row DB row data (only specify override columns) * @return array */ protected function generateRow( array $row = [] ) { @@ -195,7 +192,7 @@ class ApiFlowThankIntegrationTest extends ApiTestCase { 'rev_type' => 'post', 'rev_user_id' => $userId, 'rev_user_ip' => $userIp, - 'rev_user_wiki' => wfWikiID(), + 'rev_user_wiki' => WikiMap::getCurrentWikiId(), 'rev_parent_id' => null, 'rev_flags' => 'html', 'rev_content' => 'test content', @@ -218,7 +215,7 @@ class ApiFlowThankIntegrationTest extends ApiTestCase { 'tree_orig_create_time' => wfTimestampNow(), 'tree_orig_user_id' => $userId, 'tree_orig_user_ip' => $userIp, - 'tree_orig_user_wiki' => wfWikiID(), + 'tree_orig_user_wiki' => WikiMap::getCurrentWikiId(), 'tree_parent_id' => null, ]; } @@ -232,9 +229,9 @@ class ApiFlowThankIntegrationTest extends ApiTestCase { * With no arguments tossed in, a default revision (resembling a newly- * created topic title) will be returned. * - * @param array[optional] $row DB row data (only specify override columns) - * @param array[optional] $children Array of child PostRevision objects - * @param int[optional] $depth Depth of the PostRevision object + * @param array $row DB row data (only specify override columns) + * @param array $children Array of child PostRevision objects + * @param int $depth Depth of the PostRevision object * @return PostRevision */ protected function generateObject( array $row = [], $children = [], $depth = 0 ) { diff --git a/Thanks/tests/qunit/.eslintrc.json b/Thanks/tests/qunit/.eslintrc.json index 348a1b7f..88c51fee 100644 --- a/Thanks/tests/qunit/.eslintrc.json +++ b/Thanks/tests/qunit/.eslintrc.json @@ -1,6 +1,6 @@ { "extends": [ - "wikimedia/qunit", - "../../.eslintrc.json" + "../../modules/.eslintrc.json", + "wikimedia/qunit" ] } diff --git a/Thanks/tests/qunit/test_ext.thanks.mobilediff.js b/Thanks/tests/qunit/test_ext.thanks.mobilediff.js index 0c0e6413..bc9cb43c 100644 --- a/Thanks/tests/qunit/test_ext.thanks.mobilediff.js +++ b/Thanks/tests/qunit/test_ext.thanks.mobilediff.js @@ -1,15 +1,15 @@ -( function () { - QUnit.module( 'Thanks mobilediff' ); +QUnit.module( 'Thanks mobilediff', function () { QUnit.test( 'render button for logged in users', function ( assert ) { - var $container = $( '<div>' ), - $user = $( '<div>' ).data( 'user-name', 'jon' ) - .data( 'revision-id', 1 ) - .data( 'user-gender', 'male' ); + var $container = $( '<div>' ); + var $user = $( '<div>' ) + .data( 'user-name', 'jon' ) + .data( 'revision-id', 1 ) + .data( 'user-gender', 'male' ); // eslint-disable-next-line no-underscore-dangle mw.thanks._mobileDiffInit( $user, $container ); assert.strictEqual( $container.find( '.mw-ui-button' ).length, 1, 'Thanks button was created.' ); } ); -}() ); +} ); diff --git a/Thanks/tests/qunit/test_ext.thanks.thank.js b/Thanks/tests/qunit/test_ext.thanks.thank.js index c393267f..315cf797 100644 --- a/Thanks/tests/qunit/test_ext.thanks.thank.js +++ b/Thanks/tests/qunit/test_ext.thanks.thank.js @@ -1,29 +1,30 @@ QUnit.module( 'Thanks thank', QUnit.newMwEnvironment( { - setup: function () { + beforeEach: function () { this.server = this.sandbox.useFakeServer(); this.server.respondImmediately = true; } } ) ); QUnit.test( 'thanked cookie', function ( assert ) { - var $thankLink = $( '<a ' + mw.thanks.thanked.attrName + '="8" />' ), - $thankLinkNonExisting = $( '<a ' + mw.thanks.thanked.attrName + '="13" />' ); - mw.cookie.set( mw.thanks.thanked.cookieName, escape( '17,11' ) ); + var thankId = '8'; + var thankIdNonExisting = '13'; - assert.deepEqual( mw.thanks.thanked.load(), [ '17', '11' ], 'gets cookie with two values' ); + mw.cookie.set( mw.thanks.thanked.cookieName, escape( '17,11' ) ); + assert.deepEqual( mw.thanks.thanked.load(), [ '17', '11' ], 'cookie with two values' ); - // Makes the 0 100th element + // Add a 0 the 100th element // eslint-disable-next-line no-restricted-properties mw.cookie.set( mw.thanks.thanked.cookieName, escape( '9,'.repeat( mw.thanks.thanked.maxHistory - 1 ) + '0' ) ); + assert.strictEqual( mw.thanks.thanked.load()[ mw.thanks.thanked.maxHistory - 1 ], '0', 'load ids from a cookie' ); - assert.strictEqual( mw.thanks.thanked.load()[ mw.thanks.thanked.maxHistory - 1 ], '0', 'loads ' + mw.thanks.thanked.maxHistory + ' ids from a cookie' ); - mw.thanks.thanked.push( $thankLink ); - assert.strictEqual( mw.thanks.thanked.load().length, mw.thanks.thanked.maxHistory, 'cuts a cookie to ' + mw.thanks.thanked.maxHistory + ' values' ); - assert.strictEqual( mw.thanks.thanked.load()[ mw.thanks.thanked.maxHistory - 1 ], $thankLink.attr( mw.thanks.thanked.attrName ), 'adds a new value to cookie to the end' ); + mw.thanks.thanked.push( thankId ); + assert.strictEqual( mw.thanks.thanked.load().length, mw.thanks.thanked.maxHistory, 'cut to maxHistory' ); + assert.strictEqual( mw.thanks.thanked.load()[ mw.thanks.thanked.maxHistory - 1 ], thankId, 'add to the end' ); - assert.strictEqual( mw.thanks.thanked.contains( $thankLink ), true, 'cookie contains id and returns true' ); - assert.strictEqual( mw.thanks.thanked.contains( $thankLinkNonExisting ), false, 'cookie does not contains id and returns false' ); + assert.strictEqual( mw.thanks.thanked.contains( thankId ), true, 'cookie contains id' ); + assert.strictEqual( mw.thanks.thanked.contains( thankIdNonExisting ), false, 'cookie does not contain id' ); } ); + QUnit.test( 'gets user gender', function ( assert ) { this.server.respond( /user1/, function ( request ) { request.respond( 200, { 'Content-Type': 'application/json' }, @@ -41,22 +42,21 @@ QUnit.test( 'gets user gender', function ( assert ) { ); } ); - // eslint-disable-next-line vars-on-top - var maleUser = mw.thanks.getUserGender( 'user1' ), - unknownGenderUser = mw.thanks.getUserGender( 'user2' ), - nonExistingUser = mw.thanks.getUserGender( 'user3' ), - callbackDone = assert.async( 3 ); + var maleUser = mw.thanks.getUserGender( 'user1' ); + var unknownGenderUser = mw.thanks.getUserGender( 'user2' ); + var nonExistingUser = mw.thanks.getUserGender( 'user3' ); + var done = assert.async( 3 ); maleUser.then( function ( recipientGender ) { - assert.strictEqual( recipientGender, 'male', 'gets a proper gender for existing male user' ); - callbackDone(); + assert.strictEqual( recipientGender, 'male', 'gender for male user' ); + done(); } ); unknownGenderUser.then( function ( recipientGender ) { - assert.strictEqual( recipientGender, 'unknown', 'gets a unknown gender for a existing unknown gender user' ); - callbackDone(); + assert.strictEqual( recipientGender, 'unknown', 'gender for unknown-gender user' ); + done(); } ); nonExistingUser.then( function ( recipientGender ) { - assert.strictEqual( recipientGender, 'unknown', 'gets a unknown gender for non-existing user' ); - callbackDone(); + assert.strictEqual( recipientGender, 'unknown', 'gender for non-existing user' ); + done(); } ); } ); |