diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..f5708ed1 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,20 @@ +root = true + +[*] +indent_style = tab +indent_size = tab +tab_width = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +# Ensure text editors don't turn leading spaces into tabs, +# e.g. in multi-line bullet list items +[*.md] +indent_style = space +indent_size = 2 + +[.git/**] +indent_style = space +indent_size = 2 diff --git a/.phpcs.xml b/.phpcs.xml index 974a821d..2144d53f 100644 --- a/.phpcs.xml +++ b/.phpcs.xml @@ -6,8 +6,6 @@ - - @@ -19,6 +17,6 @@ ConfirmAccount\.*alias\.php . - + diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..52f3dbb8 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,10 @@ +repos: + - repo: local + hooks: + - id: grunt-test + name: Fix eslint problems + entry: grunt fix + language: system + files: '\.(js|ts|json)$' + pass_filenames: false + diff --git a/ConfirmAccount.alias.php b/ConfirmAccount.alias.php index 24acd28d..bd8e5bf7 100644 --- a/ConfirmAccount.alias.php +++ b/ConfirmAccount.alias.php @@ -474,16 +474,28 @@ 'RequestAccount' => [ 'בעטן_קאנטע' ], ]; -/** Simplified Chinese (中文(简体)‎) */ +/** Chinese (中文) */ +$specialPageAliases['zh'] = [ + 'RequestAccount' => [ 'RequestAccount' ], + 'ConfirmAccounts' => [ 'ConfirmAccounts' ], + 'UserCredentials' => [ 'UserCredentials' ], +]; + +/** Simplified Chinese (中文(简体)) */ $specialPageAliases['zh-hans'] = [ - 'RequestAccount' => [ '申请账户' ], - 'ConfirmAccounts' => [ '确认账户' ], + 'RequestAccount' => [ '申请账号', '申请账户' ], + 'ConfirmAccounts' => [ '确认账号', '确认账户' ], 'UserCredentials' => [ '用户凭据' ], ]; -/** Traditional Chinese (中文(繁體)‎) */ +/** Traditional Chinese (中文(繁體)) */ $specialPageAliases['zh-hant'] = [ - 'RequestAccount' => [ '請求帳號' ], + 'RequestAccount' => [ '申請帳號', '請求帳號' ], 'ConfirmAccounts' => [ '確認帳號' ], 'UserCredentials' => [ '使用者憑證' ], ]; + +/** Chinese (Hong Kong) (中文(香港)) */ +$specialPageAliases['zh-hk'] = [ + 'UserCredentials' => [ '用戶憑證' ], +]; diff --git a/ConfirmAccount.php b/ConfirmAccount.php deleted file mode 100644 index 70c81c63..00000000 --- a/ConfirmAccount.php +++ /dev/null @@ -1,38 +0,0 @@ -= 1.35.0" + "MediaWiki": ">= 1.41.0" + }, + "suggests": { + "extensions": { + "ConfirmEdit": "*" + } }, "ExtensionFunctions": [ - "ConfirmAccountHooks::onExtensionFunctions" + "MediaWiki\\Extension\\ConfirmAccount\\Hooks\\Special::onExtensionFunctions" ], "SpecialPages": { - "RequestAccount": "RequestAccountPage", - "ConfirmAccounts": "ConfirmAccountsPage", - "UserCredentials": "UserCredentialsPage" + "RequestAccount": { + "class": "MediaWiki\\Extension\\ConfirmAccount\\Page\\RequestAccount", + "services": [ + "UserFactory" + ] + }, + "ConfirmAccounts": { + "class": "MediaWiki\\Extension\\ConfirmAccount\\Page\\ConfirmAccounts", + "services": [ + "UserFactory", + "MainWANObjectCache" + ] + }, + "UserCredentials": { + "class": "MediaWiki\\Extension\\ConfirmAccount\\Page\\UserCredentials", + "services": [ + "DBLoadBalancer", + "UserGroupManager", + "UserIdentityLookup" + ] + } }, "MessagesDirs": { "ConfirmAccount": [ @@ -34,45 +57,61 @@ "ExtensionMessagesFiles": { "ConfirmAccountAliases": "ConfirmAccount.alias.php" }, - "AutoloadClasses": { - "ConfirmAccountHooks": "includes/ConfirmAccountHooks.php", - "ConfirmAccountUIHooks": "includes/frontend/ConfirmAccountUI.hooks.php", - "ConfirmAccountsPage": "includes/frontend/specialpages/actions/ConfirmAccount_body.php", - "ConfirmAccountsPager": "includes/frontend/specialpages/actions/ConfirmAccountsPager.php", - "RequestAccountPage": "includes/frontend/specialpages/actions/RequestAccount_body.php", - "UserCredentialsPage": "includes/frontend/specialpages/actions/UserCredentials_body.php", - "ConfirmAccount": "includes/backend/ConfirmAccount.class.php", - "UserAccountRequest": "includes/backend/UserAccountRequest.php", - "AccountRequestSubmission": "includes/business/AccountRequestSubmission.php", - "AccountConfirmSubmission": "includes/business/AccountConfirmSubmission.php", - "ConfirmAccountPreAuthenticationProvider": "includes/business/ConfirmAccountPreAuthenticationProvider.php", - "ConfirmAccountUpdaterHooks": "includes/backend/schema/ConfirmAccountUpdater.hooks.php" + "AutoloadNamespaces": { + "MediaWiki\\Extension\\ConfirmAccount\\": "includes/" }, "AuthManagerAutoConfig": { "preauth": { - "ConfirmAccountPreAuthenticationProvider": { - "class": "ConfirmAccountPreAuthenticationProvider", + "MediaWiki\\Extension\\ConfirmAccount\\PreAuthenticationProvider": { + "class": "MediaWiki\\Extension\\ConfirmAccount\\PreAuthenticationProvider", "sort": 0 } } }, "ResourceModules": { "ext.confirmAccount": { - "styles": "includes/frontend/modules/confirmaccount.css" + "styles": "resources/confirmaccount.css" + }, + "ext.confirmAccountSpam": { + "dependencies": [ + "oojs-ui-core", + "oojs-ui-windows", + "mediawiki.util", + "mediawiki.widgets" + ], + "scripts": "resources/spam.js", + "styles": "resources/spam.css", + "messages": [ + "confirmaccount-spam-link", + "confirmaccount-mark-request-spam", + "confirmaccount-cannot-load-review", + "confirmaccount-failed-to-mark", + "confirmaccount-cannot-find-form" + ] } }, "ResourceFileModulePaths": { "localBasePath": "", "remoteExtPath": "ConfirmAccount" }, + "HookHandlers": { + "main": { + "class": "MediaWiki\\Extension\\ConfirmAccount\\Hooks\\UI" + }, + "schema": { + "class": "MediaWiki\\Extension\\ConfirmAccount\\Hooks\\Updater" + }, + "special": { + "class": "MediaWiki\\Extension\\ConfirmAccount\\Hooks\\Special" + } + }, "Hooks": { - "PersonalUrls": "ConfirmAccountUIHooks::setRequestLoginLinks", - "UserCreateForm": "ConfirmAccountUIHooks::addRequestLoginText", - "UserLoginForm": "ConfirmAccountUIHooks::addRequestLoginText", - "BeforePageDisplay": "ConfirmAccountUIHooks::confirmAccountsNotice", - "AdminLinks": "ConfirmAccountUIHooks::confirmAccountAdminLinks", - "AuthChangeFormFields": "ConfirmAccountUIHooks::onAuthChangeFormFields", - "LoadExtensionSchemaUpdates": "ConfirmAccountUpdaterHooks::addSchemaUpdates" + "SkinTemplateNavigation::Universal": "main", + "BeforePageDisplay": "main", + "AdminLinks": "main", + "AuthChangeFormFields": "main", + "LoadExtensionSchemaUpdates": "schema", + "SpecialPageBeforeExecute": "special" }, "AvailableRights": [ "confirmaccount", diff --git a/i18n/confirmaccount/ar.json b/i18n/confirmaccount/ar.json index 1d45df77..605c433c 100644 --- a/i18n/confirmaccount/ar.json +++ b/i18n/confirmaccount/ar.json @@ -92,5 +92,10 @@ "confirmaccount-email-body2": "طلبك لحساب تمت الموافقة عليه في {{SITENAME}}.\n\nاسم الحساب: $1\n\nكلمة السر: $2\n\n$3\n\nلمتطلبات السرية ستضطر إلى تغيير كلمة السر الخاصة بك عند أول دخول. للدخول، من فضلك اذهب إلى\n{{fullurl:Special:UserLogin}}.", "confirmaccount-email-body3": "عذرا، طلبك لحساب \"$1\" تم رفضه في {{SITENAME}}.\n\nهناك عدة طرق لحدوث هذا.\nربما تكون لم تملأ الاستمارة بشكل صحيح، أو لم توفر الطول اللازم في ردودك، أو فشلت في موافاة بعد بنود السياسة.\nربما تكون هناك قوائم اتصال على الموقع يمكنك استخدامها لو كنت تريد معرفة المزيد حول سياسة حساب المستخدم.", "confirmaccount-email-body4": "عذرا، طلبك لحساب \"$1\" تم رفضه في {{SITENAME}}.\n\n$2\n\nربما تكون هناك قوائم اتصال على الموقع يمكنك استخدامها لو كنت تريد معرفة المزيد حول سياسة حساب المستخدم.", - "confirmaccount-email-body5": "قبل أن يتم قبول طلبك للحساب \"$1\" في {{SITENAME}} يجب أن توفر أولا بعض المعلومات الإضافية.\n\n$2\n\nربما تكون هناك قوائم اتصال في الموقع يمكنك استخدامها لو أردت أن تعرف المزيد حول سياسة حساب المستخدم." + "confirmaccount-email-body5": "قبل أن يتم قبول طلبك للحساب \"$1\" في {{SITENAME}} يجب أن توفر أولا بعض المعلومات الإضافية.\n\n$2\n\nربما تكون هناك قوائم اتصال في الموقع يمكنك استخدامها لو أردت أن تعرف المزيد حول سياسة حساب المستخدم.", + "confirmaccount-spam-link": "سخام", + "confirmaccount-mark-request-spam": "هل يجب وضع علامة على الطلب رقم # $1 باعتباره بريدًا عشوائيًا؟", + "confirmaccount-cannot-load-review": "تعذر تحميل صفحة المراجعة.", + "confirmaccount-failed-to-mark": "فشل في وضع علامة على البريد العشوائي: $1", + "confirmaccount-cannot-find-form": "لم نتمكن من العثور على نموذج التأكيد." } diff --git a/i18n/confirmaccount/ary.json b/i18n/confirmaccount/ary.json new file mode 100644 index 00000000..a8b3b9da --- /dev/null +++ b/i18n/confirmaccount/ary.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Ideophagous" + ] + }, + "confirmaccount-name": "سمية د لخدايمي" +} diff --git a/i18n/confirmaccount/ast.json b/i18n/confirmaccount/ast.json index 7235087e..ce75f2d5 100644 --- a/i18n/confirmaccount/ast.json +++ b/i18n/confirmaccount/ast.json @@ -1,12 +1,13 @@ { "@metadata": { "authors": [ - "Xuacu" + "Xuacu", + "YoaR" ] }, "confirmaccounts": "Confirmar solicitúes de cuenta", "confirmaccount-desc": "Da a los burócrates la capacidá de confirmar solicitúes de cuenta", - "confirmaccount-maintext": "'''Esta páxina s'usa pa confirmar les solicitúes de cuentes pendientes en ''{{SITENAME}}'''''.\n\nCada cola de solicitú de cuenta consta de tres sub-coles.\nUna p'abrir la solicitú, otra pa les qu'otros alministradores tengan n'espera pendientes de más información, y otra pa les solicitúes refugaes de recién.\n\nAl responder a una solicitú revísala con procuru y, si ye necesario, confirma la información que contien.\nLes tos aiciones quedarán rexistraes de mou priváu.\nTamién s'espera que revises cualquier actividá que tenga llugar equí amás de lo que faigas tu mesmu.", + "confirmaccount-maintext": "'''Esta páxina s'usa pa confirmar les solicitúes de cuentes pendientes en ''{{SITENAME}}'''''.\n\nCada cola de solicitú de cuenta consta de tres sub-coles.\nUna p'abrir la solicitú, otra pa les qu'otros alministradores tengan n'espera pendientes de más información, y otra pa les solicitúes refugaes de recién.\n\nAl responder a una solicitú revísala con procuru y, si ye necesario, confirma la información que contién.\nLes tos aiciones quedarán rexistraes de mou priváu.\nTamién s'espera que revises cualquier actividá que tenga llugar equí amás de lo que faigas tu mesmu.", "confirmaccount-list": "Abaxo hai una llista de solicitúes de cuenta qu'esperen aprobación.\nCuando una solicitú s'aprueba o se refuga se desanicia d'esta llista.", "confirmaccount-list2": "Abaxo hai una llista de solicitúes de cuenta refugaes de recién que se puen desaniciar automaticamente cuando tengan dellos díes.\nInda se puen aprobar como cuentes, pero pue ser meyor que consultes primero col alministrador que les refugó enantes de facelo.", "confirmaccount-list3": "Abaxo hai una llista coles solicitúes de cuentes que caducaron y que se puen desaniciar de mou automáticu cuando tengan dellos díes.\nInda se puen aprobar como cuentes.", diff --git a/i18n/confirmaccount/ba.json b/i18n/confirmaccount/ba.json index 623bb838..3c6e91bf 100644 --- a/i18n/confirmaccount/ba.json +++ b/i18n/confirmaccount/ba.json @@ -3,36 +3,37 @@ "authors": [ "Sagan", "Айсар", + "З. ӘЙЛЕ", "Ләйсән" ] }, - "confirmaccounts": "Иҫәп яҙмаһы һорауын раҫлау", - "confirmaccount-desc": "Бюрократтарға иҫәп яҙмаһын раҫларға мөмкинлек бирә", - "confirmaccount-maintext": "'''Был бит иҫәп яҙмаларынаа ғаризаларҙы раҫлау өсөн ҡулланыла«{{SITENAME}}»'''.\n\nҒаризалар сираты өс өлөштән тора: ғаризаны асыу; администраторҙар тарафынан кисектерелгән ғаризалар; кире ҡағылған ғаризалар.\n\nҒариза асҡан ваҡытта иғтибар менән ҡарағыҙ, йөкмәткеһен тикшерегеҙ. Һеҙҙең ғәмәл журналға яҙыла. Ғаризаны ҡарау, һеҙҙең нимә менән шөғөлләнгәнгә ҡарамай, башҡарыласаҡ.", - "confirmaccount-list": "Түбәндә сират көтөүсе иҫәп яҙмаһын булдырырға бирелгән ғаризалар исемлеге бирелгән. Ғариза раҫланғас, яңы иҫәп яҙмаһы булдырыла, ғариза был исемлектән юйыла. Кире ҡағылғын ғыризалар исемлектән юйыла.", - "confirmaccount-list2": "Түбәндә күптән түгел кире ҡағылғын ғаризалар исемлеге бирелгән, бер аҙҙан ғаризалар исемлектән автомитик юйыласаҡ. Ғаризағыҙҙы кире ҡаҡҡан администратор менән килешкәс, һеҙ исемлектәге ғаризағаҙҙы раҫлай алаһығыҙ.", - "confirmaccount-showopen": "асыҡ һорауҙар", - "confirmaccount-showrej": "ҡабул ителмәгән һорауҙар", - "confirmaccount-showexp": "иҫке һорауҙар", - "confirmaccount-review": "ҡарап сығырға", + "confirmaccounts": "Иҫәп яҙмалары үтенесен раҫлау", + "confirmaccount-desc": "Бюрократтарға иҫәп яҙмалары үтенесен раҫлау мөмкинлеге бирә", + "confirmaccount-maintext": "'''Был бит «{{SITENAME}}» проектының иҫәп яҙмаларына үтенестәрҙе раҫлау өсөн ҡулланыла'''.\n\nҮтенес сираты өс өлөштән тора: үтенесте асыу; хакимдар тарафынан кисектерелгән үтенестәр; кире ҡағылған үтенестәр.\n\nҮтенесте асҡас, уны иғтибар менән ҡарағыҙ, йөкмәткеһен тикшерегеҙ. Һеҙҙең ғәмәл журналға яҙыла. Үтенесте ҡарау, һеҙҙең нимә менән шөғөлләнеүегеҙгә ҡарамай, башҡарыласаҡ.", + "confirmaccount-list": "Түбәндә иҫәп яҙмаһын булдырырға теләүселәрҙең үтенестәр сираты исемлеге бирелгән. Үтенес раҫланһа йә кире ҡағылһа, ул исемлектән юйыла.", + "confirmaccount-list2": "Түбәндә күптән түгел кире ҡағылғын үтенестәр исемлеге бирелә, бер аҙҙан улар автоматик рәүештә юйыласаҡ. Шулай ҙа һеҙ исемлектәге үтенесегеҙҙе раҫлай алаһығыҙ, әммә бының өсөн тәүҙә уны кире ҡаҡҡан хаким менән һөйләшергә кәрәк.", + "confirmaccount-showopen": "асыҡ үтенестәр", + "confirmaccount-showrej": "кире ҡағылған үтенестәр", + "confirmaccount-showexp": "иҫкергән үтенестәр", + "confirmaccount-review": "Ҡарап сығырға", "confirmaccount-all": "(бөтә сираттарҙы күрһәтергә)", "confirmaccount-type": "Һайланған сират:", "confirmaccount-type-1": "буласаҡ мөхәррирҙәр", - "confirmaccount-q-open": "асыҡ һорауҙар", - "confirmaccount-q-held": "кисектерелгән һорауҙар", - "confirmaccount-q-stale": "иҫке һорауҙар", + "confirmaccount-q-open": "асыҡ үтенестәр", + "confirmaccount-q-held": "кисектерелгән үтенестәр", + "confirmaccount-q-stale": "иҫкергән үтенестәр", "confirmaccount-leg-user": "Иҫәп яҙмаһы", "confirmaccount-leg-person": "Шәхси мәғлүмәттәр", "confirmaccount-leg-other": "Башҡа мәғлүмәт", "confirmaccount-name": "Ҡатнашыусы исеме", "confirmaccount-real": "Исем:", - "confirmaccount-reqtype": "Вазифа", - "confirmaccount-pos-0": "Автор", + "confirmaccount-reqtype": "Вазифа:", + "confirmaccount-pos-0": "автор", "confirmaccount-pos-1": "мөхәррир", - "confirmaccount-bio": "Биография", + "confirmaccount-bio": "Биография:", "confirmaccount-none-p": "(күрһәтелмәгән)", "confirmaccount-econf": "(раҫланған)", "confirmaccount-noreason": "(юҡ)", "confirmaccount-hold": "Ҡалдырып торорға", - "confirmaccount-rej": "Иҫәп яҙмаһын һорау кире ҡағылды." + "confirmaccount-rej": "Иҫәп яҙмаһын булдырыу үтенесе кире ҡағылды." } diff --git a/i18n/confirmaccount/ban.json b/i18n/confirmaccount/ban.json new file mode 100644 index 00000000..3af90588 --- /dev/null +++ b/i18n/confirmaccount/ban.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Chinamoonroll" + ] + }, + "confirmaccount-bio-q": "Biograpi", + "confirmaccount-wsum": "Rahajeng rauh!" +} diff --git a/i18n/confirmaccount/be-tarask.json b/i18n/confirmaccount/be-tarask.json index 651613fe..ec5a5904 100644 --- a/i18n/confirmaccount/be-tarask.json +++ b/i18n/confirmaccount/be-tarask.json @@ -4,6 +4,8 @@ "EugeneZelenko", "Jim-by", "Red Winged Duck", + "Renessaince", + "Ucukor", "Wizardist", "Zedlik" ] @@ -36,7 +38,7 @@ "confirmaccount-q-held": "адкладзеныя запыты", "confirmaccount-q-rej": "нядаўна адхіленыя запыты", "confirmaccount-q-stale": "састарэлыя запыты", - "confirmaccount-badid": "Няма запытаў на стварэньне рахунка з пададзеным ідэнтыфікатарам.\nВерагодна ён ужо апрацаваны.", + "confirmaccount-badid": "Няма запытаў на стварэньне рахунка з пададзеным ідэнтыфікатарам.\nМагчыма, ён ужо апрацаваны.", "confirmaccount-leg-user": "Рахунак удзельніка", "confirmaccount-leg-areas": "Галоўныя вобласьці інтарэсаў", "confirmaccount-leg-person": "Асабістыя зьвесткі", @@ -62,7 +64,7 @@ "confirmaccount-autorej": "(гэты запыт быў аўтаматычна адхілены з-за неактыўнасьці)", "confirmaccount-held": "({{GENDER:$1|адклаў|адклала}} [[User:$1|$1]] $3 у $4)", "confirmaccount-blockip": "Заблякаваць IP-адрас", - "confirmaccount-create": "Зацьвердзіць (стварыць рахунак)", + "confirmaccount-create": "Зацьвердзіць (стварыць уліковы запіс)", "confirmaccount-deny": "Адхіліць (выдаліць са сьпісу)", "confirmaccount-hold": "Адкласьці", "confirmaccount-spam": "Спам (не дасылаць лісты па электроннай пошце)", @@ -81,12 +83,12 @@ "confirmaccount-rej": "Запыт на стварэньне рахунку быў адхілены.", "confirmaccount-viewing": "(цяпер праглядаецца {{GENDER:$1|ўдзельнікам|ўдзельніцай}} [[User:$1|$1]])", "confirmaccount-summary": "Стварэньне ўласнай старонкі новага ўдзельніка.", - "confirmaccount-welc": "'''Вітаем у ''{{GRAMMAR:месны|{{SITENAME}}}}''!'''\nМы спадзяёмся, што Вы прыміце актыўны ўдзел у працы праекта.\nВерагодна, Вам будзе цікава прачытаць [{{MediaWiki:Helppage}} старонкі дапамогі].\nЯшчэ раз вітаем Вас, і жадаем прыемнай працы!", + "confirmaccount-welc": "'''Вітаем у ''{{GRAMMAR:месны|{{SITENAME}}}}''!'''\nМы спадзяёмся, што Вы прыміце актыўны ўдзел у працы праекта.\nМагчыма, Вам будзе цікава прачытаць [{{MediaWiki:Helppage}} старонкі дапамогі].\nЯшчэ раз вітаем Вас, і жадаем прыемнай працы!", "confirmaccount-wsum": "Вітаем!", "confirmaccount-email-subj": "Запыт на стварэньне рахунку ў {{GRAMMAR:месны|{{SITENAME}}}}", "confirmaccount-email-body": "Ваш запыт на стварэньне рахунку ў {{GRAMMAR:месны|{{SITENAME}}}} быў зацьверджаны.\n\nНазва рахунку: $1\n\nПароль: $2\n\nУ мэтах бясьпекі, Вам неабходна зьмяніць пароль пасьля першага ўваходу ў сыстэму.\nУвайсьці ў сыстэму можна на старонцы {{fullurl:Special:UserLogin}}.", "confirmaccount-email-body2": "Ваш запыт на стварэньне рахунку ў {{GRAMMAR:месны|{{SITENAME}}}} быў зацьверджаны.\n\nНазва рахунку: $1\n\nПароль: $2\n\n$3\n\nУ мэтах бясьпекі, Вам неабходна зьмяніць пароль пасьля першага ўваходу ў сыстэму.\nУвайсьці ў сыстэму можна на старонцы {{fullurl:Special:UserLogin}}.", - "confirmaccount-email-body3": "Прабачце, але Ваш запыт на стварэньне рахунку «$1» у {{GRAMMAR:месны|{{SITENAME}}}} быў адхілены.\n\nГэта магло адбыцца па некалькіх прычынах.\nВерагодна, Вы не запоўнілі форму карэктна, Вашыя адказы на пытаньні былі ня поўныя альбо не задавальняльнымі з пункту гледжаньня правілаў.\nУ {{GRAMMAR:месны|{{SITENAME}}}} можа быць сьпіс кантактаў, якія Вы можаце выкарыстоўваць, каб атрымаць дадатковую інфармацыю пра правілы, якія тычацца рахункаў удзельнікаў.", + "confirmaccount-email-body3": "Прабачце, але Ваш запыт на стварэньне рахунку «$1» у {{GRAMMAR:месны|{{SITENAME}}}} быў адхілены.\n\nГэта магло адбыцца па некалькіх прычынах.\nМагчыма, Вы не запоўнілі форму карэктна, Вашыя адказы на пытаньні былі ня поўныя альбо не задавальняльнымі з пункту гледжаньня правілаў.\nУ {{GRAMMAR:месны|{{SITENAME}}}} можа быць сьпіс кантактаў, якія Вы можаце выкарыстоўваць, каб атрымаць дадатковую інфармацыю пра правілы, якія тычацца рахункаў удзельнікаў.", "confirmaccount-email-body4": "Прабачце, але Ваш запыт на стварэньне рахунку «$1» у {{GRAMMAR:месны|{{SITENAME}}}} быў адхілены.\n\n$2\n\nУ {{GRAMMAR:месны|{{SITENAME}}}} можа быць сьпіс кантактаў, якія Вы можаце выкарыстоўваць, каб атрымаць дадатковую інфармацыю пра правілы, якія тычацца рахункаў удзельнікаў.", "confirmaccount-email-body5": "Перад тым, як Ваш запыт на стварэньне рахунку «$1» у {{GRAMMAR:месны|{{SITENAME}}}} будзе зацьверджаны, Вам неабходна падаць дадатковую інфармацыю.\n\n$2\n\nУ {{GRAMMAR:месны|{{SITENAME}}}} можа быць сьпіс кантактаў, якія Вы можаце выкарыстоўваць, каб атрымаць дадатковую інфармацыю пра правілы, якія тычацца рахункаў удзельнікаў." } diff --git a/i18n/confirmaccount/be.json b/i18n/confirmaccount/be.json index 7f61a7cd..616c4a0b 100644 --- a/i18n/confirmaccount/be.json +++ b/i18n/confirmaccount/be.json @@ -2,9 +2,11 @@ "@metadata": { "authors": [ "Artsiom91", + "ZlyiLev", "Тест" ] }, + "confirmaccount-showexp": "састарэлыя запыты", "confirmaccount-name": "Імя ўдзельніка", "confirmaccount-pos-0": "аўтар", "confirmaccount-submit": "Пацвердзіць", diff --git a/i18n/confirmaccount/bn.json b/i18n/confirmaccount/bn.json index b5c4c0ef..3bd8d93c 100644 --- a/i18n/confirmaccount/bn.json +++ b/i18n/confirmaccount/bn.json @@ -60,5 +60,6 @@ "confirmaccount-canthold": "এই অনুরোধটি ইতিমধ্যেই হয় অপেক্ষমান বা অপসারিত।", "confirmaccount-rej": "অ্যাকাউন্ট অনুরোধ সফলভাবে বাতিল করা হয়েছে।", "confirmaccount-viewing": "(বর্তমানে [[User:$1|$1]]-এর দ্বারা পরিদর্শিত হয়েছে)", - "confirmaccount-summary": "নতুন ব্যবহারকারীর জন্য ব্যবহারকারী পাতা তৈরি" + "confirmaccount-summary": "নতুন ব্যবহারকারীর জন্য ব্যবহারকারী পাতা তৈরি", + "confirmaccount-spam-link": "স্প্যাম" } diff --git a/i18n/confirmaccount/bnn.json b/i18n/confirmaccount/bnn.json new file mode 100644 index 00000000..e19aba83 --- /dev/null +++ b/i18n/confirmaccount/bnn.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Akamycoco" + ] + }, + "confirmaccount-ip": "ip tu katdan:" +} diff --git a/i18n/confirmaccount/br.json b/i18n/confirmaccount/br.json index 6742980e..00d020f2 100644 --- a/i18n/confirmaccount/br.json +++ b/i18n/confirmaccount/br.json @@ -3,6 +3,7 @@ "authors": [ "Fohanno", "Fulup", + "Huñvreüs", "Y-M D" ] }, @@ -64,16 +65,16 @@ "confirmaccount-deny": "Disteurel (lemel eus ar roll)", "confirmaccount-hold": "Mirout", "confirmaccount-spam": "Strob (na gasit ket posteloù)", - "confirmaccount-reason": "Evezhiadenn (lakaet e vo er postel) :", + "confirmaccount-reason": "Evezhiadenn (lakaet a vo er posteloù nac’hañ pe derc’hel da c’hortoz):", "confirmaccount-ip": "Chomlec'h IP :", "confirmaccount-agent": "Implijer-Gwazour :", "confirmaccount-legend": "Kadarnaat/nac'hañ ar gont", "confirmaccount-submit": "Kadarnaat", "confirmaccount-needreason": "Ret eo deoc'h pourchas un abeg er voest amañ dindan.", "confirmaccount-canthold": "Ar reked-mañ a zo pe kemeret e kont dija, pe dilamet.", - "confirmaccount-acc": "Kardarnaet eo bet ar goulenn kont ;\nkrouet eo bet ar gont implijer nevez [[User:$1|$1]].", + "confirmaccount-acc": "Kardarnaet eo bet ar goulenn kont ;\n\tkrouet eo bet ar gont implijer nevez [[User:$1|$1]].", "confirmaccount-rej": "Distaolet eo bet ar goulenn kont.", - "confirmaccount-viewing": "(gwelet gant [[User:$1|$1]] evit bremañ)", + "confirmaccount-viewing": "(o vezañ gwelet gant {{GENDER:$1|}}[[User:$1|$1]])", "confirmaccount-summary": "O krouiñ pajenn implijer un implijer nevez.", "confirmaccount-welc": "'''Degemer mat e ''{{SITENAME}}''!'''\nSpi hon eus e kemerot perzh da vat ha mat.\nMarteze hoc'h eus c'hoant da lenn ar [{{MediaWiki:Helppage}} pajennoù skoazell].\nAdarre, degemer mat ha plijadur deoc'h !", "confirmaccount-wsum": "Degemer mat !", diff --git a/i18n/confirmaccount/bs.json b/i18n/confirmaccount/bs.json index 2021e133..11385dec 100644 --- a/i18n/confirmaccount/bs.json +++ b/i18n/confirmaccount/bs.json @@ -40,7 +40,7 @@ "confirmaccount-create": "Prihvati (napravi račun)", "confirmaccount-deny": "Odbij (skini sa spiska)", "confirmaccount-reason": "Komentar (bit će uključen u e-porukama za odbijanje i na čekanju):", - "confirmaccount-ip": "IP adresa:", + "confirmaccount-ip": "IP-adresa:", "confirmaccount-legend": "Potvrdi/odbij ovaj račun", "confirmaccount-submit": "Potvrdi", "confirmaccount-summary": "Stvaranje korisničke stranice za novog korisnika.", diff --git a/i18n/confirmaccount/bug.json b/i18n/confirmaccount/bug.json new file mode 100644 index 00000000..f722e38a --- /dev/null +++ b/i18n/confirmaccount/bug.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Rdwnnr" + ] + }, + "confirmaccount-wsum": "Salamaq mattamaq!" +} diff --git a/i18n/confirmaccount/ce.json b/i18n/confirmaccount/ce.json index 5871a768..7ceeaf5c 100644 --- a/i18n/confirmaccount/ce.json +++ b/i18n/confirmaccount/ce.json @@ -8,13 +8,13 @@ "confirmaccount-email-q": "Электронан пошт", "confirmaccount-bio-q": "Биографи", "confirmaccount-showopen": "делина дехарш", - "confirmaccount-showrej": "юхадаьхна дехарш", + "confirmaccount-showrej": "йухадаьхна дехарш", "confirmaccount-showexp": "шира делла дехарш", "confirmaccount-review": "Хьажар", - "confirmaccount-all": "(гайта ерриге рогӀехь)", + "confirmaccount-all": "(гайта йерриге рогӀехь)", "confirmaccount-type": "Хаьржина рогӀе:", - "confirmaccount-type-0": "хира болу автораш", - "confirmaccount-type-1": "хира болу автораш", + "confirmaccount-type-0": "хира болу авторш", + "confirmaccount-type-1": "хира болу авторш", "confirmaccount-q-open": "делина дехарш", "confirmaccount-name": "Декъашхочун цӀе", "confirmaccount-real": "ЦӀе:", @@ -23,8 +23,8 @@ "confirmaccount-pos-0": "автор", "confirmaccount-pos-1": "редактор", "confirmaccount-withcv": "(цуьнах лацар билгалдош далош ду)", - "confirmaccount-noreason": "(яц)", + "confirmaccount-noreason": "(хӀан-хӀа)", "confirmaccount-submit": "Бакъдан", "confirmaccount-wsum": "Марша догӀийла!", - "confirmaccount-email-subj": "{{SITENAME}} дӀаяздар дехар" + "confirmaccount-email-subj": "{{SITENAME}} аккаунт йехар" } diff --git a/i18n/confirmaccount/de-formal.json b/i18n/confirmaccount/de-formal.json deleted file mode 100644 index 90662698..00000000 --- a/i18n/confirmaccount/de-formal.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Andreas Plank", - "Imre", - "Kghbln", - "The Evil IP address", - "Umherirrender" - ] - }, - "confirmaccount-maintext": "'''Diese Seite dient dazu, wartende Benutzerkontenanträge für ''{{SITENAME}}'' zu bearbeiten.'''\n\nJede Benutzerkonten-Antragsqueue besteht aus drei Unterqueues. Eine für offene Anfrage, eine für Anträge im „abwarten“-Status und eine für kürzlich abgelehnte Anfragen.\n\nWenn Sie auf einen Antrag antworten, überprüfen Sie die Informationen sorgfältig und bestätigen Sie die enthaltenen Informationen.\nIhre Aktionen werden nichtöffentlich protokolliert. Es wird auch von Ihnen erwartet, die Aktionen anderer zu überprüfen.", - "confirmaccount-list": "Unten finden Sie eine Liste von noch zu bestätigenden Benutzerkontoanträgen.\nSobald ein Antrag bestätigt oder zurückgewiesen wurde, wird er aus der Liste entfernt.", - "confirmaccount-list2": "Unten ist eine Liste kürzlich zurückgewiesener Anträge, die automatisch gelöscht werden, sobald sie einige Tage alt sind. Sie können noch genehmigt werden, allerdings sollten Sie zuerst den ablehnenden Administrator kontaktieren.", - "confirmaccount-list3": "Unten ist eine Liste zurückgewiesener Anträge, die automatisch gelöscht werden, sobald sie einige Tage alt sind. Als Benutzerkonten können diese noch genehmigt werden.", - "confirmaccount-text": "Dies ist ein unerledigter Benutzerkonto-Antrag bei '''{{SITENAME}}'''.\n\nPrüfen Sie sorgfältig alle unten stehenden Informationen. Falls Sie den Antrag bestätigen, nutzen Sie die Position in der Auswahlliste, um den Benutzerstatus zu setzten.\n\nModifikationen an Biographie führen zu keiner dauerhaften Änderung der Anmeldeinformationen beim Speichern.\nBeachten Sie, dass Sie bei Bedarf das Konto unter einem anderen Benutzernamen anlegen können.\nSie sollten dies nur anwenden, um Kollisionen mit anderen Namen zu vermeiden.\n\nFalls Sie diese Seite verlassen, ohne das Konto zu bestätigen oder abzulehnen, wird der Antrag weiter offen bleiben.", - "confirmaccount-none-o": "Momentan gibt es keine offenen Benutzeranträge in dieser Liste.", - "confirmaccount-confirm": "Nutzen Sie die folgende Auswahl, um den Antrag zu bestätigen, abzulehnen oder um noch abzuwarten.", - "confirmaccount-needreason": "Sie müssen eine Begründung eingeben.", - "confirmaccount-welc": "'''Willkommen bei ''{{SITENAME}}''!'''\nWir hoffen, dass Sie viele gute Informationen beisteuern.\nMöglicherweise möchten Sie zunächst die [{{MediaWiki:Helppage}} Ersten Schritte] lesen.\nNochmal: Willkommen und viel Spaß!", - "confirmaccount-email-body": "Ihr Antrag auf ein Benutzerkonto bei {{SITENAME}} wurde bestätigt.\n\nBenutzername: $1\n\nPasswort: $2\n\nAus Sicherheitsgründen sollten Sie Ihr Passwort unbedingt beim ersten Anmelden ändern.\nUm sich anzumelden besuchen Sie bitte die Seite {{fullurl:{{#special:UserLogin}}}}.", - "confirmaccount-email-body2": "Ihr Antrag auf ein Benutzerkonto bei {{SITENAME}} wurde bestätigt.\n\nBenutzername: $1\n\nPasswort: $2\n\n$3\n\nAus Sicherheitsgründen sollten Sie Ihr Passwort unbedingt beim ersten Anmelden ändern.\nUm sich anzumelden besuchen Sie bitte die Seite {{fullurl:{{#special:UserLogin}}}}.", - "confirmaccount-email-body3": "Leider wurde Ihr Antrag auf ein Benutzerkonto „$1“ \nbei {{SITENAME}} abgelehnt.\n\nDies kann viele Gründe haben. Möglicherweise haben Sie das Antragsformular\nnicht richtig ausgefüllt, haben nicht genügend Angaben gemacht oder haben die Anforderungen auf andere Weise nicht erfüllt.\n\nMöglicherweise gibt es auf der Seite Kontaktadressen, an die Sie sich wenden\nkönnen, wenn Sie mehr über die Anforderungen wissen möchten.", - "confirmaccount-email-body4": "Leider wurde Ihr Antrag auf ein Benutzerkonto „$1“ \nbei {{SITENAME}} abgelehnt.\n\n$2\n\nMöglicherweise gibt es auf der Seite Kontaktadressen, an die Sie sich wenden\nkönnen, wenn Sie mehr über die Anforderungen wissen möchten.", - "confirmaccount-email-body5": "Bevor Ihre Anfrage für das Benutzerkonto „$1“ von {{SITENAME}} akzeptiert werden kann, müssen Sie zusätzliche Informationen übermitteln.\n\n$2\n\nMöglicherweise gibt es auf der Seite Kontaktadressen, an die Sie sich wenden können, wenn Sie mehr über die Anforderungen wissen möchten." -} diff --git a/i18n/confirmaccount/de.json b/i18n/confirmaccount/de.json index 38a3ed11..8f5dc3cf 100644 --- a/i18n/confirmaccount/de.json +++ b/i18n/confirmaccount/de.json @@ -16,13 +16,12 @@ ] }, "confirmaccounts": "Benutzerkontenanträge bestätigen", - "confirmaccount-extensionname": "Confirm User Accounts", "confirmaccount-desc": "Ermöglicht es Benutzerkontenanträge zu bestätigen", - "confirmaccount-maintext": "'''Diese Seite dient dazu, wartende Benutzerkontenanträge für ''{{SITENAME}}'' zu bearbeiten.'''\n\nJede Benutzerkontenwarteschlange besteht aus drei Unterwarteschlangen. Eine für offene Anfrage, eine für Anträge im „abwarten“-Status und eine für kürzlich abgelehnte Anfragen.\n\nWenn du auf einen Antrag antwortest, überprüfe die Informationen sorgfältig und bestätige die enthaltenen Informationen.\nDeine Aktionen werden nichtöffentlich protokolliert. Es wird auch von dir erwartet, die Aktionen anderer zu überprüfen.", - "confirmaccount-list": "Unten findest du eine Liste von noch zu bearbeitenden Benutzerkontoanträgen.\nSobald ein Antrag bestätigt oder zurückgewiesen wurde, wird er aus der Liste entfernt.", - "confirmaccount-list2": "Unten ist eine Liste kürzlich zurückgewiesener Anträge, die automatisch gelöscht werden, sobald sie einige Tage alt sind. Sie können noch genehmigt werden, allerdings solltest du zuerst den ablehnenden Administrator kontaktieren.", + "confirmaccount-maintext": "'''Diese Seite dient dazu, wartende Benutzerkontenanträge für ''{{SITENAME}}'' zu bearbeiten.'''\n\nJede Benutzerkontenwarteschlange besteht aus drei Unterwarteschlangen. Eine für offene Anfrage, eine für Anträge im „abwarten“-Status und eine für kürzlich abgelehnte Anfragen.\n\nWenn {{#FORMAL:du|Sie}} auf einen Antrag {{#FORMAL:antwortest|antworten}}, {{#FORMAL:überprüfe|überprüfen Sie}} die Informationen sorgfältig und {{#FORMAL:bestätige|bestätigen Sie}} die enthaltenen Informationen.\n{{#FORMAL:Deine|Ihre}} Aktionen werden nichtöffentlich protokolliert. Es wird auch von {{#FORMAL:dir|Ihnen}} erwartet, die Aktionen anderer zu überprüfen.", + "confirmaccount-list": "Unten {{#FORMAL:findest du|finden Sie}} eine Liste von noch zu bearbeitenden Benutzerkontoanträgen.\nSobald ein Antrag bestätigt oder zurückgewiesen wurde, wird er aus der Liste entfernt.", + "confirmaccount-list2": "Unten ist eine Liste kürzlich zurückgewiesener Anträge, die automatisch gelöscht werden, sobald sie einige Tage alt sind. Sie können noch genehmigt werden, allerdings {{#FORMAL:solltest du|sollten Sie}} zuerst den ablehnenden Administrator kontaktieren.", "confirmaccount-list3": "Unten ist eine Liste kürzlich zurückgewiesener Anträge, die automatisch gelöscht werden, sobald sie einige Tage alt sind. Sie können noch genehmigt werden.", - "confirmaccount-text": "Dies ist ein Antrag auf ein Benutzerkonto bei '''{{SITENAME}}'''.\n\nPrüfe alle unten stehenden Informationen gründlich und bestätige die Informationen wenn möglich.\nBitte beachte, dass du den Zugang bei Bedarf unter einem anderen Benutzernamen anlegen kannst.\nDu solltest dies nur nutzen, um Kollisionen mit anderen Namen zu vermeiden.\n\nWenn du diese Seite verlässt, ohne das Konto zu bestätigen oder abzulehnen, wird der Antrag offen stehen bleiben.", + "confirmaccount-text": "Dies ist ein Antrag auf ein Benutzerkonto bei '''{{SITENAME}}'''.\n\n{{#FORMAL:Prüfe|Prüfen Sie}} alle unten stehenden Informationen gründlich und bestätige die Informationen wenn möglich.\nBitte beachte, dass {{#FORMAL:du|Sie}} den Zugang bei Bedarf unter einem anderen Benutzernamen anlegen {{#FORMAL:kannst|können}}.\n{{#FORMAL:Du solltest|Sie sollten}} dies nur nutzen, um Kollisionen mit anderen Namen zu vermeiden.\n\nWenn {{#FORMAL:du|Sie}} diese Seite {{FORMAL:verlässt|verlassen}}, ohne das Konto zu bestätigen oder abzulehnen, wird der Antrag offen stehen bleiben.", "confirmaccount-none-o": "Momentan gibt es keine offenen Benutzeranträge auf dieser Liste.", "confirmaccount-none-h": "Momentan gibt es keine Anträge im „abwarten“-Status auf dieser Liste.", "confirmaccount-none-r": "Momentan gibt es keine kürzlich abgelehnten Benutzeranträge auf dieser Liste.", @@ -61,7 +60,7 @@ "confirmaccount-notes": "Zusätzliche Hinweise:", "confirmaccount-urls": "Liste der Webseiten:", "confirmaccount-none-p": "(Nichts angegeben)", - "confirmaccount-confirm": "Nutze die folgende Auswahl, um den Antrag zu bestätigen, abzulehnen oder um noch abzuwarten.", + "confirmaccount-confirm": "{{#FORMAL:Nutze|Nutzen Sie}} die folgende Auswahl, um den Antrag zu bestätigen, abzulehnen oder um noch abzuwarten.", "confirmaccount-econf": "(bestätigt)", "confirmaccount-withcv": "(Lebenslauf angehängt)", "confirmaccount-reject": "({{GENDER:$1|abgelehnt}} durch [[User:$1|$1]] am $3 um $4)", @@ -80,7 +79,7 @@ "confirmaccount-agent": "Zugriffsprogramm:", "confirmaccount-legend": "Bestätigen/Ablehnen des Antrags", "confirmaccount-submit": "Bestätigen", - "confirmaccount-needreason": "Du musst eine Begründung eingeben.", + "confirmaccount-needreason": "{{#FORMAL:Du musst|Sie müssen}} eine Begründung eingeben.", "confirmaccount-canthold": "Dieser Antrag wurde bereits mit „abwarten“ markiert oder gelöscht.", "confirmaccount-badaction": "Es muss eine gültige Aktion (bestätigen, ablehnen, abwarten) angegeben werden, um fortfahren zu können.", "confirmaccount-mismatched": "Dieses Feld muss mit der originalen Kontenanfrage übereinstimmen.", @@ -89,12 +88,17 @@ "confirmaccount-rej": "Benutzerantrag wurde abgelehnt.", "confirmaccount-viewing": "(wird aktuell {{GENDER:$1|angeschaut}} durch [[User:$1|$1]])", "confirmaccount-summary": "Die Benutzerseite wird für den neuen Benutzer erstellt.", - "confirmaccount-welc": "'''Willkommen bei ''{{SITENAME}}''!'''\nWir hoffen, dass du viele gute Informationen beisteuerst.\nMöglicherweise möchtest du zunächst die [{{MediaWiki:Helppage}} Ersten Schritte] lesen.\nNochmal: Willkommen und viel Spaß!", + "confirmaccount-welc": "'''Willkommen bei ''{{SITENAME}}''!'''\nWir hoffen, dass {{#FORMAL:du|Sie}} viele gute Informationen {{#FORMAL:beisteuerst|beisteuern}}.\nMöglicherweise {{#FORMAL:möchtest du|möchten Sie}} zunächst die [{{MediaWiki:Helppage}} Ersten Schritte] lesen.\nNochmal: Willkommen und viel Spaß!", "confirmaccount-wsum": "Willkommen!", "confirmaccount-email-subj": "[{{SITENAME}}] Antrag auf Benutzerkonto", - "confirmaccount-email-body": "Dein Antrag auf ein Benutzerkonto bei {{SITENAME}} wurde bestätigt.\n\nBenutzername: $1\n\nPasswort: $2\n\nAus Sicherheitsgründen solltest du dein Passwort unbedingt beim ersten Anmelden ändern.\nUm dich anzumelden besuche bitte die Seite {{fullurl:{{#special:UserLogin}}}}.", - "confirmaccount-email-body2": "Dein Antrag auf ein Benutzerkonto bei {{SITENAME}} wurde bestätigt.\n\nBenutzername: $1\n\nPasswort: $2\n\n$3\n\nAus Sicherheitsgründen solltest du dein Passwort unbedingt beim ersten Anmelden ändern.\nUm dich anzumelden besuche bitte die Seite {{fullurl:{{#special:UserLogin}}}}.", - "confirmaccount-email-body3": "Leider wurde dein Antrag auf ein Benutzerkonto „$1“ \nbei {{SITENAME}} abgelehnt.\n\nDies kann viele Gründe haben. Möglicherweise hast du das Antragsformular\nnicht richtig ausgefüllt, hast nicht genügend Angaben gemacht oder hast\ndie Anforderungen auf andere Weise nicht erfüllt.\n\nMöglicherweise gibt es auf der Seite Kontaktadressen, an die du dich wenden\nkannst, wenn du mehr über die Anforderungen wissen möchtest.", - "confirmaccount-email-body4": "Leider wurde dein Antrag auf ein Benutzerkonto „$1“ \nbei {{SITENAME}} abgelehnt.\n\n$2\n\nMöglicherweise gibt es auf der Seite Kontaktadressen, an die du dich wenden\nkannst, wenn du mehr über die Anforderungen wissen möchtest.", - "confirmaccount-email-body5": "Bevor deine Anfrage für das Benutzerkonto „$1“ von {{SITENAME}} akzeptiert werden kann, musst du zusätzliche Informationen übermitteln.\n\n$2\n\nMöglicherweise gibt es auf der Seite Kontaktadressen, an die du dich wenden kannst, wenn du mehr über die Anforderungen wissen möchtest." + "confirmaccount-email-body": "{{#FORMAL:Dein|Ihr}} Antrag auf ein Benutzerkonto bei {{SITENAME}} wurde bestätigt.\n\nBenutzername: $1\n\nPasswort: $2\n\nAus Sicherheitsgründen {{#FORMAL:solltest du dein|sollten Sie Ihr}} Passwort unbedingt beim ersten Anmelden ändern.\nUm {{#FORMAL:dich|sich}} anzumelden {{#FORMAL:besuche|besuchen Sie}} bitte die Seite {{fullurl:{{#special:UserLogin}}}}.", + "confirmaccount-email-body2": "{{#FORMAL:Dein|Ihr}} Antrag auf ein Benutzerkonto bei {{SITENAME}} wurde bestätigt.\n\nBenutzername: $1\n\nPasswort: $2\n\n$3\n\nAus Sicherheitsgründen {{#FORMAL:solltest du dein|sollten Sie Ihr}} Passwort unbedingt beim ersten Anmelden ändern.\nUm {{#FORMAL:dich|sich}} anzumelden {{#FORMAL:besuche|besuchen Sie}} bitte die Seite {{fullurl:{{#special:UserLogin}}}}.", + "confirmaccount-email-body3": "Leider wurde {{#FORMAL:dein|Ihr}} Antrag auf ein Benutzerkonto „$1“ \nbei {{SITENAME}} abgelehnt.\n\nDies kann viele Gründe haben. Möglicherweise {{#FORMAL:hast du|haben Sie}} das Antragsformular\nnicht richtig ausgefüllt, {{#FORMAL:hast|haben}} nicht genügend Angaben gemacht oder {{#FORMAL:hast|haben}}\ndie Anforderungen auf andere Weise nicht erfüllt.\n\nMöglicherweise gibt es auf der Seite Kontaktadressen, an die {{#FORMAL:du dich|Sie sich}} wenden\n{{#FORMAL:kannst|können}}, wenn {{#FORMAL:du|Sie}} mehr über die Anforderungen wissen {{#FORMAL:möchtest|möchten}}.", + "confirmaccount-email-body4": "Leider wurde {{#FORMAL:dein|Ihr}} Antrag auf ein Benutzerkonto „$1“ \nbei {{SITENAME}} abgelehnt.\n\n$2\n\nMöglicherweise gibt es auf der Seite Kontaktadressen, an die {{#FORMAL:du dich|Sie sich}} wenden\n{{#FORMAL:kannst|können}}, wenn {{#FORMAL:du|Sie}} mehr über die Anforderungen wissen {{#FORMAL:möchtest|möchten}}.", + "confirmaccount-email-body5": "Bevor {{#FORMAL:deine|Ihre}} Anfrage für das Benutzerkonto „$1“ von {{SITENAME}} akzeptiert werden kann, {{#FORMAL:musst du|müssen Sie}} zusätzliche Informationen übermitteln.\n\n$2\n\nMöglicherweise gibt es auf der Seite Kontaktadressen, an die {{#FORMAL:du dich|Sie sich}} wenden {{#FORMAL:kannst|können}}, wenn {{#FORMAL:du|Sie}} mehr über die Anforderungen wissen {{#FORMAL:möchtest|möchten}}.", + "confirmaccount-spam-link": "Spam", + "confirmaccount-mark-request-spam": "Anfrage #$1 als Spam markieren?", + "confirmaccount-cannot-load-review": "Die Bewertungsseite konnte nicht geladen werden.", + "confirmaccount-failed-to-mark": "Als Spam markieren fehlgeschlagen: $1", + "confirmaccount-cannot-find-form": "Das Bestätigungsformular konnte nicht gefunden werden." } diff --git a/i18n/confirmaccount/el.json b/i18n/confirmaccount/el.json index 97a431ce..9f5f2582 100644 --- a/i18n/confirmaccount/el.json +++ b/i18n/confirmaccount/el.json @@ -5,6 +5,7 @@ "Crazymadlover", "Egmontaz", "Geraki", + "Giannaras99", "Glavkos", "Omnipaedista", "Protnet", @@ -51,7 +52,7 @@ "confirmaccount-deny": "Απόρριψη (αφαίρεση από τη λίστα)", "confirmaccount-hold": "Κράτημα", "confirmaccount-spam": "Σπαμ (να μην αποσταλέι μέιλ)", - "confirmaccount-reason": "Σχόλιο (θα συμπεριληφθεί στο μέιλ)", + "confirmaccount-reason": "Σχόλιο (περιλαμβάνεται στα email απόρριψης και κράτησης)", "confirmaccount-ip": "διεύθυνση ΙΡ:", "confirmaccount-submit": "Επιβεβαίωση", "confirmaccount-wsum": "Καλός ήρθατε!", diff --git a/i18n/confirmaccount/en.json b/i18n/confirmaccount/en.json index c799a60c..02eaca80 100644 --- a/i18n/confirmaccount/en.json +++ b/i18n/confirmaccount/en.json @@ -83,5 +83,10 @@ "confirmaccount-email-body2": "Your request for an account has been approved on {{SITENAME}}.\n\nAccount name: $1\n\nPassword: $2\n\n$3\n\nFor security reasons you will need to change your password on first login.\nTo login, please go to {{fullurl:Special:UserLogin}}.", "confirmaccount-email-body3": "Sorry, your request for an account \"$1\" has been rejected on {{SITENAME}}.\n\nThere are several ways this can happen.\nYou may not have filled out the form correctly, did not provide adequate length in your responses, or otherwise failed to meet some policy criteria.\nThere may be contact lists on site that you can use if you want to know more about user account policy.", "confirmaccount-email-body4": "Sorry, your request for an account \"$1\" has been rejected on {{SITENAME}}.\n\n$2\n\nThere may be contact lists on site that you can use if you want to know more about user account policy.", - "confirmaccount-email-body5": "Before your request for an account \"$1\" can be accepted on {{SITENAME}} you must first provide some additional information.\n\n$2\n\nThere may be contact lists on site that you can use if you want to know more about user account policy." + "confirmaccount-email-body5": "Before your request for an account \"$1\" can be accepted on {{SITENAME}} you must first provide some additional information.\n\n$2\n\nThere may be contact lists on site that you can use if you want to know more about user account policy.", + "confirmaccount-spam-link": "Spam", + "confirmaccount-mark-request-spam": "Mark request #$1 as spam?", + "confirmaccount-cannot-load-review": "Could not load the review page.", + "confirmaccount-failed-to-mark": "Failed to mark as spam: $1", + "confirmaccount-cannot-find-form": "Could not find the confirm form." } diff --git a/i18n/confirmaccount/es.json b/i18n/confirmaccount/es.json index c7d5a005..7b7c75a1 100644 --- a/i18n/confirmaccount/es.json +++ b/i18n/confirmaccount/es.json @@ -6,6 +6,7 @@ "BicScope", "Crazymadlover", "Dgstranz", + "DiegoAmbrocio", "Fitoschido", "Imre", "Indiralena", @@ -86,6 +87,8 @@ "confirmaccount-needreason": "Debes proveer una razón en el cuadro de comentario a continuación.", "confirmaccount-canthold": "Esta solicitud ya se encuentra retenida o eliminada.", "confirmaccount-badaction": "Una acción válida (aceptar, rechazar, retener) debe especificarse para poder continuar.", + "confirmaccount-mismatched": "Este campo debe coincidir con el de la solicitud de cuenta original.", + "confirmaccount-mismatched-general": "Se ha solicitado una anulación en un campo de la solicitud de cuenta original que no está permitido o no se ha establecido la opción \"contraseña de correo\".", "confirmaccount-acc": "Solicitud de cuenta confirmada;\ncreada nueva cuenta de usuario [[User:$1|$1]].", "confirmaccount-rej": "Solicitud de cuenta rechazada.", "confirmaccount-viewing": "(actualmente {{GENDER:$1|siendo}} visto por [[User:$1|$1]])", diff --git a/i18n/confirmaccount/et.json b/i18n/confirmaccount/et.json index d70f2106..447e07a7 100644 --- a/i18n/confirmaccount/et.json +++ b/i18n/confirmaccount/et.json @@ -6,7 +6,7 @@ "Pikne" ] }, - "confirmaccount-maintext": "'''Seda lehekülge kasutatakse saidil ''{{SITENAME}}'' ootel olevate kontotaotluste kinnitamiseks'''.\n\nIga kontotaotlusjärjekord koosneb kolmest alamjärjekorrast.\nÜhes on avatud taotlused. Teises järjekorras on taotlused, mille teine administraator on kinni pidanud ja mis ootavad edasist teavet. Kolmandas järjekorras on viimati tagasi lükatud taotlused.\n\nKui vastad taotlusele, vaata see hoolega läbi ja kui vajalik, siis kinnita selles sisalduv teave.\nSinu tegevus logitakse kinniselt.\nSult oodatakse, et vaataksid siin üle ka kogu muu tegevuse peale enda tegevuse.", + "confirmaccount-maintext": "'''Seda lehekülge kasutatakse ''{{GRAMMAR:inessive|{{SITENAME}}}}'' ootel olevate kontotaotluste kinnitamiseks'''.\n\nIga kontotaotlusjärjekord koosneb kolmest alamjärjekorrast.\nÜhes on avatud taotlused. Teises järjekorras on taotlused, mille teine administraator on kinni pidanud ja mis ootavad edasist teavet. Kolmandas järjekorras on viimati tagasi lükatud taotlused.\n\nKui vastad taotlusele, vaata see hoolega läbi ja kui vajalik, siis kinnita selles sisalduv teave.\nSinu tegevus logitakse kinniselt.\nSult oodatakse, et vaataksid siin üle ka kogu muu tegevuse peale enda tegevuse.", "confirmaccount-real-q": "Nimi", "confirmaccount-email-q": "E-post", "confirmaccount-bio-q": "Biograafia", diff --git a/i18n/confirmaccount/fa.json b/i18n/confirmaccount/fa.json index dc7396b8..677760c5 100644 --- a/i18n/confirmaccount/fa.json +++ b/i18n/confirmaccount/fa.json @@ -4,24 +4,28 @@ "Alireza", "Alirezaaa", "Armin1392", + "Beginneruser", + "Ebrahim", "Ebraminio", "FarsiNevis", + "Jeeputer", + "LordProfo", "Mjbmr", "Reza1615", "Taha" ] }, - "confirmaccounts": "تأیید درخواست اشتراک", - "confirmaccount-desc": "توانایی‌دادن به دیوان‌سالارها برای تأیید درخواست‌های حساب", - "confirmaccount-maintext": "'''این صفحه برای تأیید درخواست‌های حساب در حال انتظار در ''{{SITENAME}}'' استفاده شده‌است.'''\nهر صف درخواست حساب متشکل از ۳ زیر‌ صف است.\nیکی برای باز کردن درخواست،و دیگری برای درخواست‌های رد شدهٔ اخیر.\nهنگام پاسخ به یک درخواست،بادقت آن را بررسی کنید و اگر لازم بود، اطلاعات شامل در آن را تأیید کنید.\nعملیات شما به طور محرمانه وارد خواهد شد.\nهمچنین از شما انتظار می‌رود که هر فعالیتی که اینجا قرار گرفته علاوه بر کاری که خودتان انجام می‌دهید را بررسی کنید.", - "confirmaccount-list": "در زیر فهرستی از درخواست‌های حساب در حال انتظار تأییدیه، است.\nهنگامی که یک درخواست یا قبول شود یا رد، درخواست از این فهرست حذف خواهد شد.", + "confirmaccounts": "تأیید درخواست‌های حساب", + "confirmaccount-desc": "به دیوان‌سالاران توانایی تأیید درخواست‌های حساب می‌دهد", + "confirmaccount-maintext": "'''این صفحه برای تأیید درخواست‌های حساب در حال انتظار در ''{{SITENAME}}'' استفاده شده است.'''\nهر صف درخواست حساب متشکل از ۳ زیر‌ صف است.\nیکی برای باز کردن درخواست،و دیگری برای درخواست‌های رد شدهٔ اخیر.\nهنگام پاسخ به یک درخواست،بادقت آن را بررسی کنید و اگر لازم بود، اطلاعات شامل در آن را تأیید کنید.\nعملیات شما به طور محرمانه وارد خواهد شد.\nهمچنین از شما انتظار می‌رود که هر فعالیتی که اینجا قرار گرفته علاوه بر کاری که خودتان انجام می‌دهید را بررسی کنید.", + "confirmaccount-list": "در زیر فهرستی از درخواست‌های حساب در حال انتظار موافقت است.\nیک درخواستی به هر حال تأیید یا رد شود، از این فهرست حذف خواهد شد.", "confirmaccount-list2": "در زیر فهرست درخواست‌های حساب رد شده‌ای است که ممکن است چند روز پیش به طور خودکار حذف شده باشد.\nآنها هنوز می‌توانند در حساب‌ها تأیید شوند، هرچند ممکن است بخواهید که اول به سرپرست مردودی پیش از انجام آن مراجعه کنید.", "confirmaccount-list3": "در زیر فهرست درخواست‌های حساب منقضی شده‌ای است که ممکن است چند روز پیش به طور خودکار حذف شده باشد.\nآنها هنوز می‌توانند در حساب‌ها تأیید شوند.", - "confirmaccount-text": "این یک درخواست در حال انتظار برای یک حساب کاربری در '''{{SITENAME}}''' است.\nاطلاعات زیر را به دقت بررسی کنید.\nاگر شما این درخواست را تأیید می‌کنید، از جای آشکاری برای تنظیم وضعیت حساب کاربر استفاده کنید.\nویرایش‌های ساخته شده برای شرح‌حال برنامهٔ کاربردی، هر ذخیره‌سازی دائمی را متأثر نمی‌کند.\nتوجه داشته باشید که می‌توانید یک نام کاربری دیگر برای ایجاد حساب انتخاب کنید.\nاز این فقط برای اجتناب از تلاقی با دیگر نام‌ها استفاده کنید.\nاگر شما این صفحه را به سادگی بدون تأیید یا رد این درخواست رها کردید،در حال انتظار باقی خواهد ماند.", - "confirmaccount-none-o": "در حال حاضر هیچ درخواست بازی در این فهرست وجود ندارد.", - "confirmaccount-none-h": "در حال حاضر هیچ درخواست حساب در حال انتظاری در این فهرست نگه داشته نشده.", - "confirmaccount-none-r": "در حال حاضر هیچ درخواست حساب رد شده‌ای در این فهرست اخیراً نیست.", - "confirmaccount-none-e": "در حال حاضر هیچ درخواست حساب منقضی شده‌ای در این فهرست نیست.", + "confirmaccount-text": "این یک درخواست در حال انتظار برای یک حساب کاربری در '''{{SITENAME}}''' است.\nاطلاعات زیر را به دقت بررسی کنید.\nاگر شما این درخواست را تأیید می‌کنید، از جای آشکاری برای تنظیم وضعیت حساب استفاده کنید.\nویرایش‌های ساخته شده برای شرح‌حال برنامهٔ کاربردی، هر ذخیره‌سازی دائمی را متأثر نمی‌کند.\nتوجه داشته باشید که می‌توانید یک نام کاربری دیگر برای ایجاد حساب انتخاب کنید.\nاز این فقط برای اجتناب از تلاقی با دیگر نام‌ها استفاده کنید.\nاگر شما این صفحه را به سادگی بدون تأیید یا رد این درخواست رها کردید،در حال انتظار باقی خواهد ماند.", + "confirmaccount-none-o": "در حال حاضر هیچ درخواست باز حساب در دست انجامی در این فهرست وجود ندارد.", + "confirmaccount-none-h": "در حال حاضر هیچ درخواست نگهداشته شدۀ حساب در دست انجامی در این فهرست وجود ندارد.", + "confirmaccount-none-r": "در حال حاضر هیچ درخواست حساب اخیراً رد شده‌ای در این فهرست وجود ندارد.", + "confirmaccount-none-e": "در حال حاضر هیچ درخواست حساب منقضی شده‌ای در این فهرست وجود ندارد.", "confirmaccount-real-q": "نام", "confirmaccount-email-q": "ایمیل", "confirmaccount-bio-q": "زندگی‌نامه", @@ -30,14 +34,14 @@ "confirmaccount-showheld": "درخواست‌ها نگهداشته شد", "confirmaccount-showexp": "درخواست‌های منقضی‌شده", "confirmaccount-review": "بازبینی", - "confirmaccount-types": "از زیر یک صف اطلاعات حساب انتخاب کنید:", + "confirmaccount-types": "یک صف تأیید حساب از زیر انتخاب کنید:", "confirmaccount-all": "(نمایش تمام صف‌ها)", "confirmaccount-type": "صف:", "confirmaccount-type-0": "نویسنده آینده", "confirmaccount-type-1": "ویرایش‌گران آینده", "confirmaccount-q-open": "گشودن درخواست‌ها", "confirmaccount-q-held": "درخواست‌ها نگهداشته شد", - "confirmaccount-q-rej": "درخواست‌ها اخیرا رد شده‌است", + "confirmaccount-q-rej": "درخواست‌ها اخیرا رد شده است", "confirmaccount-q-stale": "درخواست‌های منقضی‌شده", "confirmaccount-badid": "هیچ درخواست در حال انتظاری مطابق شناسهٔ داده شده نیست.\nممکن است پیش از این کنترل شده باشد.", "confirmaccount-leg-user": "حساب کاربری", @@ -62,14 +66,14 @@ "confirmaccount-reject": "({{GENDER:$1|rejected}} by [[User:$1|$1]] on $3 at $4)", "confirmaccount-rational": "اصول و دلایل داده شده به متقاضی:", "confirmaccount-noreason": "(هیچ)", - "confirmaccount-autorej": "(این درخواست به دلیل عدم فعالیت به صورت خودکار رد شده‌است)", + "confirmaccount-autorej": "(این درخواست به دلیل عدم فعالیت به صورت خودکار رد شده است)", "confirmaccount-held": "({{GENDER:$1|marked}} \"on hold\" by [[User:$1|$1]] on $3 at $4)", - "confirmaccount-blockip": "مسدودکردن نشانی آی‌پی", + "confirmaccount-blockip": "بستن نشانی آی‌پی", "confirmaccount-create": "تأیید (ایجاد حساب)", "confirmaccount-deny": "رد (حذف از فهرست)", "confirmaccount-hold": "نگهدار", "confirmaccount-spam": "هرزنامه (ایمیل را ارسال نکن)", - "confirmaccount-reason": "نظر (در ایمیل خواهد بود):", + "confirmaccount-reason": "نظر (در ایمیل‌های رد یا نگهداری گنجانده می‌شود):", "confirmaccount-ip": "نشانی آی‌پی:", "confirmaccount-xff": "X-فرستاده شده برای:", "confirmaccount-agent": "یوزر ایجنت:", @@ -77,17 +81,22 @@ "confirmaccount-submit": "تأیید", "confirmaccount-needreason": "شما باید یک دلیل در جعبهٔ نظر زیر ارائه دهید.", "confirmaccount-canthold": "این درخواست پیش از این یا نگه داشته شده یا حذف شده.", - "confirmaccount-badaction": "یک عمل معتبر (قبول،رد،نگه‌داشتن) باید به منظور ادامه دادن، تعیین شود.", - "confirmaccount-acc": "درخواست حساب با موفقیت تأیید شد؛\n\tایجاد حساب کاربری تازه [[User:$1|$1]].", + "confirmaccount-badaction": "برای ادامه دادن، یک کنش معتبر (پذیرفتن، رد کردن، نگه‌داشتن) باید تعیین شود.", + "confirmaccount-acc": "درخواست حساب تأیید شد؛\n\tایجاد حساب کاربری تازهٔ [[User:$1|$1]].", "confirmaccount-rej": "درخواست حساب، رد شد.", "confirmaccount-viewing": "(currently {{GENDER:$1|being}} مشاهده شده توسط [[User:$1|$1]])", - "confirmaccount-summary": "ایجاد صفحه کاربری برای کاربر جدید.", + "confirmaccount-summary": "ایجاد صفحۀ کاربری برای کاربر جدید.", "confirmaccount-welc": "'''به ''{{SITENAME}}'' خوش آمدید!'''\nامیدواریم که شما بیشتر و بهتر کمک شوید.\nممکن است شما بخواهید [{{MediaWiki:Helppage}} help pages] را بخوانید.\nمجدداً خوش آمدید و لحظات خوبی داشته باشید!", "confirmaccount-wsum": "خوش آمدید!", - "confirmaccount-email-subj": "{{SITENAME}} درخواست حساب کاربری", - "confirmaccount-email-body": "درخواست شما برای یک حساب کاربری در {{SITENAME}} تأیید شده‌است.\nنام حساب: $1 \nرمز عبور: $2 \nبرای دلایل امنیتی، شما باید در اولین ورود به سامانه رمز خود را تغییر دهید.\nبرای ورود لطفاً به {{fullurl:Special:UserLogin}} بروید.", - "confirmaccount-email-body2": "درخواست شما برای یک حساب کاربری در {{SITENAME}} تأیید شده‌است.\n\nنام حساب: $1 \n\nرمز عبور: $2 \n\n$3\n\nبرای دلایل امنیتی، شما باید در اولین ورود به سامانه رمز خود را تغییر دهید.\nبرای ورود لطفاً به {{fullurl:Special:UserLogin}} بروید.", - "confirmaccount-email-body3": "با عرض پوزش درخواست شما برای حساب \"$1\" در {{SITENAME}} رد شده‌است.\nبه چنددلیل می‌تواند اتفاق بیفتد.\nممکن است شما فرم را به درستی پر نکرده‌اید،در پاسخ‌هایتان درازای کافی را ایجاد نکردید، یا در غیر این صورت نتوانستید بعضی ضوابط سیاستی را ببینید.\nممکن است فهرست‌های تماس‌ در سایتی باشد که اگر بخواهید دربارهٔ سیاست حساب کاربر بیشتر بدانید می‌توانید ار آن استفاده کنید.", - "confirmaccount-email-body4": "با عرض پوزش درخواست شما برای حساب \"$1\"در {{SITENAME}} رد شده‌است.\n$2\nممکن است فهرست‌های تماس‌ در سایتی باشد که اگر بخواهید دربارهٔ سیاست حساب کاربر بیشتر بدانید می‌توانید ار آن استفاده کنید.", - "confirmaccount-email-body5": "پیش از درخواست شما برای حساب \"$1\" می‌تواند در {{SITENAME}} قبول شود، شما ابتدا باید بعضی از اطلاعات اضافی را ایجاد کنید.\n$2\nممکن است فهرست‌های تماس‌ در سایتی باشد که اگر بخواهید دربارهٔ سیاست حساب کاربر بیشتر بدانید می‌توانید ار آن استفاده کنید." + "confirmaccount-email-subj": "درخواست حساب {{SITENAME}}", + "confirmaccount-email-body": "درخواست شما برای یک حساب در {{SITENAME}} تأیید شده است.\nنام حساب: $1 \nرمز عبور: $2 \nبه دلایل امنیتی، شما باید در اولین ورود به سامانه رمز خود را تغییر دهید.\nبرای ورود لطفاً به {{fullurl:Special:UserLogin}} بروید.", + "confirmaccount-email-body2": "درخواست شما برای یک حساب در {{SITENAME}} تأیید شده است.\n\nنام حساب: $1 \n\nرمز عبور: $2 \n\n$3\n\nبه دلایل امنیتی، شما باید در اولین ورود رمز عبورتان را تغییر دهید.\nبرای ورود لطفاً به {{fullurl:Special:UserLogin}} بروید.", + "confirmaccount-email-body3": "با عرض پوزش درخواست شما برای حساب \"$1\" در {{SITENAME}} رد شده است.\nبه چنددلیل می‌تواند اتفاق بیفتد.\nممکن است شما فرم را به درستی پر نکرده‌اید،در پاسخ‌هایتان درازای کافی را ایجاد نکردید، یا در غیر این صورت نتوانستید بعضی ضوابط سیاستی را ببینید.\nممکن است فهرست‌های تماس‌ در سایتی باشد که اگر بخواهید دربارهٔ سیاست حساب کاربری بیشتر بدانید می‌توانید ار آن استفاده کنید.", + "confirmaccount-email-body4": "با عرض پوزش درخواست شما برای یک حساب \"$1\" در {{SITENAME}} رد شده است.\n$2\nممکن است فهرست‌های تماس‌ در سایتی باشد که اگر بخواهید دربارهٔ سیاست حساب بیشتر بدانید می‌توانید ار آن استفاده کنید.", + "confirmaccount-email-body5": "پیش از درخواست شما برای یک حساب \"$1\" بتواند در {{SITENAME}} پذیرفته شود، شما ابتدا باید بعضی از اطلاعات اضافی را ارائه دهید.\n\n$2\n\nممکن است فهرست‌های تماسی روی سایت باشد که می‌توانید استفاده کنید اگر شما بخواهید بیشتر دربارۀ سیاست حساب کاربری بدانید.", + "confirmaccount-spam-link": "هرزنگاری", + "confirmaccount-mark-request-spam": "علامت‌گذاری درخواست شمارهٔ $1 به‌عنوان هرزنامه؟", + "confirmaccount-cannot-load-review": "ناتوان در بارگیری صفحهٔ بازبینی.", + "confirmaccount-failed-to-mark": "ناتوان در علامت‌گذاری به‌عنوان هرزنامه: $1", + "confirmaccount-cannot-find-form": "ناتوان در یافتن فرم تأیید." } diff --git a/i18n/confirmaccount/fi.json b/i18n/confirmaccount/fi.json index c6d35ec0..9157e82a 100644 --- a/i18n/confirmaccount/fi.json +++ b/i18n/confirmaccount/fi.json @@ -11,8 +11,10 @@ "Nike", "Pxos", "Pyscowicz", + "Samoasambia", "Str4nd", "Taleman", + "Valtlai", "Valtlait", "Varusmies", "VezonThunder" @@ -82,7 +84,7 @@ "confirmaccount-legend": "Vahvista tai hylkää tämä tunnus", "confirmaccount-submit": "Vahvista", "confirmaccount-needreason": "Alla olevaan huomautuslaatikkoon on kirjoitettava perustelu.", - "confirmaccount-canthold": "Tämä pyyntöf on jo joko pysäytetty tai poistettu.", + "confirmaccount-canthold": "Tämä pyyntö on jo joko pysäytetty tai poistettu.", "confirmaccount-acc": "Pyynnön vahvistaminen onnistui.\n\tKäyttäjätunnus [[User:$1|$1]] luotiin.", "confirmaccount-rej": "Pyynnön hylkääminen onnistui.", "confirmaccount-viewing": "(juuri nyt {{GENDER:$1|katseltavana}} käyttäjällä [[User:$1|$1]])", @@ -92,7 +94,7 @@ "confirmaccount-email-subj": "Käyttäjätunnuspyyntö {{GRAMMAR:illative|{{SITENAME}}}}", "confirmaccount-email-body": "Pyytämäsi käyttäjätunnus {{GRAMMAR:illative|{{SITENAME}}}} on hyväksytty.\n\nKäyttäjätunnus: $1\n\nSalasana: $2\n\nSalasana on vaihdettava ensimmäisellä sisäänkirjautumiskerralla tietoturvasyistä. Kirjaudu sisään sivulla {{fullurl:Special:UserLogin}}.", "confirmaccount-email-body2": "Pyytämäsi käyttäjätunnus sivulle {{SITENAME}} on hyväksytty.\n\nKäyttäjätunnus: $1\n\nSalasana: $2\n\n$3\n\nSalasana on vaihdettava ensimmäisellä sisäänkirjautumiskerralla tietoturvasyistä. Kirjaudu sisään sivulla {{fullurl:Special:UserLogin}}.", - "confirmaccount-email-body3": "Valitettavasti pyyntösi käyttäjätunnuksesta ”$1” sivulle {{SITENAME}} on hylätty.\n\nHylkäämisen mahdollisia syitä on useita.\nLomaketta ei ehkä ole täytetty oikein, kuvaus ei ollut tarpeeksi pitkä tai joku muu toimintaperiaatteen ehdoista jäi täyttämättä.\nJos haluat tietää enemmän toimintaperiaatteista käyttäjätunnusten myöntämiseen saattaa sivuilla olla luettelo yhteystiedoista.", + "confirmaccount-email-body3": "Valitettavasti pyyntösi käyttäjätunnuksesta ”$1” {{GRAMMAR:inessive|{{SITENAME}}}} on hylätty.\n\nHylkäämisen mahdollisia syitä on useita.\nLomaketta ei ehkä ole täytetty oikein, kuvaus ei ollut tarpeeksi pitkä tai joku muu toimintaperiaatteen ehdoista jäi täyttämättä.\nJos haluat tietää enemmän toimintaperiaatteista käyttäjätunnusten myöntämiseen saattaa sivuilla olla luettelo yhteystiedoista.", "confirmaccount-email-body4": "Valitettavasti pyyntösi käyttäjätunnuksesta ”$1” {{GRAMMAR:illative|{{SITENAME}}}} on hylätty.\n\n$2\n\nJos haluat tietää enemmän toimintaperiaatteista käyttäjätunnusten myöntämiseen saattaa sivuilla olla luettelo yhteystiedoista.", "confirmaccount-email-body5": "Ennenkuin pyytämäsi käyttäjätunnus ”$1” {{GRAMMAR:illative|{{SITENAME}}}} voidaan hyväksyä, tarvitaan lisätietoja.\n\n$2\n\nJos haluat tietää enemmän toimintaperiaatteista käyttäjätunnuksesta myöntämiseen saattaa sivuilla olla luettelo yhteystiedoista." } diff --git a/i18n/confirmaccount/fr.json b/i18n/confirmaccount/fr.json index 2e0a2ef5..bc4163c2 100644 --- a/i18n/confirmaccount/fr.json +++ b/i18n/confirmaccount/fr.json @@ -16,90 +16,96 @@ "Sherbrooke", "Thibaut120094", "Urhixidur", + "Verdy p", "Wladek92", "Zetud" ] }, - "confirmaccounts": "Demande de confirmation de comptes", + "confirmaccounts": "Demandes de confirmation de compte", "confirmaccount-extensionname": "Confirmer les comptes utilisateur", - "confirmaccount-desc": "Donne aux bureaucrates la possibilité de confirmer les demandes de comptes d’utilisateurs", - "confirmaccount-maintext": "'''Cette page est utilisée pour confirmer les demandes de compte utilisateur sur ''{{SITENAME}}'''''.\n\nChaque demande de compte utilisateur consiste en trois sous-listes : une pour les demandes non traitées, une pour les comptes réservés dans l'attente de plus amples informations, et une dernière pour les comptes récemment rejetés.\n\nLors de la réponse à une demande, vérifiez-la attentivement et, le cas échéant, confirmez les informations qui y sont mentionnées. Vos actions seront inscrites séparément dans un journal. Vous devez aussi vérifier l'activité sur {{SITENAME}} en plus de la vôtre.", - "confirmaccount-list": "Voici, ci-dessous, la liste des comptes en attente d’approbation. \nDès qu'une demande est acceptée ou bien rejetée, elle est retirée de cette liste.", - "confirmaccount-list2": "Voici la liste des comptes récemment rejetés lesquels seront supprimés automatiquement après quelques jours. \nIls peuvent encore être approuvés, aussi vous pouvez consulter les rejets avant de le faire.", - "confirmaccount-list3": "Ci-dessous se trouve une liste de comptes expirés qui pourraient être automatiquement supprimés après quelques jours. \nIls peuvent encore être approuvés.", - "confirmaccount-text": "Voici une demande en cours pour un compte utilisateur sur '''{{SITENAME}}'''.\n\nVérifiez soigneusement toutes les informations ci-dessous. Si vous approuvez cette demande, sélectionnez la situation à donner à l'utilisateur. Les changements apportés aux biographies de l'application n'affecteront pas les références permanentes déjà stockées.\n\nNotez que vous pouvez choisir de créer un compte sous un autre nom. Faites ceci uniquement pour éviter des conflits avec d’autres.\n\nSi vous quittez cette page sans confirmer ou rejeter cette demande, elle restera en attente.", - "confirmaccount-none-o": "Il n'y a actuellement aucune demande de compte utilisateur en cours dans cette liste.", - "confirmaccount-none-h": "Il n'y a actuellement aucune réservation de compte utilisateur en cours dans cette liste.", - "confirmaccount-none-r": "Il n'y a actuellement aucun rejet récent de demande de compte utilisateur dans cette liste.", - "confirmaccount-none-e": "Il n'y a actuellement aucune requête de compte expirée dans la liste.", + "confirmaccount-desc": "Donne aux bureaucrates la possibilité de confirmer les demandes de compte d’utilisateur", + "confirmaccount-maintext": "'''Cette page est utilisée pour confirmer les demandes de compte utilisateur sur ''{{SITENAME}}'''''.\n\nChaque file d’attente de demandes de compte utilisateur comprend trois parties : une pour les demandes ouvertes pas encore traitées, une pour les demandes placées en attente de plus amples informations par d’autres administrateurs, ainsi qu’une dernière pour les demandes récemment rejetées.\n\nLorsque vous répondez à une demande, passez-la attentivement en revue et, le cas échéant, confirmez les informations qui y sont mentionnées. Vos actions seront inscrites dans un journal privé. Vous devriez également passer en revue toute activité ayant lieu ici, au delà de ce que vous effectuez vous-même.", + "confirmaccount-list": "Voici, ci-dessous, la liste des comptes en attente d’approbation. \nDès qu’une demande est acceptée ou bien rejetée, elle est retirée de cette liste.", + "confirmaccount-list2": "Voici une liste de demandes de comptes récemment rejetées, qui seront supprimées automatiquement après quelques jours.\nElles peuvent encore être approuvées pour créer des comptes, mais vous pourriez vouloir d’abord consulter l’administrateur qui les a rejetées avant de le faire.", + "confirmaccount-list3": "Voici une liste de demandes de comptes expirées qui pourraient être automatiquement supprimés après quelques jours.\nElles peuvent encore être approuvées pour créer des comptes.", + "confirmaccount-text": "Voici une demande en cours pour un compte utilisateur sur '''{{SITENAME}}'''.\n\nPassez attentivement en revue toutes les informations ci-dessous.\nSi vous approuvez cette demande, utilisez le sélecteur pour définir le statut du compte pour l'utilisateur.\nLes modifications apportées aux biographies des candidatures n’affecteront aucune des données d’accès permanentes déjà stockées.\nNotez que vous pouvez choisir de créer un compte sous un autre nom d’utilisateur.\nNe faites cela que pour éviter des conflits avec d’autres noms.\n\nSi vous quittez cette page sans confirmer ni rejeter cette demande, elle restera en attente.", + "confirmaccount-none-o": "Il n’y a actuellement aucune demande de compte ouverte en attente dans cette liste.", + "confirmaccount-none-h": "Il n’y a actuellement aucune demande de compte placée en attente dans cette liste.", + "confirmaccount-none-r": "Il n’y a actuellement aucune demande de compte récemment rejetée dans cette liste.", + "confirmaccount-none-e": "Il n’y a actuellement aucune demande de compte expirée dans cette liste.", "confirmaccount-real-q": "Nom", "confirmaccount-email-q": "Courriel", "confirmaccount-bio-q": "Biographie", - "confirmaccount-showopen": "Requêtes ouvertes", - "confirmaccount-showrej": "Requêtes rejetées", - "confirmaccount-showheld": "Voir la liste des comptes réservés en cours de traitement", - "confirmaccount-showexp": "Requêtes expirées", - "confirmaccount-review": "Approbation/Rejet", - "confirmaccount-types": "Sélectionnez un compte dans la liste d'attente ci-dessous :", - "confirmaccount-all": "(Voir toutes les listes d'attente)", - "confirmaccount-type": "Liste d'attente sélectionnée :", - "confirmaccount-type-0": "auteurs éventuels", - "confirmaccount-type-1": "contributeurs éventuels", - "confirmaccount-q-open": "demandes faites", - "confirmaccount-q-held": "demandes mises en attente", - "confirmaccount-q-rej": "demandes rejetées récemment", - "confirmaccount-q-stale": "Requêtes expirées", - "confirmaccount-badid": "Il n’y a aucune demande en cours correspondant à l’ID indiqué. Il est possible qu‘il ait déjà été traité.", + "confirmaccount-showopen": "demandes ouvertes", + "confirmaccount-showrej": "demandes rejetées", + "confirmaccount-showheld": "demandes placées en attente", + "confirmaccount-showexp": "demandes expirées", + "confirmaccount-review": "Passer en revue", + "confirmaccount-types": "Sélectionnez une file d’attente de confirmations de compte ci-dessous :", + "confirmaccount-all": "(voir toutes les files d’attente)", + "confirmaccount-type": "File d’attente :", + "confirmaccount-type-0": "auteurs potentiels", + "confirmaccount-type-1": "contributeurs potentiels", + "confirmaccount-q-open": "demandes ouvertes", + "confirmaccount-q-held": "demandes placées en attente", + "confirmaccount-q-rej": "demandes récemment rejetées", + "confirmaccount-q-stale": "demandes expirées", + "confirmaccount-badid": "Il n’y a aucune demande en attente correspondant à l’identifiant indiqué.\nIl est possible qu‘elle ait déjà été traitée.", "confirmaccount-leg-user": "Compte utilisateur", - "confirmaccount-leg-areas": "Centres d'intérêts principaux", + "confirmaccount-leg-areas": "Principaux centres d’intérêts", "confirmaccount-leg-person": "Informations personnelles", "confirmaccount-leg-other": "Autres informations", - "confirmaccount-leg-ip": "données d'adresse IP", + "confirmaccount-leg-ip": "Données d’adresse IP", "confirmaccount-name": "Nom d’utilisateur", - "confirmaccount-real": "Nom :", - "confirmaccount-email": "Courriel :", - "confirmaccount-reqtype": "Situation :", + "confirmaccount-real": "Nom :", + "confirmaccount-email": "Courriel :", + "confirmaccount-reqtype": "Situation :", "confirmaccount-pos-0": "auteur", "confirmaccount-pos-1": "contributeur", - "confirmaccount-bio": "Biographie :", - "confirmaccount-attach": "CV :", - "confirmaccount-notes": "Notes supplémentaires :", - "confirmaccount-urls": "Liste des sites web :", - "confirmaccount-none-p": "(non pourvu)", - "confirmaccount-confirm": "Utilisez les options ci-dessous pour accepter, rejeter ou mettre en attente la demande:", + "confirmaccount-bio": "Biographie :", + "confirmaccount-attach": "CV :", + "confirmaccount-notes": "Notes supplémentaires :", + "confirmaccount-urls": "Liste de sites web :", + "confirmaccount-none-p": "(non précisé)", + "confirmaccount-confirm": "Utilisez les options ci-dessous pour accepter, rejeter ou placer en attente cette demande :", "confirmaccount-econf": "(confirmé)", - "confirmaccount-withcv": "(CV joint)", - "confirmaccount-reject": "({{GENDER:$1|rejeté}} par [[User:$1|$1]] le $3 à $4)", - "confirmaccount-rational": "Motif donné au candidat", + "confirmaccount-withcv": "(Curriculum vitæ ci-joint)", + "confirmaccount-reject": "(demande rejetée par {{GENDER:$1|}}[[User:$1|$1]] le $3 à $4)", + "confirmaccount-rational": "Motif donné au candidat :", "confirmaccount-noreason": "(aucun)", - "confirmaccount-autorej": "(cette requête a été abandonnée automatiquement pour cause d’inactivité)", - "confirmaccount-held": "({{GENDER:$1|marqué}} \"réservé\" par [[User:$1|$1]] le $3 à $4)", + "confirmaccount-autorej": "(cette demande a été automatiquement abandonnée pour cause d’inactivité)", + "confirmaccount-held": "(demande « placée en attente » par {{GENDER:$1|}}[[User:$1|$1]] le $3 à $4)", "confirmaccount-blockip": "Bloquer l’adresse IP", - "confirmaccount-create": "Approbation (crée le compte)", - "confirmaccount-deny": "Rejet (supprime le compte)", - "confirmaccount-hold": "Réservé", - "confirmaccount-spam": "Pourriel (n’envoyez pas de courriel)", - "confirmaccount-reason": "Commentaire (figurera dans les courriels de rejet et de conservation) :", - "confirmaccount-ip": "Adresse IP", - "confirmaccount-xff": "X-Forwarded-For:", - "confirmaccount-agent": "User-Agent:", - "confirmaccount-legend": "Confirmer ce compte", - "confirmaccount-submit": "Confirmation", - "confirmaccount-needreason": "Vous devez indiquer un motif dans le cadre ci-après.", - "confirmaccount-canthold": "Cette requête est déjà, soit prise en compte, soit supprimée.", - "confirmaccount-badaction": "Une action valide (accepter, refuser, retenir) doit être spécifiée pour continuer.", - "confirmaccount-mismatched": "Ce champ doit correspondre à celui de la requête de compte d’origine.", - "confirmaccount-mismatched-general": "Un forçage non autorisé a été demandé sur un champ de la requête de compte originale, ou l’option « mot de passe de courriel » n’a pas été positionnée.", - "confirmaccount-acc": "Demande de compte confirmée ;\n\tnouveau compte utilisat{{GENDER:$1|eur|rice}} créé [[User:$1|$1]].", + "confirmaccount-create": "Approuver (créer le compte)", + "confirmaccount-deny": "Rejeter (retirer de la liste)", + "confirmaccount-hold": "Placer en attente", + "confirmaccount-spam": "Rejeter comme indésirable (n’envoyer aucun courriel)", + "confirmaccount-reason": "Commentaire (inclus dans les courriels de rejet ou de placement en attente) :", + "confirmaccount-ip": "Adresse IP :", + "confirmaccount-xff": "Connexion d’origine mandatée (X-Forwarded-For) :", + "confirmaccount-agent": "Agent utilisateur (User-Agent) :", + "confirmaccount-legend": "Confirmer ou rejeter ce compte", + "confirmaccount-submit": "Confirmer", + "confirmaccount-needreason": "Vous devez indiquer un motif dans le cadre ci-dessous.", + "confirmaccount-canthold": "Cette demande est déjà soit prise en compte, soit supprimée.", + "confirmaccount-badaction": "Une action valide (accepter, refuser, placer en attente) doit être spécifiée pour continuer.", + "confirmaccount-mismatched": "Ce champ doit correspondre à celui de la demande originale de compte.", + "confirmaccount-mismatched-general": "Un forçage non autorisé a été demandé sur un champ de la demande originale de compte, ou bien l’option « mot de passe de courriel » n’a pas été positionnée.", + "confirmaccount-acc": "Demande de compte confirmée ;\n\tnouveau compte créé pour l’utilisat{{GENDER:$1|eur|rice}} [[User:$1|$1]].", "confirmaccount-rej": "Demande de compte rejetée.", - "confirmaccount-viewing": "(actuellement en train d'être {{GENDER:$1|visionné}} par [[User:$1|$1]])", + "confirmaccount-viewing": "(actuellement en cours de visionnage par {{GENDER:$1|}}[[User:$1|$1]])", "confirmaccount-summary": "Création de la page d’un nouvel utilisateur.", - "confirmaccount-welc": "'''Bienvenue sur ''{{SITENAME}}'' !'''\nNous espérons que vous contribuerez en quantité et en qualité.\nVous désirerez sans doute lire [{{MediaWiki:Helppage}} les pages d'aide].\nEncore une fois, bienvenue et amusez-vous bien !", - "confirmaccount-wsum": "Bienvenue !", + "confirmaccount-welc": "'''Bienvenue sur ''{{SITENAME}}'' !'''\nNous espérons que vous contribuerez en quantité et en qualité.\nVous désirerez sans doute lire les [{{MediaWiki:Helppage}} pages d’aide].\nEncore une fois, bienvenue et amusez-vous bien !", + "confirmaccount-wsum": "Bienvenue !", "confirmaccount-email-subj": "Demande de compte sur {{SITENAME}}", - "confirmaccount-email-body": "Votre demande de compte a été acceptée sur {{SITENAME}}.\n\nNom du compte utilisateur : $1\n\nMot de passe : $2\n\nPour des raisons de sécurité, vous devrez changer votre mot de passe lors de votre première connexion. Pour vous connecter, allez sur\n{{fullurl:Special:UserLogin}}.", - "confirmaccount-email-body2": "Votre demande de compte utilisateur a été acceptée sur {{SITENAME}}.\n\nNom du compte utilisateur : $1\n\nMot de passe: $2\n\n$3\n\nPour des raisons de sécurité, vous devrez changer votre mot de passe lors de votre première connexion. Pour vous connecter, allez sur \n{{fullurl:Special:UserLogin}}.", - "confirmaccount-email-body3": "Désolé, votre demande de compte utilisateur « $1 » a été rejetée sur {{SITENAME}}.\n\nPlusieurs raisons peuvent expliquer ce cas de figure. Il est possible que vous ayez mal rempli le formulaire, ou que vous n’ayez pas indiqué suffisamment d’informations dans vos réponses. Il est encore possible que vous ne remplissiez pas les critères d’éligibilité pour obtenir votre compte. Il est possible d’être sur la liste des contacts si vous désirez mieux connaître les conditions requises.", - "confirmaccount-email-body4": "Désolé, votre demande de compte utilisateur « $1 » a été rejetée sur {{SITENAME}}.\n\n$2\n\nIl peut y avoir des listes de contacts sur le site que vous pourrez consulter pour en savoir plus à propos des règles d'inscription.", - "confirmaccount-email-body5": "Avant que votre requête pour le compte « $1 » ne puisse être acceptée sur {{SITENAME}}, vous devez fournir quelques informations supplémentaires.\n\n$2\n\nCeci permet d’être sur la liste des contacts du site, si vous désirez en savoir plus sur les règles concernant les comptes." + "confirmaccount-email-body": "Votre demande de compte a été acceptée sur {{SITENAME}}.\n\nNom du compte utilisateur : $1\n\nMot de passe : $2\n\nPour des raisons de sécurité, vous devrez changer votre mot de passe lors de votre première connexion.\nPour vous connecter, allez sur {{fullurl:Special:UserLogin}}.", + "confirmaccount-email-body2": "Votre demande de compte utilisateur a été acceptée sur {{SITENAME}}.\n\nNom du compte utilisateur : $1\n\nMot de passe : $2\n\n$3\n\nPour des raisons de sécurité, vous devrez changer votre mot de passe lors de votre première connexion.\nPour vous connecter, allez sur {{fullurl:Special:UserLogin}}.", + "confirmaccount-email-body3": "Désolé, votre demande de compte utilisateur « $1 » a été rejetée sur {{SITENAME}}.\n\nPlusieurs raisons peuvent expliquer ce cas de figure.\nIl est possible que vous ayez mal rempli le formulaire, ou bien que vous n’ayez pas indiqué suffisamment d’informations dans vos réponses. Il est encore possible que vous ne remplissiez pas les critères d’éligibilité pour obtenir votre compte.\nIl peut y avoir des listes de contacts sur le site que vous pouvez utiliser si vous désirez en savoir plus à propos de la politique des comptes d’utilisateur.", + "confirmaccount-email-body4": "Désolé, votre demande de compte utilisateur « $1 » a été rejetée sur {{SITENAME}}.\n\n$2\n\nIl peut y avoir des listes de contacts sur le site que vous pouvez utiliser si vous voulez en savoir plus à propos de la politique des comptes d’utilisateur.", + "confirmaccount-email-body5": "Avant que votre requête pour le compte « $1 » ne puisse être acceptée sur {{SITENAME}}, vous devez fournir quelques informations supplémentaires.\n\n$2\n\nIl peut y avoir des listes de contacts sur le site que vous pouvez utiliser si vous voulez en savoir plus à propos de la politique des comptes d’utilisateur.", + "confirmaccount-spam-link": "Indésirable", + "confirmaccount-mark-request-spam": "Marquer la demande nº $1 comme indésirable ?", + "confirmaccount-cannot-load-review": "Impossible de charger la page de passage en revue.", + "confirmaccount-failed-to-mark": "Échec du marquage comme indésirable : $1", + "confirmaccount-cannot-find-form": "Formulaire de confirmation introuvable." } diff --git a/i18n/confirmaccount/gl.json b/i18n/confirmaccount/gl.json index 4a25f4fd..4a5af587 100644 --- a/i18n/confirmaccount/gl.json +++ b/i18n/confirmaccount/gl.json @@ -9,34 +9,34 @@ ] }, "confirmaccounts": "Confirmar solicitudes de contas", - "confirmaccount-desc": "Dá aos burócratas a capacidade de confirmar as solicitudes de contas", - "confirmaccount-maintext": "'''Esta páxina úsase para confirmar as solicitudes de contas pendentes en ''{{SITENAME}}''.'''\n\nCada cola de solicitudes consiste en tres sublistas.\nUnha para abrir a solicitude, outra para aquelas que fosen postas por outros administradores en espera de máis información e unha última para as solicitudes rexeitadas recentemente.\n\nAo responder unha solicitude revísea con coidado e, se é necesario, confirme a información alí contida.\nAs súas accións quedarán rexistradas de maneira privada.\nAgárdase tamén que revise calquera actividade que teña lugar aquí á parte das súas propias.", - "confirmaccount-list": "A continuación está a lista de contas pendentes de aprobación.\nAs contas aprobadas crearanse e eliminaranse desta lista. As contas rexeitadas simplemente eliminaranse desta lista.", - "confirmaccount-list2": "A continuación está a lista de solicitudes de contas rexeitadas recentemente que poden eliminarse automaticamente unha vez que teñan varios días.\nPoden aínda ser aceptadas como contas, aínda que pode ser mellor que consulte primeiro co administrador que as rexeitou antes de facelo.", - "confirmaccount-list3": "A continuación está a lista coas solicitudes de contas que caducaron e que poden ser borradas automaticamente unha vez que teñan uns días.\nAínda poden ser aprobadas como contas.", - "confirmaccount-text": "Esta é unha solicitude pendente dunha conta de usuario en '''{{SITENAME}}'''.\n\nExamine coidadosamente a información de embaixo. Se está de acordo con esta solicitude, seleccione no despregable a posición para fixar o status da conta do usuario.\nAs edicións feitas na biografía da solicitude non afectarán a calquera almacenamento de credenciais permanente. Observe que pode escoller, se quere, crear unha conta cun nome de usuario diferente.\nUse isto só para evitar conflitos con outros nomes.\n\nSe simplemente deixa esta páxina sen confirmar ou rexeitar esta solicitude, quedará como pendente.", - "confirmaccount-none-o": "Neste momento non hai peticións de contas pendentes nesta lista.", - "confirmaccount-none-h": "Actualmente non hai solicitudes pendentes a ter en conta nesta lista.", - "confirmaccount-none-r": "Actualmente non hai contas rexeitas recentemente nesta lista.", - "confirmaccount-none-e": "Actualmente non hai solicitudes de contas caducadas nesta lista.", + "confirmaccount-desc": "Dálles aos burócratas a capacidade de confirmar as solicitudes de contas", + "confirmaccount-maintext": "'''Esta páxina úsase para confirmar as solicitudes de contas pendentes en ''{{SITENAME}}''.'''\n\nCada cola de solicitudes consta de tres subcolas.\nUnha para as solicitudes abertas, outra para aquelas que foron pausadas por outros administradores á espera de máis información e unha última para as solicitudes rexeitadas recentemente.\n\nAo responderes unha solicitude, revísaa con coidado e, se é necesario, confirma a información que contén.\nAs túas accións quedarán rexistradas de maneira privada.\nAgárdase tamén que revises calquera actividade que teña lugar aquí, á parte do que fagas ti.", + "confirmaccount-list": "A continuación está a lista de contas pendentes de aprobación.\nUn vez que unha solicitude sexa aprobada ou rexeitada, eliminarase desta lista.", + "confirmaccount-list2": "A continuación está a lista de solicitudes de contas rexeitadas recentemente que poden eliminarse automaticamente despois duns días.\nAínda poden ser aceptadas como contas, pero se cadra é mellor que consultes primeiro co administrador que as rexeitou antes de facelo.", + "confirmaccount-list3": "A continuación está a lista de solicitudes de contas que caducaron e que poden eliminarse automaticamente despois duns días.\nAínda poden ser aceptadas como contas.", + "confirmaccount-text": "Esta é unha solicitude pendente para unha conta de usuario en '''{{SITENAME}}'''.\n\nExamina coidadosamente a seguinte información.\nSe estás a aprobar esta solicitude, selecciona no despregable a posición para fixar o estado da conta de usuario.\nAs edicións feitas na biografía da solicitude non afectarán a calquera almacenamento de credenciais permanente.\nTen en conta que podes optar por crear a conta cun nome de usuario diferente.\nUsa isto só para evitar conflitos con outros nomes.\n\nSe simplemente abandonas esta páxina sen confirmar ou rexeitar esta solicitude, quedará como pendente.", + "confirmaccount-none-o": "Actualmente, nesta lista non hai solicitudes de conta pendentes que estean abertas.", + "confirmaccount-none-h": "Actualmente, nesta lista non hai solicitudes de conta pendentes que estean á espera.", + "confirmaccount-none-r": "Actualmente, nesta lista non hai solicitudes de conta pendentes que estean rexeitadas.", + "confirmaccount-none-e": "Actualmente, nesta lista non hai solicitudes de conta pendentes que estean caducadas.", "confirmaccount-real-q": "Nome", "confirmaccount-email-q": "Correo electrónico", "confirmaccount-bio-q": "Biografía", - "confirmaccount-showopen": "solicitudes en curso", + "confirmaccount-showopen": "solicitudes abertas", "confirmaccount-showrej": "solicitudes rexeitadas", - "confirmaccount-showheld": "Ver as contas pendentes de ter en conta na lista", - "confirmaccount-showexp": "solicitudes que expiraron", + "confirmaccount-showheld": "solicitudes á espera", + "confirmaccount-showexp": "solicitudes caducadas", "confirmaccount-review": "Revisar", - "confirmaccount-types": "Seleccione unha cola de confirmación de contas de embaixo:", + "confirmaccount-types": "Selecciona unha cola de confirmación de contas de embaixo:", "confirmaccount-all": "(amosar tódalas colas)", - "confirmaccount-type": "Cola seleccionada:", + "confirmaccount-type": "Cola:", "confirmaccount-type-0": "autores potenciais", "confirmaccount-type-1": "editores potenciais", - "confirmaccount-q-open": "solicitudes en curso", - "confirmaccount-q-held": "solicitudes suspendidas", - "confirmaccount-q-rej": "solicitudes recentemente rexeitadas", - "confirmaccount-q-stale": "solicitudes expiradas", - "confirmaccount-badid": "Non existe unha solicitude pendente que corresponda co ID fornecido. Pode que xa fose examinada.", + "confirmaccount-q-open": "solicitudes abertas", + "confirmaccount-q-held": "solicitudes á espera", + "confirmaccount-q-rej": "solicitudes rexeitadas recentemente", + "confirmaccount-q-stale": "solicitudes caducadas", + "confirmaccount-badid": "Non existe ningunha solicitude pendente correspondente ao identificador fornecido. Se cadra xa foi xestionada.", "confirmaccount-leg-user": "Conta de usuario", "confirmaccount-leg-areas": "Principais áreas de interese", "confirmaccount-leg-person": "Información persoal", @@ -49,44 +49,49 @@ "confirmaccount-pos-0": "autor", "confirmaccount-pos-1": "editor", "confirmaccount-bio": "Biografía:", - "confirmaccount-attach": "Curriculum Vitae:", + "confirmaccount-attach": "Currículo/CV:", "confirmaccount-notes": "Notas adicionais:", "confirmaccount-urls": "Lista de sitios web:", "confirmaccount-none-p": "(non fornecido)", - "confirmaccount-confirm": "Use os botóns inferiores para aceptar, rexeitar ou deixar en suspenso esta solicitude:", + "confirmaccount-confirm": "Usa as seguintes opcións para aceptar, rexeitar ou deixar á espera esta solicitude:", "confirmaccount-econf": "(confirmada)", "confirmaccount-withcv": "(CV adxunto)", "confirmaccount-reject": "({{GENDER:$1|rexeitada}} por [[User:$1|$1]] o $3 ás $4)", "confirmaccount-rational": "Explicación dada ao solicitante:", - "confirmaccount-noreason": "(ningún)", + "confirmaccount-noreason": "(ningunha)", "confirmaccount-autorej": "(esta solicitude foi descartada automaticamente debido á inactividade)", - "confirmaccount-held": "({{GENDER:$1|marcada}} \"en suspenso\" por [[User:$1|$1]] o $3 ás $4)", - "confirmaccount-blockip": "Bloquear enderezo IP", + "confirmaccount-held": "({{GENDER:$1|marcada}} «á espera» por [[User:$1|$1]] o $3 ás $4)", + "confirmaccount-blockip": "Bloquear o enderezo IP", "confirmaccount-create": "Aceptar (crear a conta)", "confirmaccount-deny": "Rexeitar (eliminar da lista)", - "confirmaccount-hold": "Suspender", - "confirmaccount-spam": "Spam (non enviar correo electrónico)", - "confirmaccount-reason": "Comentario (incluído nos correos de rexeito e conservación):", + "confirmaccount-hold": "Pór á espera", + "confirmaccount-spam": "Spam (non enviar ningún correo electrónico)", + "confirmaccount-reason": "Comentario (incluído nos correos de rexeitamento e «á espera»):", "confirmaccount-ip": "Enderezo IP:", "confirmaccount-xff": "X-Forwarded-For:", "confirmaccount-agent": "Axente de usuario:", "confirmaccount-legend": "Confirmar ou rexeitar esta conta", "confirmaccount-submit": "Confirmar", - "confirmaccount-needreason": "Debe incluír un motivo na caixa de comentarios de embaixo.", - "confirmaccount-canthold": "Esta solicitude está en espera ou foi borrada.", - "confirmaccount-badaction": "Cómpre especificar unha acción válida (aceptar, rexeitar, reter) para poder continuar.", - "confirmaccount-mismatched": "Este campo debe coincidir co da petición de conta orixinal.", - "confirmaccount-mismatched-general": "Pediuse ignorar e sustituír un valor nun campo da petición de conta orixinal que non está permitido ou non se definiu a opción de \"contrasinal de correo\".", - "confirmaccount-acc": "Confirmouse a solicitude de conta;\ncreouse a nova conta de usuario [[User:$1|$1]].", + "confirmaccount-needreason": "Debes indicar un motivo na caixa de comentarios de embaixo.", + "confirmaccount-canthold": "Esta solicitude está á espera ou foi eliminada.", + "confirmaccount-badaction": "Cómpre especificar unha acción válida (aceptar, rexeitar, pór á espera) para poder continuar.", + "confirmaccount-mismatched": "Este campo debe coincidir co da solicitude de conta orixinal.", + "confirmaccount-mismatched-general": "Pediuse substituír un valor nun campo da solicitude de conta orixinal que non está permitido ou non se configurou a opción «contrasinal de correo».", + "confirmaccount-acc": "Confirmouse a solicitude de conta;\n\tcreouse a nova conta de usuario «[[User:$1|$1]]».", "confirmaccount-rej": "Rexeitouse a solicitude de conta.", - "confirmaccount-viewing": "(actualmente sendo {{GENDER:$1|revisada}} por [[User:$1|$1]])", + "confirmaccount-viewing": "([[User:$1|$1]] estaa {{GENDER:$1|revisando}} nestes intres)", "confirmaccount-summary": "Creando a páxina do novo usuario.", - "confirmaccount-welc": "'''Reciba a benvida a ''{{SITENAME}}''!'''\nEsperamos que contribúa moito e ben.\nQuizais queira ler as [{{MediaWiki:Helppage}} páxinas de axuda].\nDe novo, reciba a nosa benvida e divírtase!", - "confirmaccount-wsum": "Reciba a nosa benvida!", + "confirmaccount-welc": "'''Recibe a benvida a ''{{SITENAME}}''!'''\nEsperamos que contribúas moito e ben.\nQuizais queiras ler as [{{MediaWiki:Helppage}} páxinas de axuda].\nDe novo, recibe a nosa benvida e divírtete!", + "confirmaccount-wsum": "Recibe a nosa benvida!", "confirmaccount-email-subj": "Solicitude de conta en {{SITENAME}}", - "confirmaccount-email-body": "Aprobouse a súa solicitude de conta en {{SITENAME}}.\n\nNome da conta: $1\n\nContrasinal: $2\n\nPor razóns de seguridade terá que mudar o contrasinal a primeira vez que se rexistre.\nPara rexistrarse, vaia a {{fullurl:Special:UserLogin}}.", - "confirmaccount-email-body2": "Aprobouse a súa solicitude de conta en {{SITENAME}}.\n\nNome da conta: $1\n\nContrasinal: $2\n\n$3\n\nPor razóns de seguridade terá que mudar o contrasinal a primeira vez que se rexistre.\nPara rexistrarse, vaia a {{fullurl:Special:UserLogin}}.", - "confirmaccount-email-body3": "Sentímolo, pero a súa solicitude de conta $1 foi rexeitada en {{SITENAME}}.\n\nIsto pode deberse a varias causas. Pode que non enchese o formulario correctamente, non respondese na extensión\nadecuada ou non cumprise con algún outro criterio. Pode que existan listas de contacto no sitio que poida\nusar se quere saber máis acerca da política de contas de usuario.", - "confirmaccount-email-body4": "Sentímolo, pero a súa solicitude de conta \"$1\" foi rexeitada en {{SITENAME}}.\n\n$2\n\nPoden existir listas de contacto no sitio que pode usar se quere saber máis acerca da política de contas de usuario.", - "confirmaccount-email-body5": "Antes de que se poida aceptar a súa solicitude dunha conta para \"$1\" en {{SITENAME}}\n\tten que fornecer algunha información adicional.\n\n$2\n\nPoden existir listas de contacto no sitio que poida usar se quere saber máis acerca da nosa política de contas de usuario." + "confirmaccount-email-body": "Aprobouse a túa solicitude de conta en {{SITENAME}}.\n\nNome da conta: $1\n\nContrasinal: $2\n\nPor razóns de seguridade, terás que mudar o contrasinal ao iniciar sesión por primeira vez.\nPara iniciar sesión, vai a {{fullurl:Special:UserLogin}}.", + "confirmaccount-email-body2": "Aprobouse a túa solicitude de conta en {{SITENAME}}.\n\nNome da conta: $1\n\nContrasinal: $2\n\n$3\n\nPor razóns de seguridade, terás que mudar o contrasinal ao iniciar sesión por primeira vez.\nPara iniciar sesión, vai a {{fullurl:Special:UserLogin}}.", + "confirmaccount-email-body3": "Sentímolo, pero a túa solicitude da conta «$1» foi rexeitada en {{SITENAME}}.\n\nIsto pode deberse a varias causas.\nÉ posible que non encheses o formulario correctamente, non respondeses coa información adecuada ou non cumprises algún outro criterio.\nSe cadra existen listas de contacto no sitio que podes usar se queres saber máis acerca da política de contas de usuario.", + "confirmaccount-email-body4": "Sentímolo, pero a túa solicitude da conta «$1» foi rexeitada en {{SITENAME}}.\n\n$2\n\nSe cadra existen listas de contacto no sitio que podes usar se queres saber máis acerca da política de contas de usuario.", + "confirmaccount-email-body5": "Antes de que se poida aceptar a túa solicitude da conta «$1» en {{SITENAME}}, tes que fornecer algunha información adicional.\n\n$2\n\nSe cadra existen listas de contacto no sitio que podes usar se queres saber máis acerca da política de contas de usuario.", + "confirmaccount-spam-link": "Spam", + "confirmaccount-mark-request-spam": "Queres marcar a solicitude n.º $1 como spam?", + "confirmaccount-cannot-load-review": "Non se puido cargar a páxina de revisión.", + "confirmaccount-failed-to-mark": "Non se puido marcar como spam: $1", + "confirmaccount-cannot-find-form": "Non se puido atopar o formulario de confirmación." } diff --git a/i18n/confirmaccount/gv.json b/i18n/confirmaccount/gv.json index 0f946841..e5b4a7c1 100644 --- a/i18n/confirmaccount/gv.json +++ b/i18n/confirmaccount/gv.json @@ -7,12 +7,12 @@ "confirmaccount-real-q": "Ennym", "confirmaccount-email-q": "Post-L", "confirmaccount-bio-q": "Beashnys", - "confirmaccount-all": "(taishbyney dagh ooilley amman)", + "confirmaccount-all": "(taishbyn dagh ooilley amman)", "confirmaccount-type": "Famman:", "confirmaccount-leg-user": "Coontys ymmydeyr", - "confirmaccount-leg-person": "Oayllys persoonagh", - "confirmaccount-leg-other": "Oayllys elley", - "confirmaccount-name": "Dt'ennym ymmydeyr", + "confirmaccount-leg-person": "Fysseree phersoonagh", + "confirmaccount-leg-other": "Fysseree elley", + "confirmaccount-name": "Dt’ennym ymmydeyr", "confirmaccount-real": "Ennym:", "confirmaccount-email": "Post-L:", "confirmaccount-pos-0": "ughtar", diff --git a/i18n/confirmaccount/hak.json b/i18n/confirmaccount/hak-latn.json similarity index 82% rename from i18n/confirmaccount/hak.json rename to i18n/confirmaccount/hak-latn.json index 0ec35f38..9b041f55 100644 --- a/i18n/confirmaccount/hak.json +++ b/i18n/confirmaccount/hak-latn.json @@ -1,7 +1,7 @@ { "@metadata": { "authors": [ - "Hakka" + "Winston Sung" ] }, "confirmaccount-name": "Yung-fu-miàng" diff --git a/i18n/confirmaccount/he.json b/i18n/confirmaccount/he.json index 5a3c9d75..16d7bdf0 100644 --- a/i18n/confirmaccount/he.json +++ b/i18n/confirmaccount/he.json @@ -3,6 +3,7 @@ "authors": [ "Amire80", "Guycn2", + "Neriah", "Rotemliss", "StuB", "YaronSh", @@ -10,9 +11,8 @@ ] }, "confirmaccounts": "אישור בקשות חשבון", - "confirmaccount-extensionname": "אישור חשבונות", "confirmaccount-desc": "הענקת היכולת לביורוקרטים לאשר בקשות לחשבונות", - "confirmaccount-maintext": "'''הדף הזה משמש לאישור בקשות ממתינות לפתוח חשבון באתר {{SITENAME}}'''.\n\nכל בקשה לפתוח חשבון מכילה שלושה תורי־משנה.\nאחד לבקשה הפתוחה, אחד לאלה שהטיפול בהם הושהה על־ידי מפעילים אחרים בשל המתנה למידע נוסף, ועוד אחד לבקשות שנדחו לאחרונה.\n\nבזמן מענה לבקשה, יש לסקור אותה בתשומת לב ואם יש בכך צורך לוודא שהמידע בבקשה נכון.\nהפעולות שתעשו תירשמנה ביומן פרטי.\nכמו־כן, מצופה שתוכלו לסקור גם פעילות של מפעילים אחרים באישור חשבונות.", + "confirmaccount-maintext": "'''הדף הזה משמש לאישור בקשות ממתינות לפתוח חשבון באתר {{SITENAME}}'''.\n\nכל בקשה לפתוח חשבון מכילה שלושה תורי־משנה.\nאחד לבקשה הפתוחה, אחד לאלה שהטיפול בהם הושהה על־ידי מפעילים אחרים בשל המתנה למידע נוסף, ועוד אחד לבקשות שנדחו לאחרונה.\n\nבעת תגובה לבקשה, יש לסקור אותה בתשומת לב ואם יש בכך צורך לוודא שהמידע בבקשה נכון.\nהפעולות שתעשו תירשמנה ביומן פרטי.\nכמו־כן, מצופה שתוכלו לסקור גם פעילות של מפעילים אחרים באישור חשבונות.", "confirmaccount-list": "להלן מופיעה רשימת חשבונות הממתינים לאישור.\nלאחר דחייה או אישור של אחת הבקשות היא תוסר מרשימה זו.", "confirmaccount-list2": "להלן רשימה של בקשות חשבון שנדחו לאחרונה ויימחקו אוטומטית לאחר מספר ימים.\nעדיין אפשר לאשר את החשבונות האלה, אבל כדאי לבדוק לפני־כן מדוע המפעיל דחה את הבקשה.", "confirmaccount-list3": "להלן רשימה של בקשות חשבון שנדחו לאחרונה ויימחקו אוטומטית לאחר מספר ימים.\nעדיין אפשר לאשר את החשבונות האלה.", @@ -46,7 +46,7 @@ "confirmaccount-leg-ip": "נתוני כתובת IP", "confirmaccount-name": "שם משתמש", "confirmaccount-real": "שם:", - "confirmaccount-email": "דוא\"ל:", + "confirmaccount-email": "דוא״ל:", "confirmaccount-reqtype": "משרה:", "confirmaccount-pos-0": "מחבר", "confirmaccount-pos-1": "עורך", @@ -88,7 +88,12 @@ "confirmaccount-email-subj": "בקשת חשבון באתר {{SITENAME}}", "confirmaccount-email-body": "בקשתך לקבלת חשבון אושרה באתר {{SITENAME}}.\n\nשם החשבון: $1\n\nסיסמה: $2\n\nמטעמי אבטחה עליכם לשנות את סיסמתכם עם כניסתכם הראשונה.\nכדי להכנס, אנא עברו לכתובת {{fullurl:Special:UserLogin}}.", "confirmaccount-email-body2": "בקשתכם לקבלת חשבון באתר {{SITENAME}} אושרה.\n\nשם החשבון: $1\n\nסיסמה: $2\n\n$3\n\nמטעמי אבטחה תזדקקו לשנות את סיסמתכם עם הכניסה הראשונה.\nכדי להתחבר אנא גשו לכתובת {{fullurl:Special:UserLogin}}.", - "confirmaccount-email-body3": "סליחה, הבקשה ליצור את החשבון \"$1\" נדחתה באתר {{SITENAME}}.\n\nיש מספר סיבות אפשריות לכך.\nייתכן שלא מילאתם את הטופס נכון, לא נתתם תשובות באורך הדרוש, או לא עמדתם בתנאי כלשהו שמוגדר במדיניות.\nייתכן שבאתר יש רשימת קשר שאפשר להשתמש בה כדי לברר מידע נוסף על המדיניות הזאת.", + "confirmaccount-email-body3": "סליחה, הבקשה ליצור את החשבון \"$1\" נדחתה באתר {{SITENAME}}.\n\nיש מספר סיבות אפשריות לכך.\nייתכן שלא מילאתם את הטופס נכון, לא סיפקתם תגובות באורך הדרוש, או לא עמדתם בתנאי כלשהו שמוגדר במדיניות.\nייתכן שבאתר יש רשימת קשר שאפשר להשתמש בה כדי לברר מידע נוסף על המדיניות הזאת.", "confirmaccount-email-body4": "סליחה, הבקשה ליצור את החשבון \"$1\" נדחתה באתר {{SITENAME}}.\n\n$2\n\nייתכן שבאתר יש רשימת קשר שאפשר להשתמש בה כדי לברר מידע נוסף על המדיניות הזאת.", - "confirmaccount-email-body5": "לפני שהבקשה לחשבון \"$1\" יכולה לקבל אישור באתר {{SITENAME}}, יש לספק מידע אישי נוסף.\n\n$2\n\nייתכן שבאתר יש רשימת קשר שאפשר להשתמש בה כדי לברר מידע נוסף על המדיניות הזאת." + "confirmaccount-email-body5": "לפני שהבקשה לחשבון \"$1\" יכולה לקבל אישור באתר {{SITENAME}}, יש לספק מידע אישי נוסף.\n\n$2\n\nייתכן שבאתר יש רשימת קשר שאפשר להשתמש בה כדי לברר מידע נוסף על המדיניות הזאת.", + "confirmaccount-spam-link": "ספאם", + "confirmaccount-mark-request-spam": "לסמן את הבקשה מס' $1 כספאם?", + "confirmaccount-cannot-load-review": "לא היה אפשר לטעון את דף הסקירה.", + "confirmaccount-failed-to-mark": "נכשל הסימון כספאם: $1", + "confirmaccount-cannot-find-form": "טופס האישור לא נמצא." } diff --git a/i18n/confirmaccount/hy.json b/i18n/confirmaccount/hy.json index 82d02447..60eaed37 100644 --- a/i18n/confirmaccount/hy.json +++ b/i18n/confirmaccount/hy.json @@ -1,8 +1,11 @@ { "@metadata": { "authors": [ - "Kareyac" + "Kareyac", + "Սերգեյ Սաֆարյան" ] }, - "confirmaccount-pos-0": "հեղինակ" + "confirmaccount-name": "Օգտանուն", + "confirmaccount-pos-0": "հեղինակ", + "confirmaccount-submit": "Հաստատել" } diff --git a/i18n/confirmaccount/hyw.json b/i18n/confirmaccount/hyw.json new file mode 100644 index 00000000..f3adcf2e --- /dev/null +++ b/i18n/confirmaccount/hyw.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Kareyac" + ] + }, + "confirmaccount-submit": "Հաստատել" +} diff --git a/i18n/confirmaccount/ia.json b/i18n/confirmaccount/ia.json index 48a78e66..29c5b399 100644 --- a/i18n/confirmaccount/ia.json +++ b/i18n/confirmaccount/ia.json @@ -84,5 +84,10 @@ "confirmaccount-email-body2": "Tu requesta de un conto in {{SITENAME}} ha essite approbate.\n\nNomine del conto: $1\n\nContrasigno: $2\n\n$3\n\nPro motivos de securitate, tu debera cambiar tu contrasigno al prime apertura de session.\nPro aperir un session, per favor visita {{fullurl:Special:UserLogin}}.", "confirmaccount-email-body3": "Pardono, tu requesta de un conto \"$1\" in {{SITENAME}} ha essite rejectate.\n\nExiste plure modos in que isto pote evenir.\nEs possibile que tu non completava le formulario correctemente, non dava responsas de longor adequate, o alteremente non te conformava a alcun criterio de politica.\nIl pote haber listas de contacto in le sito que tu pote usar si tu vole saper plus a proposito del politica de creation de contos.", "confirmaccount-email-body4": "Pardono, tu requesta de un conto \"$1\" in {{SITENAME}} ha essite rejectate.\n\n$2\n\nIl pote haber listas de contacto in le sito que tu pote usar si tu vole saper plus a proposito del politica de creation de contos.", - "confirmaccount-email-body5": "Ante que tu requesta de un conto \"$1\" in {{SITENAME}} pote esser acceptate, tu debe primo fornir alcun informationes additional.\n\n$2\n\nIl pote haber listas de contacto in le sito que tu pote usar si tu vole saper plus a proposito del politica de creation de contos." + "confirmaccount-email-body5": "Ante que tu requesta de un conto \"$1\" in {{SITENAME}} pote esser acceptate, tu debe primo fornir alcun informationes additional.\n\n$2\n\nIl pote haber listas de contacto in le sito que tu pote usar si tu vole saper plus a proposito del politica de creation de contos.", + "confirmaccount-spam-link": "Spam", + "confirmaccount-mark-request-spam": "Marcar le requesta №$1 como spam?", + "confirmaccount-cannot-load-review": "Non poteva cargar le pagina de revision.", + "confirmaccount-failed-to-mark": "Fallimento de marcar como spam: $1", + "confirmaccount-cannot-find-form": "Non poteva trovar le formulario de confirmation." } diff --git a/i18n/confirmaccount/id.json b/i18n/confirmaccount/id.json index f05954c5..d425c01c 100644 --- a/i18n/confirmaccount/id.json +++ b/i18n/confirmaccount/id.json @@ -72,6 +72,8 @@ "confirmaccount-spam": "Spam (jangan kirim surel)", "confirmaccount-reason": "Komentar (akan dimasukkan dalam surel penolakan dan penundaan):", "confirmaccount-ip": "Alamat IP:", + "confirmaccount-xff": "X-Forwarded-For:", + "confirmaccount-agent": "Agen-Pengguna:", "confirmaccount-legend": "Konfirmasi/menolak akun ini", "confirmaccount-submit": "Konfirmasi", "confirmaccount-needreason": "Anda harus memberikan sebuah alasan dalam kotak komentar berikut.", diff --git a/i18n/confirmaccount/io.json b/i18n/confirmaccount/io.json index fb92119b..54192559 100644 --- a/i18n/confirmaccount/io.json +++ b/i18n/confirmaccount/io.json @@ -1,18 +1,25 @@ { "@metadata": { "authors": [ + "JSantos", "Joao Xavier", "Malafaya" ] }, + "confirmaccount-real-q": "Nomo", + "confirmaccount-email-q": "E-posto", "confirmaccount-review": "Revizar", + "confirmaccount-name": "Uzero-nomo", "confirmaccount-real": "Nomo:", + "confirmaccount-email": "E-postoː", "confirmaccount-reqtype": "Poziciono:", "confirmaccount-pos-0": "autoro", "confirmaccount-pos-1": "redaktero", "confirmaccount-noreason": "(nulo)", "confirmaccount-ip": "IP-adreso:", + "confirmaccount-agent": "Uzero-aganto:", "confirmaccount-submit": "Konfirmez", "confirmaccount-summary": "Kreo di nova pagino por nova uzero.", + "confirmaccount-welc": "'''Bonveno a ''{{SITENAME}}''!'''\nNi expektas ke vu povos kontributar multe, e bone.\nPosible vu dezirus lektar la [{{MediaWiki:Helppage}} helpo-pagini].\nItere, esez bonvenanta, e juez!", "confirmaccount-wsum": "Bonveno!" } diff --git a/i18n/confirmaccount/is.json b/i18n/confirmaccount/is.json index 3196e7d0..79e0037f 100644 --- a/i18n/confirmaccount/is.json +++ b/i18n/confirmaccount/is.json @@ -3,6 +3,7 @@ "authors": [ "S.Örvarr.S", "Snævar", + "Stefán Örvar Sigmundsson", "Sveinn í Felli", "Ævar Arnfjörð Bjarmason", "පසිඳු කාවින්ද" @@ -33,7 +34,7 @@ "confirmaccount-noreason": "(engin)", "confirmaccount-create": "Samþykkja (búa til aðgang)", "confirmaccount-hold": "Bíða", - "confirmaccount-ip": "Vistfang:", + "confirmaccount-ip": "IP-staðfang:", "confirmaccount-submit": "Staðfesta", "confirmaccount-rej": "Notandabeiðninni var hafnað.", "confirmaccount-wsum": "Velkomin!", diff --git a/i18n/confirmaccount/kaa.json b/i18n/confirmaccount/kaa.json new file mode 100644 index 00000000..9e54d48c --- /dev/null +++ b/i18n/confirmaccount/kaa.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Ajiniyaz Nurniyazov" + ] + }, + "confirmaccount-ip": "IP adres:" +} diff --git a/i18n/confirmaccount/km.json b/i18n/confirmaccount/km.json index 0852a0e1..9345781a 100644 --- a/i18n/confirmaccount/km.json +++ b/i18n/confirmaccount/km.json @@ -56,7 +56,7 @@ "confirmaccount-needreason": "អ្នក​ត្រូវ​ផ្តល់​ហេតុផល ក្នុង​ប្រអប់វិចារ​ខាងក្រោម​​។", "confirmaccount-canthold": "សំនើសុំនេះត្រូវបានទុកមួយអន្លើឬលុបចោល។", "confirmaccount-acc": "សំណើគណនី​ត្រូវ​បាន​បញ្ជាក់ទទួលស្គាល់​ដោយជោគជ័យ,\n\nបាន​បង្កើត​គណនី​អ្នកប្រើប្រាស់​ថ្មី​ហើយ [[User:$1|$1]]​។", - "confirmaccount-rej": "សំណើសុំគណនីបានបដិសេធរួចជាស្រេចហើយ។", + "confirmaccount-rej": "សំណើសុំគណនីបានបដិសេធហើយ។", "confirmaccount-viewing": "(ពេលនេះកំពុងមើលដោយ [[User:$1|$1]])", "confirmaccount-summary": "បង្កើត​ទំព័រ​អ្នកប្រើប្រាស់សម្រាប់​អ្នកប្រើប្រាស់​ថ្មី​។", "confirmaccount-welc": "'''''{{SITENAME}}'' សូមស្វាគមន៍!'''\nយើងខ្ញុំសង្ឃឹមថាអ្នកនឹងជួយរួមចំណែកបានច្រើនជាមួយយើងខ្ញុំ។\nជាដំបូង សូមអ្នកអាន[{{MediaWiki:Helppage}} ទំព័រជំនួយជាមុនសិន]។\nសូមចូលរួមដោយរីករាយ។ សូមអរគុណ។", diff --git a/i18n/confirmaccount/ko.json b/i18n/confirmaccount/ko.json index fed62c33..18898a00 100644 --- a/i18n/confirmaccount/ko.json +++ b/i18n/confirmaccount/ko.json @@ -3,6 +3,7 @@ "authors": [ "Bluemersen", "Daisy2002", + "Dr1t jg", "Hym411", "Kwj2772", "Priviet", @@ -70,7 +71,7 @@ "confirmaccount-deny": "거부 (목록에서 제거)", "confirmaccount-hold": "보류", "confirmaccount-spam": "스팸 (이메일을 보내지 않습니다)", - "confirmaccount-reason": "이유 (이메일에 포함될 것입니다):", + "confirmaccount-reason": "댓글 (거절 및 보류 이메일에 포함됨):", "confirmaccount-ip": "IP 주소:", "confirmaccount-xff": "X-Forwarded-For:", "confirmaccount-agent": "사용자-에이전트:", @@ -80,6 +81,7 @@ "confirmaccount-canthold": "이 요청은 이미 보류 또는 삭제되었습니다.", "confirmaccount-badaction": "유효한 작업 (허용, 거부, 보류) 진행 순서가 지정되어야 합니다.", "confirmaccount-mismatched": "이 필드는 원래의 계정 요청의 필드와 일치해야 합니다.", + "confirmaccount-mismatched-general": "허용되지 않는 원래의 계정 요청 필드에 대한 재정의가 요청되었거나 \"메일 비밀번호\" 옵션이 설정되지 않았습니다.", "confirmaccount-acc": "계정 요청이 승인되었습니다;\n\t[[User:$1|$1]] 새 사용자 계정을 만들었습니다", "confirmaccount-rej": "계정 요청이 거부되었습니다.", "confirmaccount-viewing": "(현재 [[User:$1|$1]]님이 보고 {{GENDER:$1|있습니다}})", diff --git a/i18n/confirmaccount/krc.json b/i18n/confirmaccount/krc.json new file mode 100644 index 00000000..b16e9cd2 --- /dev/null +++ b/i18n/confirmaccount/krc.json @@ -0,0 +1,44 @@ +{ + "@metadata": { + "authors": [ + "Къарачайлы" + ] + }, + "confirmaccount-real-q": "Ат", + "confirmaccount-email-q": "E-mail", + "confirmaccount-bio-q": "Биография", + "confirmaccount-showopen": "ачыкъ излемле", + "confirmaccount-showrej": "къабыл этилмеген излемле", + "confirmaccount-showheld": "артха къоюлгъан излемле", + "confirmaccount-showexp": "болджалы чыкъгъан излемле", + "confirmaccount-review": "Тинт", + "confirmaccount-types": "Тюбюнде теджелгенледен хыйсаб къабыл этиуню кёзюуюн сайла:", + "confirmaccount-all": "(бютеу кёзюулени кёргюз)", + "confirmaccount-type": "Кёзюуде:", + "confirmaccount-type-0": "боллукъда авторла", + "confirmaccount-type-1": "боллукъда редакторла", + "confirmaccount-q-open": "ачыкъ излемле", + "confirmaccount-q-held": "артха къоюлгъан излемле", + "confirmaccount-q-rej": "кёб болмай къабыл этилмеген излемле", + "confirmaccount-q-stale": "болджалы чыкъгъан излемле", + "confirmaccount-leg-user": "Хайырланыучу хыйсаб", + "confirmaccount-leg-areas": "Интереслерини тамал бёлгеси", + "confirmaccount-leg-person": "Энчи информация", + "confirmaccount-leg-other": "Башха информация", + "confirmaccount-leg-ip": "IP-адрес билгиле", + "confirmaccount-name": "Хайырланыучуну аты", + "confirmaccount-real": "Аты:", + "confirmaccount-email": "E-mail:", + "confirmaccount-reqtype": "Къуллугъу:", + "confirmaccount-pos-0": "автор", + "confirmaccount-pos-1": "редактор", + "confirmaccount-bio": "Биография:", + "confirmaccount-attach": "Резюме/CV:", + "confirmaccount-notes": "Къошакъ эсгертиуле:", + "confirmaccount-urls": "Веб-сайтланы тизмеси:", + "confirmaccount-none-p": "(белгиленмегенди)", + "confirmaccount-econf": "(къабыл этилгенди)", + "confirmaccount-withcv": "(CV салыннганды)", + "confirmaccount-noreason": "(бир да)", + "confirmaccount-wsum": "Хош кел!" +} diff --git a/i18n/confirmaccount/ksw.json b/i18n/confirmaccount/ksw.json new file mode 100644 index 00000000..8826739b --- /dev/null +++ b/i18n/confirmaccount/ksw.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "SawJaemin" + ] + }, + "confirmaccount-noreason": "(တအိၣ်ဘၣ်)" +} diff --git a/i18n/confirmaccount/ky.json b/i18n/confirmaccount/ky.json index 237d301f..2780b4c2 100644 --- a/i18n/confirmaccount/ky.json +++ b/i18n/confirmaccount/ky.json @@ -1,8 +1,21 @@ { "@metadata": { "authors": [ + "Bosogo", "Growingup" ] }, - "confirmaccount-noreason": "(жок)" + "confirmaccount-email-q": "Электрондук почта", + "confirmaccount-leg-user": "Аккаунт", + "confirmaccount-leg-person": "Жеке маалымат", + "confirmaccount-leg-other": "Башка маалымат", + "confirmaccount-name": "Колдонуучунун аты", + "confirmaccount-email": "Электрондук почта:", + "confirmaccount-pos-0": "автор", + "confirmaccount-pos-1": "түзөтүүчү", + "confirmaccount-notes": "Кошумча эскертмелер:", + "confirmaccount-noreason": "(жок)", + "confirmaccount-submit": "Ырастоо", + "confirmaccount-wsum": "Кош келиңиз!", + "confirmaccount-email-subj": "{{SITENAME}} аккаунтуна өтүнүч" } diff --git a/i18n/confirmaccount/lb.json b/i18n/confirmaccount/lb.json index 55911207..6c43790f 100644 --- a/i18n/confirmaccount/lb.json +++ b/i18n/confirmaccount/lb.json @@ -3,7 +3,8 @@ "authors": [ "Les Meloures", "Robby", - "Soued031" + "Soued031", + "Volvox" ] }, "confirmaccounts": "Ufroe vu Benotzerkonte confirméieren", @@ -16,11 +17,11 @@ "confirmaccount-none-r": "Et gëtt elo keng rezent refüséiert Ufroe fir Benotzerkonten op dëser Lëscht.", "confirmaccount-none-e": "Et sinn elo keng ofgelafen Ufroe fir Benotzerkonten an dëser Lëscht.", "confirmaccount-real-q": "Numm", - "confirmaccount-email-q": "E-mail", + "confirmaccount-email-q": "E-Mail", "confirmaccount-bio-q": "Biographie", "confirmaccount-showopen": "Ufroen déi nach opstinn", "confirmaccount-showrej": "Refuséiert Ufroen", - "confirmaccount-showheld": "Ufroen déi 'en-cours' sinn", + "confirmaccount-showheld": "Ufroen, déi \"en-cours\" sinn", "confirmaccount-showexp": "ofgelafen Ufroen", "confirmaccount-review": "Nokucken", "confirmaccount-types": "Sicht eng Waardelëscht vun de Benotzerkonteconfirmatiounen hei ënnendrënner eraus:", @@ -29,18 +30,18 @@ "confirmaccount-type-0": "eventuell Auteuren", "confirmaccount-type-1": "eventuell Auteuren", "confirmaccount-q-open": "Ufroen déi nach opstinn", - "confirmaccount-q-held": "Ufroen déi 'en-cours' sinn", + "confirmaccount-q-held": "Ufroen, déi \"en-cours\" sinn", "confirmaccount-q-rej": "rezent refuséiert Ufroen", "confirmaccount-q-stale": "ofgelafen Ufroen", "confirmaccount-badid": "Et gëtt keng oppe Benotzerufro mat der ID déi dir uginn hutt.\nSe gouf eventuell scho behandelt.", "confirmaccount-leg-user": "Benotzerkont", "confirmaccount-leg-areas": "Haaptinteressen", "confirmaccount-leg-person": "Perséinlech Informatiounen", - "confirmaccount-leg-other": "Aner Informatioun", + "confirmaccount-leg-other": "Weider Informatiounen", "confirmaccount-leg-ip": "Donnéeë vun der IP-Adress", "confirmaccount-name": "Benotzernumm", "confirmaccount-real": "Numm:", - "confirmaccount-email": "E-mail:", + "confirmaccount-email": "E-Mail:", "confirmaccount-reqtype": "Positioun:", "confirmaccount-pos-0": "Auteur", "confirmaccount-pos-1": "Editeur", @@ -55,14 +56,14 @@ "confirmaccount-reject": "(refuséiert vum [[User:$1|$1]] de(n) $3 ëm $4)", "confirmaccount-rational": "Ursaach fir deen deen ugefrot huet:", "confirmaccount-noreason": "(keen)", - "confirmaccount-autorej": "(dës Ufro gouf automatesch wéint Inaktivitéit klasséiert)", + "confirmaccount-autorej": "(dës Ufro gouf automatesch wéinst Inaktivitéit klasséiert)", "confirmaccount-held": "(als \"am Gaang\" vum [[User:$1|Benotzer $1]] den $3 ëm $4 markéiert)", "confirmaccount-blockip": "IP-Adress spären", "confirmaccount-create": "Unhuelen (Benotzerkont opmaachen)", "confirmaccount-deny": "Refuséieren (Benotzerkont gëtt geläscht)", "confirmaccount-hold": "Ofwaarden", "confirmaccount-spam": "Spam (E-Mail net schécken)", - "confirmaccount-reason": "Bemierkung (an d'E-Mailen dobäigesat am Fall vun engem Refus oder am Suspens):", + "confirmaccount-reason": "Bemierkung (an d'E-Mailen derbäigesat am Fall vun engem Refus oder am Suspens):", "confirmaccount-ip": "IP-Adress:", "confirmaccount-xff": "X-Forwarded-For:", "confirmaccount-agent": "Programm vum Benotzer (User-Agent):", @@ -81,7 +82,10 @@ "confirmaccount-email-subj": "{{SITENAME}} Ufro fir ee Benotzerkont", "confirmaccount-email-body": "Är Ufro fir e Benotzerkont op {{SITENAME}} gouf ugeholl.\n\nNumm vum Benotzerkont: $1\n\nPasswuert: $2\n\nAus Sécherheetsgrënn musst Dir Äert Passwuert ännere wann Dir Iech déi éischt Kéier aloggt.\nFir Iech anzelogge gitt wgl. op {{fullurl:Special:UserLogin}}.", "confirmaccount-email-body2": "Är Ufro fir e Benotzerkont op {{SITENAME}} gouf ugeholl.\n\nNumm vum Benotzerkont: $1\n\nPasswuert: $2\n\n$3\n\nAus Sécherheetsgrënn musst Dir Äert Passwuert ännere wann Dir Iech déi éischt Kéier aloggt.\nFir Iech anzelogge gitt wgl. op {{fullurl:Special:UserLogin}}.", - "confirmaccount-email-body3": "Pardon, Är Ufro fir e Benotzerkont \"$1\" op {{SITENAME}} gouf refuséiert.\n\nDëst ka verschidden Ursaachen hunn.\nEt ka sinn datt dir de Formulaire net richteg ausgefëllt hutt, net genuch an Ären Äntwerten uginn hutt, oder op eng aner Manéier d'Critère vun de Benotzerrichtlinnen net erfëllt hutt.\nEventuell gëtt et Kontaklëschten um Site déi Dir benotze kënnt fir méi iwwer d'Benotzerrichtlinnen gewuer ze ginn.", + "confirmaccount-email-body3": "Pardon, Är Ufro fir e Benotzerkont \"$1\" op {{SITENAME}} gouf refuséiert.\n\nDëst ka verschidden Ursaachen hunn.\nEt ka sinn datt dir de Formulaire net richteg ausgefëllt hutt, net genuch an Ären Äntwerten uginn hutt, oder op eng aner Manéier d'Krittäre vun de Benotzerrichtlinnen net erfëllt hutt.\nEventuell gëtt et Kontaklëschten um Site déi Dir benotze kënnt fir méi iwwer d'Benotzerrichtlinnen gewuer ze ginn.", "confirmaccount-email-body4": "Pardon, Är Ufro fir e Benotzerkont \"$1\" gouf op {{SITENAME}} ofgeleent.\n\n$2\n\nEventuell fannt Dir eng Kontaktlëscht déi Dir benotze kënnt wann Dir méi iwwer d'Benotzerrichtlinne wësse wëllt.", - "confirmaccount-email-body5": "Ier Är Ufro fir e Benotzerkont \"$1\" kann op {{SITENAME}} ugeholl musst Dir fir d'éischt e puer zousätzlech Informatiounen uginn.\n\n$2\n\nMéiglecherweis gëtt et Kontaktlëschten op dem Site déi Dir benotze kënnt wann Dir méi iwwer d'Richlinne vun de Benotzerkonte wësse wëllt." + "confirmaccount-email-body5": "Ier Är Ufro fir e Benotzerkont \"$1\" kann op {{SITENAME}} ugeholl musst Dir fir d'éischt e puer zousätzlech Informatiounen uginn.\n\n$2\n\nMéiglecherweis gëtt et Kontaktlëschten op dem Site déi Dir benotze kënnt wann Dir méi iwwer d'Richlinne vun de Benotzerkonte wësse wëllt.", + "confirmaccount-spam-link": "Spam", + "confirmaccount-mark-request-spam": "Ufro #$1 als Spam markéieren?", + "confirmaccount-failed-to-mark": "Konnt net als Spam markéiert ginn: $1" } diff --git a/i18n/confirmaccount/lt.json b/i18n/confirmaccount/lt.json index 5c1e63d8..f5b78688 100644 --- a/i18n/confirmaccount/lt.json +++ b/i18n/confirmaccount/lt.json @@ -4,6 +4,7 @@ "Eitvys200", "Homo", "Manvydasz", + "Nokeoo", "Tomasdd" ] }, diff --git a/i18n/confirmaccount/mk.json b/i18n/confirmaccount/mk.json index 855c9976..8b8215a2 100644 --- a/i18n/confirmaccount/mk.json +++ b/i18n/confirmaccount/mk.json @@ -86,5 +86,10 @@ "confirmaccount-email-body2": "Вашето барање за сметка на {{SITENAME}} е одобрено.\n\nНазив на сметката: $1\n\nЛозинка: $2\n\n$3\n\nОд безбедносни причини треба да си ја промените лозинката при првото најавување.\nЗа да се најавите, одете на {{fullurl:Special:UserLogin}}.", "confirmaccount-email-body3": "Жалиме, но вашето барање за сметка „$1“ на {{SITENAME}} е одбиено.\n\nОва може да се должи на неколку причини.\nМоже да несте го пополниле образецот правилно, одговорите да ви биле прекратки, или пак да не задоволувате некој друг критериум.\nНа страницата може да има контактни списоци кои можете да ги користите ако сакате да дознаете повеќе за правилата за сметки.", "confirmaccount-email-body4": "Жалиме, но вашето барање за сметка „$1“ на {{SITENAME}} беше одбиено.\n\n$2\n\nНа страницата може да има контактни списоци кои можете да ги користите ако сакате да дознаете повеќе за правилата за сметки.", - "confirmaccount-email-body5": "Пред да можеме да го прифатиме вашето барање за сметка „$1“ на {{SITENAME}} морате да ни дадете извесни дополнителни иформации.\n\n$2\n\nНа страницата може да има контактни списоци кои можете да ги користите ако сакате да дознаете повеќе за правилата за сметки." + "confirmaccount-email-body5": "Пред да можеме да го прифатиме вашето барање за сметка „$1“ на {{SITENAME}} морате да ни дадете извесни дополнителни иформации.\n\n$2\n\nНа страницата може да има контактни списоци кои можете да ги користите ако сакате да дознаете повеќе за правилата за сметки.", + "confirmaccount-spam-link": "Спам", + "confirmaccount-mark-request-spam": "Да го означам барањето бр. $1 како спам?", + "confirmaccount-cannot-load-review": "Не можев да ја вчитам страницата за проверка.", + "confirmaccount-failed-to-mark": "Не успеав да означам како спам: $1", + "confirmaccount-cannot-find-form": "Не можев да го најдам образецот за потврда." } diff --git a/i18n/confirmaccount/mzn.json b/i18n/confirmaccount/mzn.json new file mode 100644 index 00000000..7c856847 --- /dev/null +++ b/i18n/confirmaccount/mzn.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "محک" + ] + }, + "confirmaccount-wsum": "خش بمونی!" +} diff --git a/i18n/confirmaccount/nb.json b/i18n/confirmaccount/nb.json index a4c9c5e1..050b879e 100644 --- a/i18n/confirmaccount/nb.json +++ b/i18n/confirmaccount/nb.json @@ -77,7 +77,7 @@ "confirmaccount-canthold": "Denne forespørselen er allerede slettet eller på avventning.", "confirmaccount-badaction": "En gyldig handling (godta, avvis, avvent) må angis for å fortsette.", "confirmaccount-mismatched": "Feltet må matche feltet i den opprinnelige kontoforespørselen.", - "confirmaccount-mismatched-general": "Det ble bedt om en overstyring av et felt i den opprinnelige kontoforespørselen som ikke er tillatt, eller så var «send passord på epost»-valget ikke satt.", + "confirmaccount-mismatched-general": "Det ble bedt om en overstyring av et felt i den opprinnelige kontoforespørselen som ikke er tillatt, eller så var «send passord på e-post»-valget ikke satt.", "confirmaccount-acc": "Kontoforespørsel godkjent;\nopprettet kontoen [[User:$1|$1]].", "confirmaccount-rej": "Kontoforespørsel avvist.", "confirmaccount-viewing": "({{GENDER:$1|undersøkes}} nå av [[User:$1|$1]])", @@ -89,5 +89,10 @@ "confirmaccount-email-body2": "Din forespørsel om en konto på {{SITENAME}} har blitt godkjent.\n\nKontonavn: $1\n\nPassord: $2\n\n$3\n\nAv sikkerhetsgrunner må du endre passordet etter første innlogging. Gå til {{fullurl:Special:UserLogin}} for å logge inn.", "confirmaccount-email-body3": "Beklager, din forespørsel om kontoen «$1» på {{SITENAME}} har blitt avvist.\n\nDet er flere mulige grunner til at dette har skjedd. Du har muligens ikke fylt inn skjemaet korrekt, har ikke svart utfyllende nok, eller møter på en annen måte ikke kriteriene. Det kan være kontaktlister på siden som du kan bruke for å finne ut mer om kontopolitikken.", "confirmaccount-email-body4": "Beklager, din forespørsel om å få en konto ($1) på {{SITENAME}} har blitt avvist.\n\n$2\n\nDet kan være kontaktlister på siden som du kan bruke for å finne ut mer om kontopolitikken.", - "confirmaccount-email-body5": "Før din forespørsel om en konto «$1» på {{SITENAME}} kan godkjennes, må du oppgi mer informasjon.\n\n$2\n\nDet kan være kontaktlister på siden som du kan bruke for å finne ut mer om kontopolitikken." + "confirmaccount-email-body5": "Før din forespørsel om en konto «$1» på {{SITENAME}} kan godkjennes, må du oppgi mer informasjon.\n\n$2\n\nDet kan være kontaktlister på siden som du kan bruke for å finne ut mer om kontopolitikken.", + "confirmaccount-spam-link": "Spam", + "confirmaccount-mark-request-spam": "Merk forespørsel #$1 som spam?", + "confirmaccount-cannot-load-review": "Kunne ikke laste gjennomgangssiden.", + "confirmaccount-failed-to-mark": "Kunne ikke merke som spam: $1", + "confirmaccount-cannot-find-form": "Kunne ikke finne bekreftelsesskjemaet." } diff --git a/i18n/confirmaccount/ne.json b/i18n/confirmaccount/ne.json index a3fbcb1f..eafc3227 100644 --- a/i18n/confirmaccount/ne.json +++ b/i18n/confirmaccount/ne.json @@ -2,9 +2,59 @@ "@metadata": { "authors": [ "RajeshPandey", + "पर्वत सुबेदी", + "बडा काजी", "हिमाल सुबेदी" ] }, + "confirmaccounts": "खाता अनुरोधहरू सक्षम पार्नुहोस्", + "confirmaccount-extensionname": "प्रयोगकर्ता खाताहरू पुष्टि गर्नुहोस्", + "confirmaccount-real-q": "नाम", + "confirmaccount-email-q": "इमेल", + "confirmaccount-bio-q": "जीवनी", + "confirmaccount-showopen": "खुला अनुरोधहरू", + "confirmaccount-showrej": "अस्वीकृत अनुरोधहरू", + "confirmaccount-showheld": "आयोजित अनुरोधहरू", + "confirmaccount-showexp": "म्याद सकिएका अनुरोधहरू", + "confirmaccount-review": "समीक्षा", + "confirmaccount-types": "तलबाट खाता पुष्टिकरण पङ्क्ति चयन गर्नुहोस्ः", + "confirmaccount-all": "(सबै पङ्क्तिहरू देखाउनुहोस्", + "confirmaccount-type": "लाम:", + "confirmaccount-type-0": "सम्भावित लेखकहरू", + "confirmaccount-type-1": "सम्भावित सम्पादकहरू", + "confirmaccount-q-open": "खुला अनुरोधहरू", + "confirmaccount-q-held": "आयोजित अनुरोधहरू", + "confirmaccount-q-rej": "भर्खरै अस्वीकृत अनुरोधहरू", + "confirmaccount-q-stale": "म्याद सकिएका अनुरोधहरू", + "confirmaccount-badid": "दिइएको आईडीसँग सम्बन्धित कुनै विचाराधीन अनुरोध छैन। यसलाई पहिले नै व्यवस्थित गरिएको हुन सक्छ।", + "confirmaccount-leg-user": "प्रयाेगकर्ता खाता", + "confirmaccount-leg-areas": "रूचिका मुख्य क्षेत्रहरू", + "confirmaccount-leg-person": "व्यक्तिगत जानकारी", + "confirmaccount-leg-other": "अन्य जानकारी", + "confirmaccount-leg-ip": "आईपी ठेगाना डेटा", "confirmaccount-name": "प्रयोगकर्ता नाम", - "confirmaccount-wsum": "स्वागतम्!" + "confirmaccount-real": "नाम:", + "confirmaccount-email": "इमेल:", + "confirmaccount-reqtype": "स्थान:", + "confirmaccount-pos-0": "लेखक", + "confirmaccount-pos-1": "सम्पादक", + "confirmaccount-bio": "जीवनी:", + "confirmaccount-attach": "बायोडाटा:", + "confirmaccount-notes": "बैकल्पिक टिप्पणीहरू:", + "confirmaccount-urls": "वेबसाइटहरूको सूचीः", + "confirmaccount-none-p": "(प्रदान गरिएको छैन)", + "confirmaccount-confirm": "यो अनुरोध स्वीकार गर्न, अस्वीकार गर्न वा राख्न तलका विकल्पहरू प्रयोग गर्नुहोस्ः", + "confirmaccount-econf": "(पुष्टि गरिएको)", + "confirmaccount-withcv": "(बायोडाटा संलग्न छ)", + "confirmaccount-rational": "आवेदकलाई दिइएको तर्कः", + "confirmaccount-noreason": "(कुनै पनि होइन)", + "confirmaccount-autorej": "(यो अनुरोध निष्क्रियताको कारण स्वचालित रूपमा खारेज गरिएको छ)", + "confirmaccount-blockip": "आईपी ठेगाना निषेध गर्नुहोस्", + "confirmaccount-create": "स्वीकार गर्नुहोस् (खाता सिर्जना गर्नुहोस्)", + "confirmaccount-deny": "अस्वीकार गर्नुहोस् (सूचीबाट हटाउनुहोस्)", + "confirmaccount-hold": "पर्खनुहाेस्", + "confirmaccount-spam": "स्पाम (इमेल नपठाउनुहोस्)", + "confirmaccount-ip": "आइपी ठेगाना", + "confirmaccount-wsum": "स्वागतम्!", + "confirmaccount-email-subj": "{{SITENAME}} खाता अनुरोध" } diff --git a/i18n/confirmaccount/nl.json b/i18n/confirmaccount/nl.json index cb961ce7..b54fd95b 100644 --- a/i18n/confirmaccount/nl.json +++ b/i18n/confirmaccount/nl.json @@ -4,6 +4,7 @@ "Annabel", "Jos1950", "Mar(c)", + "McDutchie", "SPQRobin", "Siebrand", "Sjoerddebruin" @@ -89,5 +90,10 @@ "confirmaccount-email-body2": "Uw aanvraag voor een account op {{SITENAME}} is goedgekeurd.\n\nAccountnaam: $1\n\nWachtwoord: $2\n\n$3\n\nOm veiligheidsredenen dient u uw wachtwoord bij de eerste keer aanmelden te wijzigen.\nAanmelden kan via {{fullurl:Special:UserLogin}}.", "confirmaccount-email-body3": "Uw aanvraag voor account \"$1\" op {{SITENAME}} is afgewezen.\n\nDit kan meerdere oorzaken hebben.\nMogelijk hebt u het formulier niet juist ingevuld, waren uw antwoorden onvoldoende compleet, of hebt u om een andere reden niet voldaan aan bepaalde criteria.\nOp de site staan mogelijk lijsten met contactgegevens voor als u meer wilt weten over beleid omtrent gebruikersaccounts.", "confirmaccount-email-body4": "Uw aanvraag voor account \"$1\" op {{SITENAME}} is afgewezen.\n\n$2\n\nOp de site staan mogelijk lijsten met contactgegevens voor als u meer wilt weten over beleid omtrent gebruikersaccounts.", - "confirmaccount-email-body5": "Voordat uw aanvraag voor een account \"$1\" op {{SITENAME}} goedgekeurd kan worden, moet u eerst wat aanvullende informatie geven.\n\n$2\n\nOp de site staan mogelijk lijsten met contactgegevens voor als u meer wilt weten over beleid omtrent gebruikersaccounts." + "confirmaccount-email-body5": "Voordat uw aanvraag voor een account \"$1\" op {{SITENAME}} goedgekeurd kan worden, moet u eerst wat aanvullende informatie geven.\n\n$2\n\nOp de site staan mogelijk lijsten met contactgegevens voor als u meer wilt weten over beleid omtrent gebruikersaccounts.", + "confirmaccount-spam-link": "Spam", + "confirmaccount-mark-request-spam": "Aanvraag nummer $1 als spam markeren?", + "confirmaccount-cannot-load-review": "De beoordelingspagina kon niet worden geladen.", + "confirmaccount-failed-to-mark": "Kon niet markeren als spam: $1", + "confirmaccount-cannot-find-form": "Het bevestigingsformulier kon niet worden gevonden." } diff --git a/i18n/confirmaccount/pa.json b/i18n/confirmaccount/pa.json index f7e37b69..7fd4fa59 100644 --- a/i18n/confirmaccount/pa.json +++ b/i18n/confirmaccount/pa.json @@ -1,14 +1,17 @@ { "@metadata": { "authors": [ - "Aalam" + "Aalam", + "Cabal" ] }, - "confirmaccounts": "ਅਕਾਊਂਟ ਮੰਗ ਪੁਸ਼ਟੀ", + "confirmaccounts": "ਖਾਤਾ ਬੇਨਤੀਆਂ ਦੀ ਤਸਦੀਕ ਕਰੋ", "confirmaccount-real-q": "ਨਾਂ", "confirmaccount-email-q": "ਈਮੇਲ", "confirmaccount-showopen": "ਮੰਗਾਂ ਖੋਲ੍ਹੋ", "confirmaccount-showrej": "ਰੱਦ ਕੀਤੀਆਂ ਮੰਗਾਂ", "confirmaccount-review": "ਝਲਕ", - "confirmaccount-type": "ਕਤਾਰ:" + "confirmaccount-type": "ਕਤਾਰ:", + "confirmaccount-legend": "ਇਸ ਖਾਤੇ ਦੀ ਤਸਦੀਕ/ਰੱਦ ਕਰੋ", + "confirmaccount-wsum": "ਜੀ ਆਇਆਂ ਨੂੰ!" } diff --git a/i18n/confirmaccount/pl.json b/i18n/confirmaccount/pl.json index bdc1aca5..87ab385e 100644 --- a/i18n/confirmaccount/pl.json +++ b/i18n/confirmaccount/pl.json @@ -95,5 +95,9 @@ "confirmaccount-email-body2": "Twoja prośba o konto została przyjęta na {{SITENAME}}.\n\nNazwa: $1\n\nHasło: $2\n\n$3\n\nZ powodów bezpieczeństwa będziesz musiał zmienić hasło przy pierwszym logowaniu.\nBy się zalogować przejdź do {{fullurl:Special:UserLogin}}.", "confirmaccount-email-body3": "Niestety złożony przez Ciebie w {{GRAMMAR:MS.lp|{{SITENAME}}}} wniosek o założenie konta „$1” został odrzucony.\n\nMożliwe przyczyny odrzucenia wniosku to:\nnie wypełniłeś prawidłowo wszystkich pól wniosku, nie udzieliłeś odpowiednio obszernej odpowiedzi, lub w inny sposób nie wypełniłeś wniosku zgodne z przyjętymi kryteriami.\nW serwisie na pewno odnajdziesz informacje, które pozwolą Ci dowiedzieć się więcej o zasadach zatwierdzania nowych kont użytkownika.", "confirmaccount-email-body4": "Przepraszamy, Twoja prośba o konto „$1” została odrzucona na {{GRAMMAR:MS.lp|{{SITENAME}}}}.\n\n$2\n\nNa stronie mogą znajdować się listy kontaktowe, których możesz użyć aby dowiedzieć się więcej na temat polityki kont.", - "confirmaccount-email-body5": "Przed zatwierdzeniem złożonego przez Ciebie wniosku o konto „$1” w {{GRAMMAR:MS.lp|{{SITENAME}}}} musisz podać następujące informacje dodatkowe:\n\n$2\n\nJeśli chcesz dowiedzieć się więcej o zasadach tworzenia kont w serwisie, poszukaj informacji na jego stronach." + "confirmaccount-email-body5": "Przed zatwierdzeniem złożonego przez Ciebie wniosku o konto „$1” w {{GRAMMAR:MS.lp|{{SITENAME}}}} musisz podać następujące informacje dodatkowe:\n\n$2\n\nJeśli chcesz dowiedzieć się więcej o zasadach tworzenia kont w serwisie, poszukaj informacji na jego stronach.", + "confirmaccount-mark-request-spam": "Oznaczyć zgłoszenie #$1 jako spam?", + "confirmaccount-cannot-load-review": "Nie udało się wczytać strony przeglądu.", + "confirmaccount-failed-to-mark": "Oznaczanie jako spam zakończyło się niepowodzeniem: $1", + "confirmaccount-cannot-find-form": "Nie udało się znaleźć formularza potwierdzenia." } diff --git a/i18n/confirmaccount/prg.json b/i18n/confirmaccount/prg.json new file mode 100644 index 00000000..0d1b9c7c --- /dev/null +++ b/i18n/confirmaccount/prg.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Kxeo" + ] + }, + "confirmaccount-create": "Akceptīs (Teīkeis rekkenan)" +} diff --git a/i18n/confirmaccount/ps.json b/i18n/confirmaccount/ps.json index c71e453f..31a547c7 100644 --- a/i18n/confirmaccount/ps.json +++ b/i18n/confirmaccount/ps.json @@ -1,7 +1,8 @@ { "@metadata": { "authors": [ - "Ahmed-Najib-Biabani-Ibrahimkhel" + "Ahmed-Najib-Biabani-Ibrahimkhel", + "شاه زمان پټان" ] }, "confirmaccount-real-q": "نوم", @@ -13,7 +14,7 @@ "confirmaccount-leg-user": "گڼون", "confirmaccount-leg-person": "ځاني مالومات", "confirmaccount-leg-other": "نور مالومات", - "confirmaccount-name": "کارن-نوم", + "confirmaccount-name": "کارن‌نوم", "confirmaccount-real": "نوم:", "confirmaccount-email": "برېښليک:", "confirmaccount-pos-0": "ليکوال", diff --git a/i18n/confirmaccount/pt-br.json b/i18n/confirmaccount/pt-br.json index 6d1ce043..7cc15701 100644 --- a/i18n/confirmaccount/pt-br.json +++ b/i18n/confirmaccount/pt-br.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "555", "Cainamarques", "Eduardo Addad de Oliveira", "Eduardo.mps", @@ -9,8 +10,7 @@ "Helder.wiki", "Jaideraf", "Luckas Blade", - "Rodrigo codignoli", - 555 + "Rodrigo codignoli" ] }, "confirmaccounts": "Confirmar requisições de conta", diff --git a/i18n/confirmaccount/pt.json b/i18n/confirmaccount/pt.json index baec000e..961f9f2b 100644 --- a/i18n/confirmaccount/pt.json +++ b/i18n/confirmaccount/pt.json @@ -8,6 +8,7 @@ "Lijealso", "Luckas", "Malafaya", + "Mansil alfalb", "Vitorvicentevalente", "Waldir" ] @@ -92,5 +93,6 @@ "confirmaccount-email-body2": "O seu pedido de conta foi aprovado na wiki {{SITENAME}}.\n\nNome da conta: $1\n\nPalavra-passe: $2\n\n$3\n\nPor questões de segurança, deverá mudar a sua palavra-passe após a primeira entrada. Para entrar, por favor vá a {{fullurl:{{ns:special}}:Userlogin}}.", "confirmaccount-email-body3": "Desculpe, o seu pedido para a conta \"$1\" foi rejeitado na wiki {{SITENAME}}.\n\nHá várias razões para isto acontecer.\nPoderá não ter preenchido o formulário corretamente, não ter fornecido respostas de tamanho adequado, ou de outra forma não ter cumprido algumas normas e critérios.\nPodem existir listas de contacto no sítio que poderá usar se deseja saber mais sobre as normas para as contas de utilizador.", "confirmaccount-email-body4": "Desculpe, o seu pedido para a conta \"$1\" foi rejeitado na wiki {{SITENAME}}.\n\n$2\n\nPode haver listas de contactos no sítio, que deve usar se quiser saber mais sobre as normas para contas de utilizador.", - "confirmaccount-email-body5": "Antes que o seu pedido para a conta \"$1\" seja aceite na wiki {{SITENAME}}, deverá fornecer alguma informação adicional.\n\n$2\n\nPode haver listas de contactos no sítio que deve usar se quiser saber mais sobre as normas para contas de utilizador." + "confirmaccount-email-body5": "Antes que o seu pedido para a conta \"$1\" seja aceite na wiki {{SITENAME}}, deverá fornecer alguma informação adicional.\n\n$2\n\nPode haver listas de contactos no sítio que deve usar se quiser saber mais sobre as normas para contas de utilizador.", + "confirmaccount-spam-link": "Lixo eletrónico" } diff --git a/i18n/confirmaccount/qqq.json b/i18n/confirmaccount/qqq.json index 7c0771fc..5d63488c 100644 --- a/i18n/confirmaccount/qqq.json +++ b/i18n/confirmaccount/qqq.json @@ -95,5 +95,10 @@ "confirmaccount-email-body2": "Used as email body. Parameters:\n* $1 - username\n* $2 - initial password\n* $3 - reason\nThe email subject is {{msg-mw|Confirmaccount-email-subj}}.\n{{Identical|Your request for an account ...}}", "confirmaccount-email-body3": "This message is sent as an email to users when their account request has been denied by a bureaucrat.\n\nParameters:\n* $1 - the requested account name\nThe email subject is {{msg-mw|Confirmaccount-email-subj}}.", "confirmaccount-email-body4": "This message is sent as an email to users when their account request has been denied by a bureaucrat.\n\nParameters:\n* $1 - the requested account name\n* $2 - a comment written by the bureaucrat\nThe email subject is {{msg-mw|Confirmaccount-email-subj}}.", - "confirmaccount-email-body5": "This message is sent as an email to users when their account request has been held by a bureaucrat.\n\nParameters:\n* $1 - the requested account name\n* $2 - the reason\nThe email subject is {{msg-mw|Confirmaccount-email-subj}}." + "confirmaccount-email-body5": "This message is sent as an email to users when their account request has been held by a bureaucrat.\n\nParameters:\n* $1 - the requested account name\n* $2 - the reason\nThe email subject is {{msg-mw|Confirmaccount-email-subj}}.", + "confirmaccount-spam-link": "This message is used as a to label the spam button", + "confirmaccount-mark-request-spam": "Used as a prompt to verify that the request should be marked spam -- $1 is a numeric identifier (e.g., 123) for the request under review", + "confirmaccount-cannot-load-review": "Error shown when the review page cannot be shown", + "confirmaccount-failed-to-mark": "Error shown when marking as spam fails -- $1 is a numeric identifier (e.g., 123) for the request under review", + "confirmaccount-cannot-find-form": "Error shown if the form display fails" } diff --git a/i18n/confirmaccount/ro.json b/i18n/confirmaccount/ro.json index 6eb3c9c5..115009be 100644 --- a/i18n/confirmaccount/ro.json +++ b/i18n/confirmaccount/ro.json @@ -2,6 +2,7 @@ "@metadata": { "authors": [ "Andrei Stroe", + "Andreyyshore", "Firilacroco", "KlaudiuMihaila", "Mihai", @@ -54,7 +55,7 @@ "confirmaccount-submit": "Confirmă", "confirmaccount-needreason": "Trebuie să furnizați un motiv în caseta de comentarii de mai jos.", "confirmaccount-summary": "Crearea unei pagini de utilizator pentru un utilizator nou", - "confirmaccount-welc": "'''Bun venit la ''{{SITENAME}}''!'''\nSperăm că veți contribui mult și bine.\nVeți dori probabil să citiți [{{MediaWiki:Helppage}} paginile de ajutor].\nDin nou, bun venit și distracție plăcută!", - "confirmaccount-wsum": "Bun venit!", - "confirmaccount-email-body2": "Cererea dvs. pentru un cont a fost aprobată pe {{SITENAME}}.\n\nNumele contului: $1\n\nParola: $2\n\n$3\n\nDin motive de securitate va trebui să vă schimbaţi parola la prima autentificare.\nPentru a vă autentifica, vă rugăm mergeţi aici: {{fullurl:Special:UserLogin}}." + "confirmaccount-welc": "'''Bun-venit la ''{{SITENAME}}''!'''\nSperăm că veți contribui mult și bine.\nVeți dori probabil să citiți [{{MediaWiki:Helppage}} paginile de ajutor].\nDin nou, bun-venit și distracție plăcută!", + "confirmaccount-wsum": "Bun-venit!", + "confirmaccount-email-body2": "Cererea dvs. pentru un cont a fost aprobată pe {{SITENAME}}.\n\nNumele contului: $1\n\nParola: $2\n\n$3\n\nDin motive de securitate, va trebui să vă schimbați parola la prima autentificare.\nPentru a vă autentifica, vă rugăm mergeți aici: {{fullurl:Special:UserLogin}}." } diff --git a/i18n/confirmaccount/scn.json b/i18n/confirmaccount/scn.json index 8a1b0361..f6ae9bfa 100644 --- a/i18n/confirmaccount/scn.json +++ b/i18n/confirmaccount/scn.json @@ -1,12 +1,27 @@ { "@metadata": { "authors": [ + "Ajeje Brazorf", "Aushulz" ] }, "confirmaccount-real-q": "Nomu", "confirmaccount-email-q": "Nnirizzu email", + "confirmaccount-bio-q": "Biografìa", + "confirmaccount-all": "(ammustra tutti li cudi)", + "confirmaccount-type": "Cuda:", + "confirmaccount-leg-person": "Nfurmazzioni pirsunali", + "confirmaccount-leg-other": "Àutri nfurmazzioni", + "confirmaccount-name": "Nomu utenti", "confirmaccount-real": "Nomu:", "confirmaccount-email": "Nnirizzu email:", - "confirmaccount-noreason": "(nuddu)" + "confirmaccount-reqtype": "Pusizzioni:", + "confirmaccount-pos-0": "auturi", + "confirmaccount-bio": "Biografìa:", + "confirmaccount-notes": "Àutri noti:", + "confirmaccount-urls": "Elencu dî siti web:", + "confirmaccount-noreason": "(nuḍḍu)", + "confirmaccount-ip": "Nnirizzu IP:", + "confirmaccount-submit": "Cunferma", + "confirmaccount-wsum": "Bimminutu!" } diff --git a/i18n/confirmaccount/sd.json b/i18n/confirmaccount/sd.json index c9ecbb96..e460241d 100644 --- a/i18n/confirmaccount/sd.json +++ b/i18n/confirmaccount/sd.json @@ -4,7 +4,10 @@ "Mehtab ahmed" ] }, + "confirmaccount-real-q": "نالو", "confirmaccount-review": "نظرثاني", + "confirmaccount-real": "نالو:", + "confirmaccount-pos-0": "مصنف", "confirmaccount-noreason": "(ڪوبہ نہ)", "confirmaccount-blockip": "آءِپي پتو بندشيو", "confirmaccount-submit": "پڪ ڪريو", diff --git a/i18n/confirmaccount/se.json b/i18n/confirmaccount/se.json new file mode 100644 index 00000000..1d22b2b7 --- /dev/null +++ b/i18n/confirmaccount/se.json @@ -0,0 +1,13 @@ +{ + "@metadata": { + "authors": [ + "Kimberli Mäkäräinen (WMNO)", + "Yupik" + ] + }, + "confirmaccount-email-q": "E-poastačujuhus", + "confirmaccount-name": "Geavaheaddjinamma", + "confirmaccount-email": "E-poastačujuhus:", + "confirmaccount-ip": "IP-čujuhus:", + "confirmaccount-wsum": "Bures boahtin!" +} diff --git a/i18n/confirmaccount/sh-latn.json b/i18n/confirmaccount/sh-latn.json new file mode 100644 index 00000000..7cba5b22 --- /dev/null +++ b/i18n/confirmaccount/sh-latn.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Winston Sung" + ] + }, + "confirmaccounts": "Potvrda zahtjeva za račune", + "confirmaccount-desc": "Daje mogućnost birokratima da potvrde zahtjeve za računima" +} diff --git a/i18n/confirmaccount/sje.json b/i18n/confirmaccount/sje.json new file mode 100644 index 00000000..087d30e2 --- /dev/null +++ b/i18n/confirmaccount/sje.json @@ -0,0 +1,10 @@ +{ + "@metadata": { + "authors": [ + "Olve Utne", + "Yupik" + ] + }, + "confirmaccount-name": "Adnejnamma", + "confirmaccount-blockip": "Buđđusä IP-adriessav" +} diff --git a/i18n/confirmaccount/skr-arab.json b/i18n/confirmaccount/skr-arab.json new file mode 100644 index 00000000..b43e0559 --- /dev/null +++ b/i18n/confirmaccount/skr-arab.json @@ -0,0 +1,10 @@ +{ + "@metadata": { + "authors": [ + "Kaleem Bhatti", + "Saraiki" + ] + }, + "confirmaccount-wsum": "ست بسم اللہ!", + "confirmaccount-spam-link": "ردی" +} diff --git a/i18n/confirmaccount/sl.json b/i18n/confirmaccount/sl.json index 49e6b5d3..edcd21cd 100644 --- a/i18n/confirmaccount/sl.json +++ b/i18n/confirmaccount/sl.json @@ -2,10 +2,90 @@ "@metadata": { "authors": [ "Dbc334", - "Eleassar" + "Eleassar", + "Upwinxp" ] }, + "confirmaccounts": "Potrdite zahtevek za račun", + "confirmaccount-extensionname": "Potrdite uporabniške račune", + "confirmaccount-desc": "Birokratom omogoča potrjevanje zahtevkov za uporabniški račun", + "confirmaccount-maintext": "'''Ta stran se uporablja za potrditev čakajočih zahtev za račun v projektu ''{{SITENAME}}'''''.\n\nVsako čakalno vrsto zahtevkov za uporabniški račun sestavljajo tri čakalne podvrste.\nEna za odprte zahtevke, druga za tiste, ki so jih drugi administratorji zadržali v čakanju na dodatne informacije, in tretja za zahtevke, ki so bili pred kratkim zavrnjeni.\n\nKo odgovarjate na zahtevek, ga natančno preglejte in po potrebi preverite navedene podatke. Vaša dejanja bodo zasebno zabeežena.\nPričakuje se tudi, da pregledate vso dejavnost, ki poteka tukaj, razen tega, kar počnete sami.", + "confirmaccount-list": "Tu je seznam zahtevkov za račune, ki čakajo na odobritev.\nKo bo zahtevek odobren ali zavrnjen, bo odstranjen s tega seznama.", + "confirmaccount-list2": "Tu je seznam zahtevkov za račune, ki so bili pred kratkim zavrnjeni in se lahko samodejno izbrišejo, ko so stari nekaj dni.\nŠe vedno jih je mogoče odobriti v račune, vendar se boste morda želeli o tem najprej posvetovati z administratorjem, ki je zahtevek zavrnil.", + "confirmaccount-list3": "Tu je seznam pretečenih zahtevkov za račune, ki se lahko samodejno izbrišejo, ko so stari več dni.\nŠe vedno jih je mogoče odobriti v račune.", "confirmaccount-text": "To je še nerešeni zahtevek glede uporabniškega računa v projektu '''{{SITENAME}}'''.\n\nPozorno preglejte spodnje informacije.\nČe se s tem zahtevkom strinjate, s položajnim spustnim menijem določite stanje uporabnika.\nUrejanja biografije vloge ne bodo trajno spremenile nobenih poverilnic.\nIzberite lahko ustaritev računa pod drugim uporabniškim imenom.\nTo možnost uporabite samo za preprečitev navzkrižja z drugimi imeni.\n\nČe boste to stran zapustili, ne da bi zahtevek potrdili ali zavrnili, bo zahtevek ostal odprt.", + "confirmaccount-none-o": "Na tem seznamu trenutno ni odprtih čakajočih zahtevkov za račune.", + "confirmaccount-none-h": "Na tem seznamu trenutno ni zadržanih čakajočih zahtev za račune.", + "confirmaccount-none-r": "Na tem seznamu trenutno ni pred kratkim zavrnjenih čakajočih zahtevkov za račune.", + "confirmaccount-none-e": "Na tem seznamu trenutno ni pretečenih zahtevkov za račune.", + "confirmaccount-real-q": "Ime", + "confirmaccount-email-q": "E-pošta", + "confirmaccount-bio-q": "Biografija", + "confirmaccount-showopen": "odprti zahtevki", + "confirmaccount-showrej": "zavrnjeni zahtevki", + "confirmaccount-showheld": "zadržani zahtevki", + "confirmaccount-showexp": "pretečeni zahtevki", + "confirmaccount-review": "Pregled", + "confirmaccount-types": "Na spustnem seznamu izberite čakalno vrsto za potrditev računa:", + "confirmaccount-all": "(prikaži vse čakalne vrste)", + "confirmaccount-type": "Čakalna vrsta:", + "confirmaccount-type-0": "potencialni avtorji", + "confirmaccount-type-1": "potencialni avtorji", + "confirmaccount-q-open": "odprti zahtevki", + "confirmaccount-q-held": "zadržani zahtevki", + "confirmaccount-q-rej": "pred kratkim zavrnjeni zahtevki", + "confirmaccount-q-stale": "pretečeni zahtevki", + "confirmaccount-badid": "Ni nobenega čakajočega zahtevka, ki bi ustrezal navedenemu ID-ju.\nMorda je bila že obdelan.", + "confirmaccount-leg-user": "Uporabniški račun", + "confirmaccount-leg-areas": "Glavna področja zanimanja", + "confirmaccount-leg-person": "Osebni podatki", + "confirmaccount-leg-other": "Druge informacije", + "confirmaccount-leg-ip": "Podatki o IP-naslovu", "confirmaccount-name": "Uporabniško ime", - "confirmaccount-pos-0": "avtor" + "confirmaccount-real": "Ime:", + "confirmaccount-email": "E-pošta:", + "confirmaccount-reqtype": "Položaj:", + "confirmaccount-pos-0": "avtor", + "confirmaccount-pos-1": "urejevalec", + "confirmaccount-bio": "Biografija:", + "confirmaccount-attach": "Življenjepis:", + "confirmaccount-notes": "Dodatne opombe:", + "confirmaccount-urls": "Seznam spletnih strani:", + "confirmaccount-none-p": "(ni navedeno)", + "confirmaccount-confirm": "Uporabite spodnje možnosti, da sprejmete, zavrnete ali zadržite ta zahtevek:", + "confirmaccount-econf": "(potrjen)", + "confirmaccount-withcv": "(življenjepis priložen)", + "confirmaccount-reject": "({{GENDER:$1|zavrnil_a}} [[User:$1|$1]] dne $3 ob $4)", + "confirmaccount-rational": "Utemeljitev za kandidata:", + "confirmaccount-noreason": "(brez)", + "confirmaccount-autorej": "(ta zahtevek je bil samodejno zavržen zaradi nedejavnosti)", + "confirmaccount-held": "([[User:$1|$1]] jo je $3 ob $4 {{GENDER:$1|označil|označila|označil_a}} kot čakajočega)", + "confirmaccount-blockip": "Blokiraj IP-naslov", + "confirmaccount-create": "Sprejmi (ustvari račun)", + "confirmaccount-deny": "Zavrni (odstrani s seznama)", + "confirmaccount-hold": "Zadrži", + "confirmaccount-spam": "Smetje (ne pošlji e-pošte)", + "confirmaccount-reason": "Komentar (vključen v e-poštna sporočila o zavrnitvi in zadržanju):", + "confirmaccount-ip": "IP-naslov:", + "confirmaccount-xff": "Obvezna prvotna povezava (X-Forwarded-For):", + "confirmaccount-agent": "User-Agent:", + "confirmaccount-legend": "Potrdi/zavrni ta račun", + "confirmaccount-submit": "Potrdi", + "confirmaccount-needreason": "V spodnjem polju za komentar morate navesti razlog.", + "confirmaccount-canthold": "Ta zahtevek je že zadržan ali izbrisan.", + "confirmaccount-badaction": "Za nadaljevanje je treba določiti veljavno dejanje (sprejmi, zavrni, zadrži).", + "confirmaccount-mismatched": "To polje se mora ujemati s poljem izvornega zahtevka za račun.", + "confirmaccount-mismatched-general": "V polju izvornega zahtevka za račun, ki ni dovoljen, je bila zahtevana preglasitev, ali pa možnost »e-poštno geslo« ni bila nastavljena.", + "confirmaccount-acc": "Zahtevek za račun potrjen;\n ustvarjen nov uporabniški račun [[User:$1|$1]].", + "confirmaccount-rej": "Zahtevek za račun zavrnjen.", + "confirmaccount-viewing": "(trenutno {{GENDER:$1|si ga}} ogleduje [[User:$1|$1]])", + "confirmaccount-summary": "Ustvarjanje uporabniške strani za novega uporabnika.", + "confirmaccount-welc": "'''Pozdravljeni v projektu ''{{SITENAME}}''!'''\nUpamo, da boste prispevali veliko in dobro.\nVerjetno boste želeli prebrati strani pomoči [{{MediaWiki:Helppage}} ].\nŠe enkrat dobrodošli in uživajte!", + "confirmaccount-wsum": "Pozdravljeni!", + "confirmaccount-email-subj": "Zahtevek za račun v projektu {{SITENAME}}", + "confirmaccount-email-body": "Vaš zahtevek za račun v projektu {{SITENAME}} je odobren.\n\nIme računa: $1 \n\nGeslo: $2 \n\nIz varnostnih razlogov boste morali ob prvi prijavi spremeniti geslo.\nZa prijavo pojdite na {{fullurl:Special:UserLogin}}.", + "confirmaccount-email-body2": "Vaš zahtevek za račun v projektu {{SITENAME}} je odobren.\n\nIme računa: $1 \n\nGeslo: $2 \n\n$3 \n\nIz varnostnih razlogov boste morali ob prvi prijavi spremeniti geslo.\nZa prijavo pojdite na {{fullurl:Special:UserLogin}}.", + "confirmaccount-email-body3": "Vaša zahtevek za račun »$1« v projektu {{SITENAME}} je bil žal zavrnjen.\n\nRazlogi za to so lahko različni.\nMogoče niste pravilno izpolnili obrazca, niste posredovali dovolj dolgih odgovorov ali kako drugače niste izpolnjevali nekaterih meril pravil.\nNa spletnem mestu so morda seznami stikov, ki jih lahko uporabite, če želite izvedeti več o pravilih o uporabniških računih.", + "confirmaccount-email-body4": "Vaš zahtevek za račun »$1« je bil v projektu {{SITENAME}} zavrnjen.\n\n$2 \n\nV projektu so morda seznami stikov, ki jih lahko uporabite, če želite izvedeti več o pravilih o uporabniških računih.", + "confirmaccount-email-body5": "Preden lahko v projektu {{SITENAME}} sprejmemo vaš zahtevek za račun »$1«, morate najprej posredovati nekaj dodatnih informacij.\n\n$2 \n\nNa mestu so morda seznami stikov, ki jih lahko uporabite, če želite izvedeti več o pravilih o uporabniških računih." } diff --git a/i18n/confirmaccount/smn.json b/i18n/confirmaccount/smn.json new file mode 100644 index 00000000..55f31e29 --- /dev/null +++ b/i18n/confirmaccount/smn.json @@ -0,0 +1,14 @@ +{ + "@metadata": { + "authors": [ + "Seipinne", + "Yupik" + ] + }, + "confirmaccount-real-q": "Nommâ", + "confirmaccount-leg-user": "Kevtteetubdâldâh", + "confirmaccount-name": "Kevtteenommâ", + "confirmaccount-real": "Nommâ:", + "confirmaccount-ip": "IP-čujottâs:", + "confirmaccount-wsum": "Tiervâpuáttim!" +} diff --git a/i18n/confirmaccount/sms.json b/i18n/confirmaccount/sms.json new file mode 100644 index 00000000..8e428586 --- /dev/null +++ b/i18n/confirmaccount/sms.json @@ -0,0 +1,20 @@ +{ + "@metadata": { + "authors": [ + "Yupik" + ] + }, + "confirmaccount-real-q": "Nõmm", + "confirmaccount-email-q": "E-pååʹštaddrõs", + "confirmaccount-leg-user": "Õõʹnnitobdldõk", + "confirmaccount-leg-other": "Jeeʹres teâđ", + "confirmaccount-name": "Õõʹnninõmm", + "confirmaccount-real": "Nõmm:", + "confirmaccount-email": "E-pååʹštaddrõs:", + "confirmaccount-notes": "Lââʹssteâđ:", + "confirmaccount-econf": "(nâânuum)", + "confirmaccount-create": "Priim (raaj tobdldõõǥǥ)", + "confirmaccount-ip": "IP-addrõs:", + "confirmaccount-submit": "Priim", + "confirmaccount-wsum": "Tiõrvpueʹttem!" +} diff --git a/i18n/confirmaccount/sq.json b/i18n/confirmaccount/sq.json index ed6dd9d1..2f7dbdbd 100644 --- a/i18n/confirmaccount/sq.json +++ b/i18n/confirmaccount/sq.json @@ -1,7 +1,8 @@ { "@metadata": { "authors": [ - "Ammartivari" + "Ammartivari", + "Vanished 456321456" ] }, "confirmaccount-pos-1": "redaktor" diff --git a/i18n/confirmaccount/sr-ec.json b/i18n/confirmaccount/sr-ec.json index 3073ac04..1db0b32b 100644 --- a/i18n/confirmaccount/sr-ec.json +++ b/i18n/confirmaccount/sr-ec.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "Aca", "Acamicamacaraca", "BadDog", "Rancher", @@ -52,11 +53,11 @@ "confirmaccount-confirm": "Користите доње опције да бисте прихватили, одбили или задржали овај захтев:", "confirmaccount-econf": "(потврђено)", "confirmaccount-withcv": "(CV приложен)", - "confirmaccount-reject": "({{GENDER:$1|одбио је корисник|одбила је корисница}} [[User:$1|$1]] на дан $3 у $4 ч)", + "confirmaccount-reject": "({{GENDER:$1|одбио је корисник|одбила је корисница}} [[User:$1|$1]] на датум $3 у $4)", "confirmaccount-rational": "Образложење дато кандидату:", "confirmaccount-noreason": "(нема)", "confirmaccount-autorej": "(овај захтев је био аутоматски одбачен због неактивности)", - "confirmaccount-held": "({{GENDER:$1|означио|означила}} је као „на чекању” {{GENDER:$1|корисник|корисница}} [[User:$1|$1]] на дан $3 у $4 ч)", + "confirmaccount-held": "({{GENDER:$1|означио|означила}} је као „на чекању” {{GENDER:$1|корисник|корисница}} [[User:$1|$1]] на датум $3 у $4)", "confirmaccount-create": "Прихвати (отвори налог)", "confirmaccount-deny": "Одбаци (скини са списка)", "confirmaccount-hold": "Заустави", diff --git a/i18n/confirmaccount/sr-el.json b/i18n/confirmaccount/sr-el.json index ee857141..28ec1c86 100644 --- a/i18n/confirmaccount/sr-el.json +++ b/i18n/confirmaccount/sr-el.json @@ -9,8 +9,8 @@ "Сербијана" ] }, - "confirmaccounts": "Prihvaćanje zahteva za naloge", - "confirmaccount-desc": "Pruža mogućnost birokratama da prihvataju zahteve za naloge", + "confirmaccounts": "Potvrda zahteva za naloge", + "confirmaccount-desc": "Daje mogućnost birokratama da potvrde zahteve za naloge", "confirmaccount-none-o": "Trenutno nema nerešenih zahteva u ovom spisku.", "confirmaccount-none-h": "Trenutno nema stopiranih zahteva u ovom spisku.", "confirmaccount-none-r": "Trenutno nema skoro odbačenih zahteva u ovom spisku.", @@ -26,6 +26,7 @@ "confirmaccount-all": "(pokaži sve redove)", "confirmaccount-type": "Red:", "confirmaccount-type-0": "prospektivni autori", + "confirmaccount-type-1": "budući urednici", "confirmaccount-q-open": "nerešeni zahtevi", "confirmaccount-q-held": "stopirani zahtevi", "confirmaccount-q-rej": "skoro odbačeni zahtevi", @@ -33,37 +34,39 @@ "confirmaccount-badid": "Nema nerešenog zahteva koji odgovara datom ID.\nMožda je već bio rešen.", "confirmaccount-leg-user": "Korisnički nalog", "confirmaccount-leg-areas": "Glavne interesne sfere", - "confirmaccount-leg-person": "Lični podaci", - "confirmaccount-leg-other": "Druge informacije", + "confirmaccount-leg-person": "Lične informacije", + "confirmaccount-leg-other": "Drugi podaci", + "confirmaccount-leg-ip": "Podaci IP adrese", "confirmaccount-name": "Korisničko ime", "confirmaccount-real": "Ime:", "confirmaccount-email": "Imejl:", - "confirmaccount-reqtype": "Pozicija:", + "confirmaccount-reqtype": "Položaj:", "confirmaccount-pos-0": "autor", - "confirmaccount-pos-1": "editor", + "confirmaccount-pos-1": "uređivač", "confirmaccount-bio": "Životopis:", - "confirmaccount-attach": "Rezime/CV:", + "confirmaccount-attach": "Opis/CV:", "confirmaccount-notes": "Dodatne napomene:", "confirmaccount-urls": "Spisak vebsajtova:", "confirmaccount-none-p": "(nije priloženo)", - "confirmaccount-confirm": "Ispod izaberite da li želite da prihvatite, odbijete ili zadržite ovaj zahtev:", + "confirmaccount-confirm": "Koristite donje opcije da biste prihvatili, odbili ili zadržali ovaj zahtev:", "confirmaccount-econf": "(potvrđeno)", - "confirmaccount-reject": "(odbacio [[User:$1|$1]] na $2)", + "confirmaccount-withcv": "(CV priložen)", + "confirmaccount-reject": "({{GENDER:$1|odbio je korisnik|odbila je korisnica}} [[User:$1|$1]] na datum $3 u $4)", "confirmaccount-rational": "Obrazloženje dato kandidatu:", "confirmaccount-noreason": "(nema)", "confirmaccount-autorej": "(ovaj zahtev je bio automatski odbačen zbog neaktivnosti)", - "confirmaccount-held": "(označeno kao \"stopirano\" od [[User:$1|$1]] na $2)", - "confirmaccount-create": "Prihvati (napravi nalog)", + "confirmaccount-held": "({{GENDER:$1|označio|označila}} je kao „na čekanju” {{GENDER:$1|korisnik|korisnica}} [[User:$1|$1]] na datum $3 u $4)", + "confirmaccount-create": "Prihvati (otvori nalog)", "confirmaccount-deny": "Odbaci (skini sa spiska)", - "confirmaccount-hold": "Stopiraj", - "confirmaccount-reason": "Komentar (biće uključen u imejl):", + "confirmaccount-hold": "Zaustavi", + "confirmaccount-reason": "Komentar (uključen u odbijenim i imejlovima na čekanju):", "confirmaccount-ip": "IP adresa:", "confirmaccount-submit": "Potvrdi", "confirmaccount-needreason": "Morate navesti razlog u kutijici za komentare ispod.", "confirmaccount-canthold": "Ovaj zahtev je već stopiran ili obrisan.", - "confirmaccount-acc": "Zahtev za nalogom uspešno prihvaćen:\nnapravljen je novi korisnički nalog [[User:$1|$1]].", - "confirmaccount-rej": "Zahtev za nalogom uspešno odbačen.", - "confirmaccount-viewing": "(trenutno pregleda [[User:$1|$1]])", + "confirmaccount-acc": "Zahtev za nalogom prihvaćen:\nnapravljen je novi korisnički nalog [[User:$1|$1]].", + "confirmaccount-rej": "Zahtev za nalogom odbačen.", + "confirmaccount-viewing": "(trenutno {{GENDER:$1|pregleda}} [[User:$1|$1]])", "confirmaccount-summary": "Stvaranje korisničke stranice za novog korisnika.", "confirmaccount-wsum": "Dobro došli!" } diff --git a/i18n/confirmaccount/sv.json b/i18n/confirmaccount/sv.json index 0f74045b..cdf5d632 100644 --- a/i18n/confirmaccount/sv.json +++ b/i18n/confirmaccount/sv.json @@ -13,6 +13,7 @@ "M.M.S.", "Najami", "Per", + "Sabelöga", "Technic2", "WikiPhoenix" ] @@ -75,7 +76,7 @@ "confirmaccount-deny": "Avslå (stryk från listan)", "confirmaccount-hold": "Avvakta", "confirmaccount-spam": "Spam (sänd inte e-post)", - "confirmaccount-reason": "Kommentar (skickas som e-post):", + "confirmaccount-reason": "Kommentar (ingår i avslag och avvaktande e-postmeddelanden):", "confirmaccount-ip": "IP-adress:", "confirmaccount-xff": "X-Forwarded-For:", "confirmaccount-agent": "Användaragent:", @@ -84,7 +85,8 @@ "confirmaccount-needreason": "Du måste skriva en motivering i kommentarrutan nedan.", "confirmaccount-canthold": "Ansökningen är antingen redan avvaktande eller har avslagits.", "confirmaccount-badaction": "En möjlig åtgärd (acceptera, förkasta, skjut upp) måste specificeras för att fortsätta.", - "confirmaccount-acc": "Kontoansökningen har godkänts och användarkontot [[User:$1|$1]] har skapats.", + "confirmaccount-mismatched": "Det här fältet måste matcha den ursprungliga ansökningen.", + "confirmaccount-acc": "Kontoansökningen har godkänts;\n\tanvändarkontot [[User:$1|$1]] har skapats.", "confirmaccount-rej": "Kontoansökningen har avslagits.", "confirmaccount-viewing": "({{GENDER:$1|granskas}} just nu av [[User:$1|$1]])", "confirmaccount-summary": "Skapar användarsida för en ny användare.", diff --git a/i18n/confirmaccount/ta.json b/i18n/confirmaccount/ta.json index e18b425f..df9c6246 100644 --- a/i18n/confirmaccount/ta.json +++ b/i18n/confirmaccount/ta.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "Fahimrazick", "Karthi.dr", "Shanmugamp7", "TRYPPN", @@ -33,7 +34,7 @@ "confirmaccount-econf": "(உறுதிப்படுத்தப்பட்டது)", "confirmaccount-withcv": "(சுயவிவரம் இணைக்கப்பட்டுள்ளது)", "confirmaccount-noreason": "(எதுவுமில்லை)", - "confirmaccount-create": "ஏற்றுக்கொள் (கணக்கு உருவாக்கு)", + "confirmaccount-create": "ஏற்றுக் கொள் (கணக்கை ஆக்கு)", "confirmaccount-spam": "எரிதம் (மின்னஞ்சல் அனுப்ப வேண்டாம்)", "confirmaccount-reason": "கருத்து (மின்னஞ்சலில் சேர்க்கப்படும்):", "confirmaccount-ip": "ஐ.பி. முகவரி:", @@ -43,6 +44,6 @@ "confirmaccount-summary": "புதிய பயனருக்காகப் பயனர் பக்கத்தை உருவாக்குகிறது.", "confirmaccount-wsum": "வருக ! வணக்கம் !", "confirmaccount-email-subj": "{{SITENAME}} கணக்கு வேண்டுகோள்", - "confirmaccount-email-body": "{{SITENAME}}-ல் பயனர் கணக்குக்கான உங்கள் கோரிக்கை ஏற்றுக்கொள்ளப்பட்டது.\n\nகணக்கு பெயர்: $1\n\nகடவுச்சொல்: $2\n\nபாதுகாப்பு காரணங்களுக்காக உங்கள் முதல் புகுபதிகையின் போது நீங்கள் உங்கள் கடவுச்சொல்லை மாற்ற வேண்டும். புகுபதிகை செய்ய செல்லவும் {{fullurl:Special:UserLogin}}.", - "confirmaccount-email-body2": "{{SITENAME}}-ல் பயனர் கணக்குக்கான உங்கள் கோரிக்கை ஏற்றுக்கொள்ளப்பட்டது.\n\nகணக்கு பெயர்: $1\n\nகடவுச்சொல்: $2\n\n$3\n\nபாதுகாப்பு காரணங்களுக்காக உங்கள் முதல் புகுபதிகையின் போது நீங்கள் உங்கள் கடவுச்சொல்லை மாற்ற வேண்டும். புகுபதிகை செய்ய செல்லவும் {{fullurl:Special:UserLogin}}." + "confirmaccount-email-body": "{{SITENAME}} இல் ஒரு பயனர் கணக்குக்கான உமது கோரிக்கை அங்கீகரிக்கப்பட்டுள்ளது.\n\nகணக்கின் பெயர்: $1\n\nகடவுச்சொல்: $2\n\nபாதுகாப்புக் காரணங்களுக்காக உமது முதலாம் புகுபதிகையின் போது நீர் உமது கடவுச்சொல்லை மாற்ற வேண்டியிருக்கும்.\nபுகுபதிய {{fullurl:Special:UserLogin}} என்பதற்குச் செல்க.", + "confirmaccount-email-body2": "{{SITENAME}} இல் ஒரு பயனர் கணக்குக்கான உமது கோரிக்கை அங்கீகரிக்கப்பட்டுள்ளது.\n\nகணக்கின் பெயர்: $1\n\nகடவுச்சொல்: $2\n\n$3\n\nபாதுகாப்புக் காரணங்களுக்காக உமது முதலாம் புகுபதிகையின் போது நீர் உமது கடவுச்சொல்லை மாற்ற வேண்டியிருக்கும்.\nபுகுபதிய {{fullurl:Special:UserLogin}} என்பதற்குச் செல்க." } diff --git a/i18n/confirmaccount/tok.json b/i18n/confirmaccount/tok.json new file mode 100644 index 00000000..425bb5dd --- /dev/null +++ b/i18n/confirmaccount/tok.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Robin van der Vliet" + ] + }, + "confirmaccount-wsum": "kama pona!" +} diff --git a/i18n/confirmaccount/tr.json b/i18n/confirmaccount/tr.json index a8c00312..9a030dde 100644 --- a/i18n/confirmaccount/tr.json +++ b/i18n/confirmaccount/tr.json @@ -8,8 +8,10 @@ "McAang", "Meelo", "MuratTheTurkish", + "SaldırganSincap", "Sayginer", "Suelnur", + "ToprakM", "Vito Genovese" ] }, diff --git a/i18n/confirmaccount/uk.json b/i18n/confirmaccount/uk.json index 6094efa6..9255c08c 100644 --- a/i18n/confirmaccount/uk.json +++ b/i18n/confirmaccount/uk.json @@ -6,6 +6,8 @@ "Alex Khimich", "Andriykopanytsia", "Base", + "DDPAT", + "Ice bulldog", "Piramidion", "Prima klasy4na", "Steve.rusyn", @@ -15,12 +17,13 @@ ] }, "confirmaccounts": "Підтвердити запит облікового запису", + "confirmaccount-extensionname": "Підтвердьте облікові записи користувачів", "confirmaccount-desc": "Дає бюрократам можливість підтверджувати запити на облікові записи", - "confirmaccount-maintext": "'''Ця сторінка використовується для підтвердження запитів на створення облікових записів проекту ''{{SITENAME}}'''''.\n\nКожна черга запитів складається з трьох частин:\nВідкриті заявки, заявки відкладені до отримання додаткової інформації, недавно відхилені заявки.\n\nПісля відкриття заявки уважно прогляньте її, за необхідності, перевірте вказану там інформацію.\nВаші дії буде записано до журналу.\nОчікується, що Ваша робота по розгляду і підтвердженню заявок вестиметься незалежно від того, що Ви робите.", - "confirmaccount-list": "Нижче наведено список запитів на обліковий запис, що очікують підтвердження.\nЯк тільки запит буде підтверджено або відхилено, він зникне з цього списку.", + "confirmaccount-maintext": "'''Ця сторінка використовується для підтвердження запитів на створення облікових записів проєкту ''{{SITENAME}}'''''.\n\nКожна черга запитів складається з трьох частин:\nВідкриті заявки, заявки відкладені до отримання додаткової інформації, нещодавно відхилені заявки.\n\nПісля відкриття заявки уважно прогляньте її, за необхідності, перевірте вказану там інформацію.\nВаші дії буде записано до журналу.\nОчікується, що Ваша робота по розгляду і підтвердженню заявок вестиметься незалежно від того, що Ви робите.", + "confirmaccount-list": "Нижче наведено список запитів на обліковий запис, що очікують підтвердження.\nЯк тільки запит буде підтверджено або скасовано, він зникне з цього списку.", "confirmaccount-list2": "Нижче наведений список нещодавно відхилених запитів на обліковий запис, який може бути автоматично видалено через кілька днів.\nВони можуть бути підтвердженими, хоча вам, можливо, варто спочатку проконсультуватися з адміністратором, що відхилив їх, перш ніж робити це.", "confirmaccount-list3": "Нижче наведено список застарілих запитів на обліковий запис, який може бути автоматично видалено через кілька днів.\nВони все ще можуть бути підтвердженими.", - "confirmaccount-text": "Це чинний запит на отримання користувацького облікового запису в проекті '''{{SITENAME}}'''.\n\nУважно ознайомтесь з інформацією нижче.\nЯкщо ви підтверджуєте запит, скористайтесь випадним меню, щоб встановити статус облікового запису користувача.\nЗміни, внесені до біографії заявки, не вплинуть на зберігання жодних постійних облікових даних.\nЗверніть увагу, що ви можете обрати створити обліковий запис з іншим іменем користувача.\nВикористовуйте цю можливість лише для уникнення конфліктів з іншими іменами.\n\nЯкщо ви просто залишите цю сторінку без підтвердження чи відхилення цього запиту, він залишиться чинним.", + "confirmaccount-text": "Це чинний запит на отримання користувацького облікового запису на проєкті '''{{SITENAME}}'''.\n\nУважно ознайомтесь з інформацією нижче.\nЯкщо ви підтверджуєте запит, скористайтесь випадним меню, щоб встановити статус облікового запису користувача.\nЗміни, внесені до біографії заявки, не вплинуть на зберігання жодних постійних облікових даних.\nЗверніть увагу, що ви можете обрати створити обліковий запис з іншим іменем користувача.\nВикористовуйте цю можливість лише для уникнення конфліктів з іншими іменами.\n\nЯкщо ви просто залишите цю сторінку без підтвердження чи відхилення цього запиту, він залишиться чинним.", "confirmaccount-none-o": "На даний момент немає відкритих чинних запитів на облікові записи у цьому списку.", "confirmaccount-none-h": "На даний момент немає відкладених чинних запитів на облікові записи у цьому списку.", "confirmaccount-none-r": "На даний момент немає нещодавно відхилених запитів на облікові записи у цьому списку.", @@ -87,12 +90,12 @@ "confirmaccount-rej": "Запит на обліковий запис відхилено.", "confirmaccount-viewing": "(зараз переглядається {{GENDER:$1|користувачем|користувачкою}} [[User:$1|$1]])", "confirmaccount-summary": "Створення сторінки користувача для нового користувача.", - "confirmaccount-welc": "'''Вітаємо у проекті ''{{SITENAME}}''!'''\nМи сподіваємось на Ваш плідний внесок.\nНапевне, Вам захочеться почитати [{{MediaWiki:Helppage}} сторінки довідки].\nЩе раз ласкаво просимо, отримуйте задоволення!", + "confirmaccount-welc": "'''Вітаємо у проєкті ''{{SITENAME}}''!'''\nМи сподіваємось, що ви внесете чималий внесок.\nНапевне, Вам захочеться почитати [{{MediaWiki:Helppage}} сторінки довідки].\nЩе раз ласкаво просимо, отримуйте задоволення!", "confirmaccount-wsum": "Ласкаво просимо!", "confirmaccount-email-subj": "{{SITENAME}}: запит облікового запису", - "confirmaccount-email-body": "Ваш запит на обліковий запис було підтверджено у проекті {{SITENAME}}.\n\nІм'я: $1\n\nПароль: $2\n\nЗ питань безпеки, Вам треба буде змінити пароль при першому входженні.\nЩоб увійти, перейдіть, будь ласка, на сторінку {{fullurl:Special:UserLogin}}.", - "confirmaccount-email-body2": "Ваш запит на обліковий запис було підтверджено у проекті {{SITENAME}}.\n\nІм'я: $1\n\nПароль: $2\n\n$3\n\nЗ питань безпеки, Вам треба буде змінити пароль при першому входженні.\nЩоб увійти, перейдіть, будь ласка, на сторінку {{fullurl:Special:UserLogin}}.", - "confirmaccount-email-body3": "На жаль, Ваш запит на обліковий запис \"$1\" було відхилено у проекті {{SITENAME}}.\n\nЦе могло статися з кількох причин.\nМожливо, Ви некоректно заповнили форму, не надали достатньо повних відповідей або якось іще не відповідаєте критеріям правил.\nНа сайті мають бути списки контактів, за якими можна звернутись, якщо хочете дізнатись більше про правила облікових записів користувачів.", - "confirmaccount-email-body4": "На жаль, Ваш запит на обліковий запис \"$1\" було відхилено у проекті {{SITENAME}}.\n\n$2\n\nНа сайті мають бути списки контактів, за якими можна звернутись, якщо хочете дізнатись більше про правила облікових записів користувачів.", - "confirmaccount-email-body5": "Перед тим як обліковий запис \"$1\" зможе бути затвердженим у проекті {{SITENAME}}, Вам треба надати деяку додаткову інформацію.\n\n$2\n\nНа сайті мають бути списки контактів, за якими можна звернутись, якщо хочете дізнатись більше про правила облікових записів користувачів." + "confirmaccount-email-body": "Ваш запит на обліковий запис було підтверджено у проєкті {{SITENAME}}.\n\nІм'я: $1\n\nПароль: $2\n\nЗ питань безпеки, Вам треба буде змінити пароль при першому входженні.\nЩоб увійти, перейдіть, будь ласка, на сторінку {{fullurl:Special:UserLogin}}.", + "confirmaccount-email-body2": "Ваш запит на обліковий запис було підтверджено у проєкті {{SITENAME}}.\n\nІм'я: $1\n\nПароль: $2\n\n$3\n\nЗ питань безпеки, Вам треба буде змінити пароль при першому входженні.\nЩоб увійти, перейдіть, будь ласка, на сторінку {{fullurl:Special:UserLogin}}.", + "confirmaccount-email-body3": "На жаль, Ваш запит на обліковий запис \"$1\" було відхилено у проєкті {{SITENAME}}.\n\nЦе могло статися з кількох причин.\nМожливо, Ви некоректно заповнили форму, не надали достатньо повних відповідей або якось ще не відповідаєте критеріям правил.\nНа сайті мають бути списки контактів, за якими можна звернутись, якщо хочете дізнатись більше про правила облікових записів користувачів.", + "confirmaccount-email-body4": "На жаль, Ваш запит на обліковий запис \"$1\" було відхилено у проєкті {{SITENAME}}.\n\n$2\n\nНа сайті мають бути списки контактів, за якими можна звернутись, якщо хочете дізнатись більше про правила облікових записів користувачів.", + "confirmaccount-email-body5": "Перед тим як обліковий запис \"$1\" зможе бути затвердженим у проєкті {{SITENAME}}, Вам треба надати деяку додаткову інформацію.\n\n$2\n\nНа сайті мають бути списки контактів, за якими можна звернутись, якщо хочете дізнатись більше про правила облікових записів користувачів." } diff --git a/i18n/confirmaccount/yi.json b/i18n/confirmaccount/yi.json index 1b076a37..759f31c8 100644 --- a/i18n/confirmaccount/yi.json +++ b/i18n/confirmaccount/yi.json @@ -1,16 +1,17 @@ { "@metadata": { "authors": [ + "Pacha Tchernof", "פוילישער" ] }, "confirmaccount-real-q": "נאמען", - "confirmaccount-email-q": "ע-פאסט", + "confirmaccount-email-q": "בליצפּאָסט", "confirmaccount-review": "רעצענזירן", "confirmaccount-leg-user": "באַניצער קאנטע", "confirmaccount-name": "באַניצער נאָמען", "confirmaccount-real": "נאָמען:", - "confirmaccount-email": "ע-פאסט:", + "confirmaccount-email": "בליצפּאָסט:", "confirmaccount-pos-1": "רעדאַקטאָר", "confirmaccount-bio": "ביאגראַפֿיע", "confirmaccount-econf": "(באשטעטיקט)", diff --git a/i18n/confirmaccount/yue.json b/i18n/confirmaccount/yue-hant.json similarity index 83% rename from i18n/confirmaccount/yue.json rename to i18n/confirmaccount/yue-hant.json index 1f0405df..56f61b27 100644 --- a/i18n/confirmaccount/yue.json +++ b/i18n/confirmaccount/yue-hant.json @@ -1,21 +1,28 @@ { "@metadata": { - "authors": [] + "authors": [ + "JeffreyKim", + "Winston Sung", + "Yueman" + ] }, "confirmaccounts": "確認戶口請求", "confirmaccount-list": "下面係等緊批准嘅用戶請求一覽。\n\t已經批准嘅戶口將會建立同埋響呢個表度拎走。拒絕咗嘅用戶將會就噉響呢個表度拎走。", "confirmaccount-list2": "下面係一個先前拒絕過嘅戶口請求,可能會響幾日之後刪除。\n\t佢哋仍舊可以批准去開一個戶口,但係響你做之前請問吓拒絕嘅管理員先。", "confirmaccount-text": "呢個係響'''{{SITENAME}}'''度等候請求戶口嘅一版。\n\t請小心去睇過,有需要嘅話,就要確認埋佢下面全部嘅資料。\n\t要留意嘅係你可以用另一個用戶名去開一個戶口。只係同其他嘅名有衝突嗰陣先至去做。\n\n\t如果你無確認或者拒絕呢個請求,就噉留低呢版嘅話,佢就會維持等候狀態。", + "confirmaccount-real-q": "名", "confirmaccount-review": "批准/拒絕", - "confirmaccount-badid": "提供嘅ID係無未決定嘅請求。佢可能已經被處理咗。", + "confirmaccount-badid": "提供嘅ID無對應嘅未決定請求。\n佢可能已經處理咗。", "confirmaccount-name": "用戶名", "confirmaccount-real": "名", "confirmaccount-email": "電郵", + "confirmaccount-pos-0": "作者", "confirmaccount-bio": "傳記", "confirmaccount-urls": "網站一覽:", "confirmaccount-confirm": "用下面嘅掣去批准或拒絕呢個請求。", "confirmaccount-econf": "(已批准)", "confirmaccount-reject": "(響$2被[[User:$1|$1]]拒絕)", + "confirmaccount-noreason": "(冇)", "confirmaccount-create": "接受 (開戶口)", "confirmaccount-deny": "拒絕 (反列示)", "confirmaccount-reason": "註解 (會用響封電郵度):", @@ -29,5 +36,10 @@ "confirmaccount-email-body": "你請求嘅戶口已經響{{SITENAME}}度批准咗。\n\n戶口名: $1\n\n密碼: $2\n\n為咗安全性嘅原故,你需要響第一次登入嗰陣去改個密碼。要登入,請去{{fullurl:Special:Userlogin}}。", "confirmaccount-email-body2": "你請求嘅戶口已經響{{SITENAME}}度批准咗。\n\n戶口名: $1\n\n密碼: $2\n\n$3\n\n為咗安全性嘅原故,你需要響第一次登入嗰陣去改個密碼。要登入,請去{{fullurl:Special:Userlogin}}。", "confirmaccount-email-body3": "對唔住,你響{{SITENAME}}請求嘅戶口\"$1\"已經拒絕咗。\n\n當中可能會有好多個原因,令到你嘅請求被拒絕。你可能無正確噉填好晒個表格,可能響你嘅回應度無足夠嘅長度,又可能未能符合到一啲政策嘅條件。響呢個網站度提供咗聯絡人一覽,你可以用去知道更多用戶戶口政策嘅資料。", - "confirmaccount-email-body4": "對唔住,你響{{SITENAME}}請求嘅戶口\"$1\"已經拒絕咗。\n\n$2\n\n響呢個網站度提供咗聯絡人一覽,你可以用去知道更多用戶戶口政策嘅資料。" + "confirmaccount-email-body4": "對唔住,你響{{SITENAME}}請求嘅戶口\"$1\"已經拒絕咗。\n\n$2\n\n響呢個網站度提供咗聯絡人一覽,你可以用去知道更多用戶戶口政策嘅資料。", + "confirmaccount-spam-link": "垃圾內容", + "confirmaccount-mark-request-spam": "要求將#$1標記為垃圾郵件?", + "confirmaccount-cannot-load-review": "載入唔到個評論頁面。", + "confirmaccount-failed-to-mark": "未能標記為垃圾內容:$1", + "confirmaccount-cannot-find-form": "搵唔到個確認表格。" } diff --git a/i18n/confirmaccount/za.json b/i18n/confirmaccount/za.json new file mode 100644 index 00000000..87fa245f --- /dev/null +++ b/i18n/confirmaccount/za.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Midleading" + ] + }, + "confirmaccount-wsum": "Vanhyingz!" +} diff --git a/i18n/confirmaccount/zh-hans.json b/i18n/confirmaccount/zh-hans.json index 9b4d88de..689903cd 100644 --- a/i18n/confirmaccount/zh-hans.json +++ b/i18n/confirmaccount/zh-hans.json @@ -4,12 +4,17 @@ "A Retired User", "CXuesong", "Chenxiaoqino", + "Diskdance", "Hydra", "Impersonator 1", "Kuailong", + "Lakejason0", + "LittlePaw365", "Liuxinyu970226", "Mark85296341", "Mywood", + "Peterxy12", + "Tranve", "Wilsonmess", "Xiaomingyan", "Xiplus", @@ -19,36 +24,37 @@ "神樂坂秀吉" ] }, - "confirmaccounts": "确认帐户请求", - "confirmaccount-desc": "允许行政员确认帐户请求", - "confirmaccount-maintext": "'''本页面用于确认“{{SITENAME}}”的帐户请求'''。\n\n每个帐户请求队列包括三个子队列。一个是开放的请求,一个是被其他管理员搁置的请求,一个是最近被拒绝的请求。\n\n当回复请求时,请仔细阅读。如有需要,确认其中包含的信息。您的操作将记录为私有记录。也希望您能审查任何在这发生的不是您本人的操作。", - "confirmaccount-list": "以下是正在等候批准的用户请求列表。\n已批准的帐户将会创建并在这个列表中移除。而已拒绝的将只会在这个列表中移除。", - "confirmaccount-list2": "以下是一个先前拒绝过的帐户请求,可能会在数日后删除。\n它们仍旧可以批准创建一个帐户,但是在您做之前应先询问拒绝该帐户的管理员原因。", - "confirmaccount-list3": "下面是可能于几天后被自动删除的到期账户请求。他们依然可以被批准。", + "confirmaccounts": "确认账号申请", + "confirmaccount-extensionname": "确认用户账号", + "confirmaccount-desc": "赋予行政员确认账号申请的能力", + "confirmaccount-maintext": "'''本页面用于确认“{{SITENAME}}”的账号请求'''。\n\n每个账号请求队列包括三个子队列。一个是开放的请求,一个是被其他管理员搁置的请求,一个是最近被拒绝的请求。\n\n当回复请求时,请仔细阅读。如有需要,确认其中包含的信息。您的操作将记录为私有记录。也希望您能审查任何在这发生的不是您本人的操作。", + "confirmaccount-list": "下面是等待批准的账号申请列表。一旦申请被批准或拒绝,会从该列表中删除。", + "confirmaccount-list2": "下面是可能于几天后被自动删除的最近被拒绝的账号申请列表。它们依然可以被批准,尽管在批准前可能需要先与拒绝的管理员商议。", + "confirmaccount-list3": "下面是可能于几天后被自动删除的到期的账号申请列表。它们依然可以被批准。", "confirmaccount-text": "这个是在'''{{SITENAME}}'''中等候请求账户的页面。\n\n请小心阅读,有需要的话,就要同时确认它下面的全部资料。要留意的是您可以用另一个用户名字去创建一个账户。只有其他的名字有冲突时才需要去作。\n\n如果您不确认或者拒绝这个请求,只是留在这页面的话,它会维持等候状态。", - "confirmaccount-none-o": "在当前列表中没有正在等待批准的帐号请求。", - "confirmaccount-none-h": "在当前列表中没有被挂起的帐号请求。", - "confirmaccount-none-r": "在当前列表中没有刚刚被拒绝的帐号请求。", - "confirmaccount-none-e": "该列表中目前没有过期的账户请求。", + "confirmaccount-none-o": "该列表内目前没有开放的待处理账号申请。", + "confirmaccount-none-h": "在当前列表中没有被挂起的账号请求。", + "confirmaccount-none-r": "在当前列表中没有刚刚被拒绝的账号请求。", + "confirmaccount-none-e": "该列表中目前没有过期的账号请求。", "confirmaccount-real-q": "真实姓名", "confirmaccount-email-q": "电子邮件", "confirmaccount-bio-q": "个人简介", "confirmaccount-showopen": "开放的请求", "confirmaccount-showrej": "被拒绝的请求", "confirmaccount-showheld": "被挂起的请求", - "confirmaccount-showexp": "过期的请求", + "confirmaccount-showexp": "到期的申请", "confirmaccount-review": "复查", - "confirmaccount-types": "在下面选择一个账户确认队列", + "confirmaccount-types": "在下面选择一个账号确认队列", "confirmaccount-all": "(显示所有队列)", "confirmaccount-type": "队列:", "confirmaccount-type-0": "可能的作者", "confirmaccount-type-1": "可能的作者们", - "confirmaccount-q-open": "开放的请求", - "confirmaccount-q-held": "被挂起的请求", - "confirmaccount-q-rej": "最近拒绝的请求", - "confirmaccount-q-stale": "过期的请求", + "confirmaccount-q-open": "开启的申请", + "confirmaccount-q-held": "搁置的申请", + "confirmaccount-q-rej": "最近拒绝的申请", + "confirmaccount-q-stale": "到期的申请", "confirmaccount-badid": "提供的ID是没有未决定的请求。它可能已经被处理。", - "confirmaccount-leg-user": "用户账户", + "confirmaccount-leg-user": "用户账号", "confirmaccount-leg-areas": "主要的兴趣范围", "confirmaccount-leg-person": "个人信息", "confirmaccount-leg-other": "其他信息", @@ -60,12 +66,12 @@ "confirmaccount-pos-0": "作者", "confirmaccount-pos-1": "编辑", "confirmaccount-bio": "传记", - "confirmaccount-attach": "简历或履历:", + "confirmaccount-attach": "简历/履历表:", "confirmaccount-notes": "注释:", "confirmaccount-urls": "网站列表:", "confirmaccount-none-p": "(没有提供)", "confirmaccount-confirm": "用以下选项接受,拒绝或搁置这个请求:", - "confirmaccount-econf": "(已批准)", + "confirmaccount-econf": "(已确认)", "confirmaccount-withcv": "(附简历)", "confirmaccount-reject": "已于$3 $4被[[User:$1|$1]]拒绝", "confirmaccount-rational": "给申请人的理由:", @@ -73,31 +79,36 @@ "confirmaccount-autorej": "(此请求已因为无活动而自动被回绝)", "confirmaccount-held": "(在$3 $4被[[User:$1|$1]]标记为“挂起”)", "confirmaccount-blockip": "封禁IP地址", - "confirmaccount-create": "接受 (创建账户)", + "confirmaccount-create": "接受 (创建账号)", "confirmaccount-deny": "拒绝(从列表中移除)", "confirmaccount-hold": "挂起", "confirmaccount-spam": "垃圾(不发送电子邮件)", "confirmaccount-reason": "评论(包含在拒绝和搁置邮件中):", "confirmaccount-ip": "IP地址:", - "confirmaccount-xff": "X-Forwarded-For:", - "confirmaccount-agent": "User-Agent:", - "confirmaccount-legend": "批准/拒绝这个帐号", + "confirmaccount-xff": "X-Forwarded-For:", + "confirmaccount-agent": "User-Agent:", + "confirmaccount-legend": "确认/拒绝此账号", "confirmaccount-submit": "确认", "confirmaccount-needreason": "您必须在下方的评论栏阐述您的理由。", "confirmaccount-canthold": "该请求已挂起或被删除。", "confirmaccount-badaction": "必须指定有效的操作(接受,拒绝,搁置)才能继续进行。", "confirmaccount-mismatched": "此字段必须匹配原始账户请求的字段。", "confirmaccount-mismatched-general": "请求了对原始账户请求中不允许更改字段的覆盖请求,或“邮件密码”选项未被设置。", - "confirmaccount-acc": "账户请求已确认;已经创建一个新的用户帐号[[User:$1]]。", - "confirmaccount-rej": "账户请求已拒绝。", + "confirmaccount-acc": "已确认账号请求;已经创建新的用户账号[[User:$1|$1]]。", + "confirmaccount-rej": "已拒绝账号请求。", "confirmaccount-viewing": "(目前正由[[User:$1|$1]]浏览)", "confirmaccount-summary": "为新用户创建用户页面。", "confirmaccount-welc": "'''欢迎来到''{{SITENAME}}''!'''\n我们希望您会作出更多更好的贡献。\n您可能想先阅读一下[{{MediaWiki:Helppage}} 帮助页面]。\n再次欢迎您,祝您愉快!", "confirmaccount-wsum": "欢迎!", - "confirmaccount-email-subj": "{{SITENAME}}账户请求", - "confirmaccount-email-body": "您请求的账户已经在{{SITENAME}}中批准。\n\n账户名称: $1\n\n密码: $2\n\n为了安全性的原故,您需要在一次登入时更改密码。要登入,请前往{{fullurl:Special:Userlogin}}。", - "confirmaccount-email-body2": "您请求的账户已经在{{SITENAME}}中批准。\n\n账户名称: $1\n\n密码: $2\n\n$3\n\n为了安全性的原故,您需要在一次登入时更改密码。要登入,请前往{{fullurl:Special:Userlogin}}。", + "confirmaccount-email-subj": "{{SITENAME}}账号申请", + "confirmaccount-email-body": "您在{{SITENAME}}的账号申请已获批准。\n\n账号名称:$1\n\n密码:$2\n\n出于安全考虑,您需要在首次登录时更改密码。\n要登录,请访问{{fullurl:Special:Userlogin}}。", + "confirmaccount-email-body2": "您在{{SITENAME}}的账号申请已获批准。\n\n账号名称:$1\n\n密码:$2\n\n$3\n\n出于安全考虑,您需要在首次登录时更改密码。\n要登录,请访问{{fullurl:Special:Userlogin}}。", "confirmaccount-email-body3": "抱歉,您在{{SITENAME}}请求的账户“$1”已经遭到拒绝。\n\n这可能是因为以下一些原因:您可能没有正确地填上整个表格,可能在您的反应中没有足够的长度,又可能未能符合到一些政策的条件。在这个网站中度提供了联络人列表,您可以用去知道更多用户账户方针的资料。", "confirmaccount-email-body4": "抱歉,你在{{SITENAME}}请求的账户\"$1\"已经遭到拒绝。\n\n$2\n\n在这个网站中度提供了联络人列表,您可以用去知道更多用户账户方针的资料。", - "confirmaccount-email-body5": "在您请求账户 \"$1\" 能在{{SITENAME}}被批准之前,您必须先提供一些附加信息。\n\n$2\n\n如果您想知道更多有关用户账户方针的信息,您可以使用网站中的联系列表。" + "confirmaccount-email-body5": "在您请求账户 \"$1\" 能在{{SITENAME}}被批准之前,您必须先提供一些附加信息。\n\n$2\n\n如果您想知道更多有关用户账户方针的信息,您可以使用网站中的联系列表。", + "confirmaccount-spam-link": "广告宣传", + "confirmaccount-mark-request-spam": "将请求#$1标记为垃圾邮件?", + "confirmaccount-cannot-load-review": "无法加载评论页面。", + "confirmaccount-failed-to-mark": "未能标记为垃圾邮件:$1", + "confirmaccount-cannot-find-form": "找不到确认表格。" } diff --git a/i18n/confirmaccount/zh-hant.json b/i18n/confirmaccount/zh-hant.json index a97cc3bd..ec7d8b6b 100644 --- a/i18n/confirmaccount/zh-hant.json +++ b/i18n/confirmaccount/zh-hant.json @@ -14,8 +14,10 @@ "Simon Shek", "Suchichi02", "Waihorace", + "Winston Sung", "Xiaomingyan", "Xiplus", + "捍粵者", "飞舞回堂前" ] }, @@ -34,17 +36,17 @@ "confirmaccount-email-q": "電子郵箱", "confirmaccount-bio-q": "個人簡介", "confirmaccount-showopen": "開放的請求", - "confirmaccount-showrej": "被拒絕的請求", - "confirmaccount-showheld": "被擱置的請求", + "confirmaccount-showrej": "請求被拒", + "confirmaccount-showheld": "已擱置請求", "confirmaccount-showexp": "過期的請求", - "confirmaccount-review": "批准/拒絕", + "confirmaccount-review": "檢閱", "confirmaccount-types": "在下面選擇一個賬戶確認隊列", "confirmaccount-all": "(顯示所有隊列)", "confirmaccount-type": "隊列:", "confirmaccount-type-0": "可能的作者", - "confirmaccount-type-1": "可能的作者們", + "confirmaccount-type-1": "潛在編者", "confirmaccount-q-open": "開放的請求", - "confirmaccount-q-held": "被擱置的請求", + "confirmaccount-q-held": "已擱置的請求", "confirmaccount-q-rej": "近期拒絕的請求", "confirmaccount-q-stale": "過期的請求", "confirmaccount-badid": "提供的ID是沒有未決定的請求。它可能已經被處理。", @@ -76,7 +78,7 @@ "confirmaccount-create": "接受 (建立帳號)", "confirmaccount-deny": "拒絕 (反列示)", "confirmaccount-hold": "掛起", - "confirmaccount-spam": "垃圾(請不要傳送電子郵件)", + "confirmaccount-spam": "垃圾內容(請不要傳送電子郵件)", "confirmaccount-reason": "註解(包含在回退和擱置電郵裡):", "confirmaccount-ip": "IP位址:", "confirmaccount-xff": "X-Forwarded-For:", @@ -84,7 +86,7 @@ "confirmaccount-legend": "批准/拒絕這個帳號", "confirmaccount-submit": "確認", "confirmaccount-needreason": "您必須在下方的評論欄闡述您的理由。", - "confirmaccount-canthold": "該請求已被搁置,或已被刪除。", + "confirmaccount-canthold": "該請求已擱置或刪除。", "confirmaccount-badaction": "必須指定有效操作(接受,拒绝,搁置)才可繼續。", "confirmaccount-mismatched": "此欄位必須符合原有帳號請求。", "confirmaccount-mismatched-general": "對原有帳戶請求欄位覆寫的請求未被允許,或是「電子郵件密碼」選項未被設定。", @@ -94,10 +96,15 @@ "confirmaccount-summary": "建立新使用者的使用者頁面。", "confirmaccount-welc": "'''歡迎來到''{{SITENAME}}''!'''\n我們希望您會作出更多更好的貢獻。\n您可能想先閱讀一下[{{MediaWiki:Helppage}} 說明頁面]。\n再次歡迎您,祝您愉快!", "confirmaccount-wsum": "歡迎!", - "confirmaccount-email-subj": "{{SITENAME}} 帳號請求", + "confirmaccount-email-subj": "{{SITENAME}}帳號申請", "confirmaccount-email-body": "您請求的帳戶已經在{{SITENAME}}中批准。\n\n帳戶名稱: $1\n\n密碼: $2\n\n為了安全性的原故,您需要在一次登入時更改密碼。要登入,請前往{{fullurl:Special:Userlogin}}。", "confirmaccount-email-body2": "您請求的帳戶已經在{{SITENAME}}中批准。\n\n帳戶名稱: $1\n\n密碼: $2\n\n$3\n\n為了安全性的原故,您需要在一次登入時更改密碼。要登入,請前往{{fullurl:Special:Userlogin}}。", "confirmaccount-email-body3": "抱歉,你在{{SITENAME}}請求的帳戶\"$1\"已經遭到拒絕。\n\n當中可能會有很多原因,會令到您嘅請求被拒絕。您可能沒有正確地填上整個表格,可能在您的回應中沒有足夠的長度,又可能未能符合到一些政策的條件。在這個網站中度提供了聯絡人列表,您可以用去知道更多用戶帳戶方針的資料。", "confirmaccount-email-body4": "抱歉,你在{{SITENAME}}請求的帳戶\"$1\"已經遭到拒絕。\n\n$2\n\n在這個網站中度提供了聯絡人列表,您可以用去知道更多使用者帳號方針的資料。", - "confirmaccount-email-body5": "在你請求帳戶「$1」能在{{SITENAME}}被批准之前,你必須先提供一些附加資訊。\n\n$2\n\n如果你想知道更多有關帳戶政策的資訊,你可以使用網站中的聯繫列表。" + "confirmaccount-email-body5": "在你請求帳戶「$1」能在{{SITENAME}}被批准之前,你必須先提供一些附加資訊。\n\n$2\n\n如果你想知道更多有關帳戶政策的資訊,你可以使用網站中的聯繫列表。", + "confirmaccount-spam-link": "垃圾內容", + "confirmaccount-mark-request-spam": "將請求 #$1 標記為垃圾內容?", + "confirmaccount-cannot-load-review": "無法載入檢閱頁面。", + "confirmaccount-failed-to-mark": "標記為垃圾內容失敗:$1", + "confirmaccount-cannot-find-form": "找不到確認表格。" } diff --git a/i18n/core/ar.json b/i18n/core/ar.json index 92ba40dd..6ba2d40b 100644 --- a/i18n/core/ar.json +++ b/i18n/core/ar.json @@ -13,6 +13,7 @@ "requestaccount-loginnotice": "للحصول على حساب، يجب عليك '''[[Special:RequestAccount|أن تطلب حسابًا]]'''.", "action-confirmaccount": "مراجعة وقبول الحسابات", "right-confirmaccount": "عرض [[Special:ConfirmAccounts|طابور الحسابات المطلوبة]]", + "right-confirmaccount-notify": "يتم إخطارك عبر البريد الإلكتروني حول طلبات الحساب المعتمدة حديثًا", "action-requestips": "عرض عنوان أيبي الطالب أثناء العمل على الحسابات المطلوبة", "right-requestips": "عرض عنوان أيبي الطالب أثناء العمل على الحسابات المطلوبة", "action-lookupcredentials": "عرض اعتمادات المستخدم", diff --git a/i18n/core/ca.json b/i18n/core/ca.json index b6cb08cb..26c89c28 100644 --- a/i18n/core/ca.json +++ b/i18n/core/ca.json @@ -2,9 +2,10 @@ "@metadata": { "authors": [ "Arnaugir", - "Fitoschido" + "Fitoschido", + "SMP" ] }, "action-lookupcredentials": "veure les credencials dels usuaris", - "right-lookupcredentials": "Mostra les [[Special:UserCredentials|credencials d'usuari]]" + "right-lookupcredentials": "Veure les [[Special:UserCredentials|credencials d'usuari]]" } diff --git a/i18n/core/cdo.json b/i18n/core/cdo-hant.json similarity index 96% rename from i18n/core/cdo.json rename to i18n/core/cdo-hant.json index 201ebd7e..c5eda215 100644 --- a/i18n/core/cdo.json +++ b/i18n/core/cdo-hant.json @@ -1,7 +1,7 @@ { "@metadata": { "authors": [ - "Yejianfei" + "Winston Sung" ] }, "confirmaccount-newrequests": "'''$1'''開電子郵件確認[[Special:ConfirmAccounts|賬戶{{PLURAL:$1|請求敆𡅏等}}]]。'''汝需要其是耐心!'''", diff --git a/i18n/core/cs.json b/i18n/core/cs.json index 2f770ac7..95e6c8db 100644 --- a/i18n/core/cs.json +++ b/i18n/core/cs.json @@ -4,8 +4,18 @@ "Jkjk", "Li-sung", "Matěj Grabovský", - "Mormegil" + "Matěj Suchánek", + "Mormegil", + "Nesuprachy" ] }, - "requestaccount-loginnotice": "Chcete-li získat uživatelský účet, je třeba o něj '''[[Special:RequestAccount|požádat]]'''." + "confirmaccount-newrequests": "Momentálně {{PLURAL:$1|je otevřená '''jedna'''|jsou otevřené '''$1'''|je otevřeno '''$1'''}} [[Special:ConfirmAccounts|{{PLURAL:$1|žádost o účet|žádosti o účet|žádostí o účet}}]]. '''Je vyžadována vaše pozornost!'''", + "requestaccount-loginnotice": "Chcete-li získat uživatelský účet, je třeba o něj '''[[Special:RequestAccount|požádat]]'''.", + "action-confirmaccount": "kontrola a schvalování účtů", + "right-confirmaccount": "Zobrazit [[Special:ConfirmAccounts|frontu žádostí o účet]]", + "right-confirmaccount-notify": "Dostávat oznámení e-mailem o nově schválených žádostech o účet", + "action-requestips": "zobrazit IP adresu žadatele při zpracování žádosti o účet", + "right-requestips": "Zobrazit IP adresu žadatele při zpracování žádosti o účet", + "action-lookupcredentials": "zobrazit údaje uživatele", + "right-lookupcredentials": "Zobrazit [[Special:UserCredentials|údaje uživatele]]" } diff --git a/i18n/core/de-formal.json b/i18n/core/de-formal.json deleted file mode 100644 index 59bd8d3d..00000000 --- a/i18n/core/de-formal.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Geitost", - "Imre", - "Kghbln", - "The Evil IP address", - "Umherirrender" - ] - }, - "confirmaccount-newrequests": "[[Special:ConfirmAccounts|{{PLURAL:$1|Ein offener, per E-Mail bestätigter Benutzerkontenantrag wartet|$1 offene, per E-Mail bestätigte Benutzerkontenanträge warten}}]] auf Bearbeitung. '''Bitte kümmern Sie sich darum. Vielen Dank.'''", - "requestaccount-loginnotice": "Um ein Benutzerkonto zu erhalten, müssen Sie es '''[[Special:RequestAccount|beantragen]]'''." -} diff --git a/i18n/core/de.json b/i18n/core/de.json index 31ad7eab..d85df3cf 100644 --- a/i18n/core/de.json +++ b/i18n/core/de.json @@ -2,6 +2,7 @@ "@metadata": { "authors": [ "Als-Holder", + "Justman10000", "Kghbln", "Leithian", "MF-Warburg", @@ -15,10 +16,11 @@ "Umherirrender" ] }, - "confirmaccount-newrequests": "[[Special:ConfirmAccounts|{{PLURAL:$1|Ein offener, per E-Mail bestätigter Benutzerkontenantrag wartet|$1 offene, per E-Mail bestätigte Benutzerkontenanträge warten}}]] auf Bearbeitung. '''Bitte kümmere dich darum. Vielen Dank.'''", - "requestaccount-loginnotice": "Um ein Benutzerkonto zu erhalten, musst du es '''[[Special:RequestAccount|beantragen]]'''.", + "confirmaccount-newrequests": "[[Special:ConfirmAccounts|{{PLURAL:$1|Ein offener, per E-Mail bestätigter Benutzerkontenantrag wartet|$1 offene, per E-Mail bestätigte Benutzerkontenanträge warten}}]] auf Bearbeitung. '''Bitte {{#FORMAL:kümmere dich|kümmern Sie sich}} darum. Vielen Dank.'''", + "requestaccount-loginnotice": "Um ein Benutzerkonto zu erhalten, {{#FORMAL:musst du|müssen Sie}} es '''[[Special:RequestAccount|beantragen]]'''.", "action-confirmaccount": "Benutzerkontenanträge zu überprüfen und zu akzeptieren", "right-confirmaccount": "Die [[Special:ConfirmAccounts|Liste der Benutzerkontenanträge]] einsehen", + "right-confirmaccount-notify": "Per E-Mail über neu genehmigte Kontoanträge benachrichtigt werden", "action-requestips": "die IP-Adresse des Anfragenden beim Bearbeiten von Benutzerkontenanträgen einzusehen", "right-requestips": "Die IP-Adresse des Anfragenden beim Bearbeiten von Benutzerkontenanträgen einsehen", "action-lookupcredentials": "die Anmeldedaten einzusehen", diff --git a/i18n/core/en-gb.json b/i18n/core/en-gb.json index 02bf3d39..2791ee67 100644 --- a/i18n/core/en-gb.json +++ b/i18n/core/en-gb.json @@ -6,11 +6,5 @@ "Yejianfei" ] }, - "confirmaccount-newrequests": "'''$1''' open email confirmed [[Special:ConfirmAccounts|account {{PLURAL:$1|request is pending|requests are pending}}]]. '''Your attention is needed!'''", - "requestaccount-loginnotice": "To obtain a user account, you must '''[[Special:RequestAccount|request one]]'''.", - "action-confirmaccount": "review and accept accounts", - "right-confirmaccount": "View the [[Special:ConfirmAccounts|queue with requested accounts]]", - "action-requestips": "view requester's IP addresses whilst processing requested accounts", - "right-requestips": "View requester's IP addresses while processing requested accounts", - "right-lookupcredentials": "View [[Special:UserCredentials|user credentials]]" + "action-requestips": "view requester's IP addresses whilst processing requested accounts" } diff --git a/i18n/core/es.json b/i18n/core/es.json index c329be24..3801c345 100644 --- a/i18n/core/es.json +++ b/i18n/core/es.json @@ -10,6 +10,7 @@ "Lin linao", "Locos epraix", "Macofe", + "MarcoAurelio", "Pertile", "Sanbec", "Translationista" @@ -19,6 +20,8 @@ "requestaccount-loginnotice": "Para obtener una cuenta de usuario, debes '''[[Special:RequestAccount|solicitar una]]'''.", "action-confirmaccount": "revisar y confirmar cuentas de usuario", "right-confirmaccount": "Ver la [[Special:ConfirmAccounts|cola de solicitudes de cuenta]]", + "right-confirmaccount-notify": "Ser notificado por correo electrónico sobre las solicitudes de creación de cuentas aprobadas", + "action-requestips": "ver la dirección IP del solicitante mientras se procesan las solicitudes de cuenta", "right-requestips": "Ver la dirección IP del solicitante mientras se procesan las solicitudes de cuenta", "action-lookupcredentials": "ver credenciales de usuarios", "right-lookupcredentials": "Ver las [[Special:UserCredentials|credenciales del usuario]]" diff --git a/i18n/core/fa.json b/i18n/core/fa.json index edef37f5..abaef3c9 100644 --- a/i18n/core/fa.json +++ b/i18n/core/fa.json @@ -2,11 +2,14 @@ "@metadata": { "authors": [ "Armin1392", + "Beginneruser", + "Jeeputer", "Mjbmr" ] }, - "confirmaccount-newrequests": "'''$1''' ایمیل باز تأیید شد [[Special:ConfirmAccounts|account {{PLURAL:$1|request is pending|requests are pending}}]]. '''توجه شما نیازمند شده است!'''", - "requestaccount-loginnotice": "برای به دست آوردن یک حساب کاربری، شما باید '''[[Special:RequestAccount|request one]]'''.", + "confirmaccount-newrequests": "'''$1''' ایمیل باز [[Special:ConfirmAccounts|[[Special:ConfirmAccounts|account {{PLURAL:$1|درخواست در حال انتظار}}]] حساب]] تأیید شده است.\n'''توجه شما نیازمند شده است!'''", + "requestaccount-loginnotice": "برای دستیابی یک حساب کاربری، شما باید '''[[Special:RequestAccount|یک درخواست دهید]]'''.", + "action-confirmaccount": "بازبینی و پذیرش حساب‌ها", "right-confirmaccount": "مشاهدهٔ [[Special:ConfirmAccounts|queue with requested accounts]]", "right-requestips": "مشاهدهٔ متقاضیان آدرس‌های آی‌پی زمان پردازش حساب‌های درخواست شده", "right-lookupcredentials": "مشاهدهٔ [[Special:UserCredentials|user credentials]]" diff --git a/i18n/core/fi.json b/i18n/core/fi.json index ce2b09dd..b91f2127 100644 --- a/i18n/core/fi.json +++ b/i18n/core/fi.json @@ -8,6 +8,7 @@ "Jaakonam", "Mobe", "Nike", + "Samoasambia", "Str4nd", "Taleman", "Varusmies" @@ -17,6 +18,7 @@ "requestaccount-loginnotice": "Saadaksesi käyttäjätunnuksen on tehtävä '''[[Special:RequestAccount|käyttäjätunnuspyyntö]]'''.", "action-confirmaccount": "tarkastaa ja hyväksyä tunnuksia", "right-confirmaccount": "Nähdä [[Special:ConfirmAccounts|listan pyydetyistä tunnuksista]]", + "right-confirmaccount-notify": "Saa sähköposti-ilmoituksia uusista hyväksytyistä tunnuspyynnöistä", "action-requestips": "nähdä hakijan IP-osoitteita käyttäjätunnuksia käsitellessä", "right-requestips": "Nähdä hakijan IP-osoitteet käyttäjätunnuksia käsiteltäessä", "action-lookupcredentials": "nähdä käyttäjän kirjautumistietoja", diff --git a/i18n/core/fr.json b/i18n/core/fr.json index e0367876..eaba4a22 100644 --- a/i18n/core/fr.json +++ b/i18n/core/fr.json @@ -16,17 +16,18 @@ "Seb35", "Sherbrooke", "Urhixidur", + "Verdy p", "Wladek92", "Zetud" ] }, - "confirmaccount-newrequests": "Il y a actuellement '''$1''' [[Special:ConfirmAccounts|demande{{PLURAL:$1||s}} de compte]] en cours. '''Votre attention est nécessaire !'''", + "confirmaccount-newrequests": "'''$1''' [[Special:ConfirmAccounts|demande{{PLURAL:$1||s}} ouverte{{PLURAL:$1||s}} de confirmation de compte par courriel]] {{PLURAL:$1|es|son}}t en attente. '''Votre attention est nécessaire !'''", "requestaccount-loginnotice": "Pour obtenir un compte utilisateur, vous devez en faire '''[[Special:RequestAccount|la demande]]'''.", - "action-confirmaccount": "vérifier et accepter les comptes", + "action-confirmaccount": "passer en revue et accepter des comptes", "right-confirmaccount": "Voir la [[Special:ConfirmAccounts|file des demandes de compte]]", "right-confirmaccount-notify": "Être notifié par courriel des demandes de compte nouvellement approuvées", "action-requestips": "voir les adresses IP des demandeurs lors du traitement des demandes de nouveau compte", "right-requestips": "Voir les adresses IP des demandeurs lors du traitement des demandes de nouveau compte", - "action-lookupcredentials": "voir les identifiants des utilisateurs", - "right-lookupcredentials": "Voir les [[Special:UserCredentials|références des utilisateurs]]" + "action-lookupcredentials": "voir les identifiants d’accès des utilisateurs", + "right-lookupcredentials": "Voir les [[Special:UserCredentials|identifiants d’accès des utilisateurs]]" } diff --git a/i18n/core/gl.json b/i18n/core/gl.json index 43da77e3..243a2b45 100644 --- a/i18n/core/gl.json +++ b/i18n/core/gl.json @@ -8,10 +8,13 @@ "Xosé" ] }, - "confirmaccount-newrequests": "Actualmente hai '''$1''' [[Special:ConfirmAccounts|{{PLURAL:$1|solicitude de conta pendente|solicitudes de contas pendentes}}]]. '''Cómpre a súa atención!'''", - "requestaccount-loginnotice": "Para obter unha conta de usuario ten que '''[[Special:RequestAccount|solicitar unha]]'''.", + "confirmaccount-newrequests": "Actualmente hai '''$1''' [[Special:ConfirmAccounts|{{PLURAL:$1|solicitude de conta pendente|solicitudes de contas pendentes}}]] co enderezo de correo electrónico confirmado. '''Cómpre a túa atención!'''", + "requestaccount-loginnotice": "Para obter unha conta de usuario, tes que '''[[Special:RequestAccount|solicitala]]'''.", "action-confirmaccount": "revisar e aceptar contas", "right-confirmaccount": "Ver a [[Special:ConfirmAccounts|cola coas solicitudes de contas]]", - "right-requestips": "Ver os enderezos IP que solicitan contas", + "right-confirmaccount-notify": "Recibir unha notificación por correo electrónico sobre as solicitudes de contas aprobadas recentemente", + "action-requestips": "ver os enderezos IP que solicitan contas ao procesar as solicitudes de contas", + "right-requestips": "Ver os enderezos IP que solicitan contas ao procesar as solicitudes de contas", + "action-lookupcredentials": "ver as credenciais de usuario", "right-lookupcredentials": "Ver as [[Special:UserCredentials|credenciais de usuario]]" } diff --git a/i18n/core/he.json b/i18n/core/he.json index a24af31f..21307f16 100644 --- a/i18n/core/he.json +++ b/i18n/core/he.json @@ -9,10 +9,11 @@ "YaronSh" ] }, - "confirmaccount-newrequests": "יש {{PLURAL:$1|[[Special:ConfirmAccounts|בקשה פתוחה ממתינה '''אחת''' לפתוח חשבון]], עם כתובת דואר אלקטרוני מאושרת שממתינה|'''$1''' [[Special:ConfirmAccounts|בקשות פתוחות לפתוח חשבונות]], עם כתובות דואר אלקטרוני מאושרות שממתינות}} לאישור. '''תשומת לבך נדרשת!'''", + "confirmaccount-newrequests": "יש {{PLURAL:$1|[[Special:ConfirmAccounts|בקשה פתוחה ממתינה '''אחת''' לפתוח חשבון]], עם כתובת דואר אלקטרוני מאושרת שממתינה|'''$1''' [[Special:ConfirmAccounts|בקשות פתוחות לפתוח חשבונות]], עם כתובות דואר אלקטרוני מאושרות שממתינות}} לאישור. '''תשומת ליבך נדרשת!'''", "requestaccount-loginnotice": "כדי לקבל חשבון משתמש, עליכם '''[[Special:RequestAccount|לבקש אחד כזה]]'''.", "action-confirmaccount": "לסקור ולאשר חשבונות", "right-confirmaccount": "צפייה ב[[Special:ConfirmAccounts|תור של החשבונות המבוקשים]]", + "right-confirmaccount-notify": "קבלת הודעה בדוא\"ל על בקשות חשבון שאושרו לאחרונה", "action-requestips": "לצפות בכתובות ה־IP של המבקשים בזמן עיבוד בקשות לפתיחת חשבון", "right-requestips": "צפייה בכתובות ה־IP של המבקשים בזמן עיבוד בקשות לפתיחת חשבון", "action-lookupcredentials": "לצפות בהסמכות", diff --git a/i18n/core/ia.json b/i18n/core/ia.json index f903a5d8..9de458fe 100644 --- a/i18n/core/ia.json +++ b/i18n/core/ia.json @@ -8,6 +8,9 @@ "requestaccount-loginnotice": "Pro obtener un conto de usator, tu debe '''[[Special:RequestAccount|requestar un]]'''.", "action-confirmaccount": "revider e acceptar contos", "right-confirmaccount": "Vider le [[Special:ConfirmAccounts|cauda con requestas de conto]]", + "right-confirmaccount-notify": "Esser notificate per e-mail sur le requestas de conto recentemente approbate", + "action-requestips": "vider le adresses IP del requestatores durante le tractamento de requestas de conto", "right-requestips": "Vider le adresses IP del requestatores durante le tractamento de requestas de conto", + "action-lookupcredentials": "vider credentiales de usatores", "right-lookupcredentials": "Vider le [[Special:UserCredentials|credentiales de usatores]]" } diff --git a/i18n/core/ja.json b/i18n/core/ja.json index 88af2ace..4faebd25 100644 --- a/i18n/core/ja.json +++ b/i18n/core/ja.json @@ -7,6 +7,7 @@ "Otokoume", "Schu", "Shirayuki", + "春春眠眠", "青子守歌" ] }, @@ -14,6 +15,7 @@ "requestaccount-loginnotice": "利用者アカウントを取得するには、'''[[Special:RequestAccount|アカウント登録申請]]'''をしてください。", "action-confirmaccount": "アカウントの確認および承諾", "right-confirmaccount": "[[Special:ConfirmAccounts|アカウント申請キュー]]を閲覧", + "right-confirmaccount-notify": "新しく承認されたアカウントリクエストについてメールで通知を受ける", "action-requestips": "アカウント申請の処理中の、申請者のIPアドレスの閲覧", "right-requestips": "アカウント申請の処理中に申請者のIPアドレスを閲覧", "action-lookupcredentials": "利用者信頼情報の閲覧", diff --git a/i18n/core/ko.json b/i18n/core/ko.json index 9e3aa4c9..f6c9de54 100644 --- a/i18n/core/ko.json +++ b/i18n/core/ko.json @@ -2,6 +2,7 @@ "@metadata": { "authors": [ "Revi", + "Ykhwong", "아라" ] }, @@ -9,6 +10,9 @@ "requestaccount-loginnotice": "사용자 계정을 등록하려면 '''[[Special:RequestAccount|계정을 요청]]'''해야 합니다.", "action-confirmaccount": "계정 검토하고 승인하기", "right-confirmaccount": "[[Special:ConfirmAccounts|요청한 계정 대기열]] 보기", + "right-confirmaccount-notify": "새로 승인된 계정 요청에 대해 이메일을 통해 알림을 받습니다", + "action-requestips": "요청된 계정을 처리하는 동안 요청자의 IP 주소를 볼", "right-requestips": "요청한 계정을 처리하는 동안 요청자의 IP 주소 보기", + "action-lookupcredentials": "사용자 자격 증명을 볼", "right-lookupcredentials": "[[Special:UserCredentials|사용자 자격 증명]] 보기" } diff --git a/i18n/core/lb.json b/i18n/core/lb.json index 2dcea121..d647e43d 100644 --- a/i18n/core/lb.json +++ b/i18n/core/lb.json @@ -2,12 +2,13 @@ "@metadata": { "authors": [ "Les Meloures", - "Robby" + "Robby", + "Volvox" ] }, "confirmaccount-newrequests": "'''$1''' open, per E-Mail confirméiert, [[Special:ConfirmAccounts|account {{PLURAL:$1|Ufro|Ufroen}}]] déi drop {{PLURAL:$1|waart|waarden}} beäntwert ze ginn. '''Är Mataarbecht gëtt gebraucht!'''", "requestaccount-loginnotice": "Fir e Benotzerkont ze kréien, musst Dir '''[[Special:RequestAccount|een ufroen]]'''.", "right-confirmaccount": "D'[[Special:ConfirmAccounts|Queue mat den ugefrote Benotzerkonte]] kucken", "right-requestips": "D'IP-Adress vun där d'Ufro koum uweise wann d'Ufro fir e Benotzerkont verschafft gëtt", - "right-lookupcredentials": "[[Special:UserCredentials|Referenze vun de Benotzer]] kucken" + "right-lookupcredentials": "[[Special:UserCredentials|Umeldungsinformatioune vu Benotzer]] kucken" } diff --git a/i18n/core/lt.json b/i18n/core/lt.json index 68b978ca..58092750 100644 --- a/i18n/core/lt.json +++ b/i18n/core/lt.json @@ -1,11 +1,16 @@ { "@metadata": { "authors": [ - "Eitvys200" + "Eitvys200", + "Nokeoo" ] }, "requestaccount-loginnotice": "Kad gautumėte vartotojo paskyrą, privalote '''[[Special:RequestAccount|pateikti prašymą]]'''.", "action-confirmaccount": "peržiūrėti ir patvirtinti paskyras", "right-confirmaccount": "Žiūrėti [[Special:ConfirmAccounts|eilę su prašomomis paskyromis]]", - "right-requestips": "Žiūrėti prašytojo IP adresą, tvarkant prašomas paskyras" + "right-confirmaccount-notify": "Gauti pranešimą el. paštu apie naujai patvirtintas paskyrų užklausas", + "action-requestips": "peržiūrėti užklausos teikėjo IP adresus apdorojant prašomas paskyras", + "right-requestips": "Žiūrėti prašytojo IP adresą, tvarkant prašomas paskyras", + "action-lookupcredentials": "peržiūrėti naudotojo kredencialus", + "right-lookupcredentials": "Peržiūrėti [[Special:UserCredentials|naudotojo kredencialus]]" } diff --git a/i18n/core/nb.json b/i18n/core/nb.json index dc60ae2c..9e81a6f8 100644 --- a/i18n/core/nb.json +++ b/i18n/core/nb.json @@ -12,7 +12,7 @@ "requestaccount-loginnotice": "For å få en brukerkonto må du '''[[Special:RequestAccount|etterspørre en]]'''.", "action-confirmaccount": "gå gjennom og godkjenne kontoer", "right-confirmaccount": "Vis [[Special:ConfirmAccounts|køen av kontosøknader]]", - "right-confirmaccount-notify": "Bli varslet via epost om nylig godkjente kontoforespørsler", + "right-confirmaccount-notify": "Få varsel e-post om nylig godkjente kontoforespørsler", "action-requestips": "vise IP-adressen til de som ber om konto", "right-requestips": "Vis søkerenes IP-adresser mens man behandler kontosøknadene", "action-lookupcredentials": "vise brukerdetaljer", diff --git a/i18n/core/nl.json b/i18n/core/nl.json index 1ae470f8..18144f93 100644 --- a/i18n/core/nl.json +++ b/i18n/core/nl.json @@ -4,14 +4,16 @@ "Annabel", "Esketti", "Mainframe98", + "McDutchie", "SPQRobin", "Siebrand" ] }, "confirmaccount-newrequests": "Er staa{{PLURAL:$1|t|n}} '''$1''' gebruikersaanvraag[[Special:ConfirmAccounts|gebruikersaanvra{{PLURAL:$1|ag|gen}}]] open. '''Uw aandacht is nodig!'''", "requestaccount-loginnotice": "Om een gebruiker te krijgen, moet u '''[[Special:RequestAccount|een aanvraag doen]]'''.", - "action-confirmaccount": "lees en accepteer accounts", + "action-confirmaccount": "accounts te bekijken en te accepteren", "right-confirmaccount": "[[Special:ConfirmAccounts|Wachtrij met gebruikersaanvragen]] bekijken", + "right-confirmaccount-notify": "Via e-mail bericht over pas goedgekeurde accountverzoeken ontvangen", "action-requestips": "de IP-adressen van aanvragers te bekijken bij het verwerken bij het verwerken van gebruikersaanvragen", "right-requestips": "De IP-adressen van aanvragers bekijken bij het verwerken bij het verwerken van gebruikersaanvragen", "action-lookupcredentials": "gebruikersreferenties te bekijken", diff --git a/i18n/core/pt-br.json b/i18n/core/pt-br.json index f60f7d32..b65a1c83 100644 --- a/i18n/core/pt-br.json +++ b/i18n/core/pt-br.json @@ -2,6 +2,7 @@ "@metadata": { "authors": [ "!Silent", + "555", "Eduardo Addad de Oliveira", "Eduardo.mps", "Eduardoaddad", @@ -9,8 +10,7 @@ "Helder.wiki", "Jaideraf", "Jhonnatanricardo", - "Luckas Blade", - 555 + "Luckas Blade" ] }, "confirmaccount-newrequests": "Há, neste momento, '''$1''' [[Special:ConfirmAccounts|{{PLURAL:$1|solicitação|solicitações}} pendentes de contas]]. '''Sua atenção é necessária!''", diff --git a/i18n/core/sh-latn.json b/i18n/core/sh-latn.json new file mode 100644 index 00000000..31fa4f76 --- /dev/null +++ b/i18n/core/sh-latn.json @@ -0,0 +1,14 @@ +{ + "@metadata": { + "authors": [ + "Winston Sung" + ] + }, + "confirmaccount-newrequests": "'''$1''' [[Special:ConfirmAccounts|{{PLURAL:$1|otvoren zahtjev o računu je|otvorenih zahtjeva o računu su}}]] na čekanju. '''Potrebna je vaša pozornost!'''", + "requestaccount-loginnotice": "Da biste dobili korisnički račun, morate '''[[Special:RequestAccount|unesti zahtijev]]'''.", + "action-confirmaccount": "pregled i prihvatanje račune", + "right-confirmaccount-notify": "Primanje obavijesti putem e-pošte o novoodobrenim zahtjevima za račun", + "action-requestips": "pregledavanje IP adresa zahtijevatelja pri radu zahtjevanjh računa", + "right-requestips": "Pregledavanje IP adresa zahtijevatelja pri radu zahtjevanjh računa", + "action-lookupcredentials": "pregledavanje korisničkih ovlaštenja" +} diff --git a/i18n/core/sh.json b/i18n/core/sh.json deleted file mode 100644 index 6255c7be..00000000 --- a/i18n/core/sh.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Vlad5250" - ] - }, - "requestaccount-loginnotice": "Da biste dobili korisnički račun, morate '''[[Special:RequestAccount|unesti zahtijev]]'''.", - "action-confirmaccount": "pregled i prihvatanje račune", - "action-requestips": "pregledavanje IP adresa zahtijevatelja pri radu zahtjevanjh računa", - "action-lookupcredentials": "pregledavanje korisničkih ovlaštenja" -} diff --git a/i18n/core/sl.json b/i18n/core/sl.json new file mode 100644 index 00000000..86674fc9 --- /dev/null +++ b/i18n/core/sl.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "Eleassar" + ] + }, + "confirmaccount-newrequests": "Na pregled {{PLURAL:$1|čaka|čakata|čakajo|čaka}} '''$1''' {{PLURAL:$1|odprt zahtevek|odprta zahtevka|odprti zahtevki|odprtih zahtevkov}} za [[Special:ConfirmAccounts|račun]]. '''Potrebna je vaša pozornost!'''", + "requestaccount-loginnotice": "Če želite pridobiti uporabniški račun, morate '''[[Special:RequestAccount|zaprositi zanj]]'''.", + "action-confirmaccount": "pregledovanje in sprejemanje računov", + "right-confirmaccount": "Ogledovanje [[Special:ConfirmAccounts|vrste s prošnjami za račun]]", + "right-confirmaccount-notify": "Prejemanje obvestil po e-poštni o novih odobrenih prošnjah za račun", + "action-requestips": "ogledovanje IP-naslovov prosilcev pri obdelavi prošenj za račun", + "right-requestips": "Ogledovanje IP-naslovov prosilcev pri obdelavi prošenj za račun", + "action-lookupcredentials": "ogledovanje uporabniških poverilnic", + "right-lookupcredentials": "Ogledovanje [[Special:UserCredentials|uporabniških poverilnic]]" +} diff --git a/i18n/core/stq.json b/i18n/core/stq.json deleted file mode 100644 index c23ec4b4..00000000 --- a/i18n/core/stq.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Pyt" - ] - }, - "confirmaccount-newrequests": "'''$1''' {{PLURAL:$1|[[Special:ConfirmAccounts|eepenen, E-Mail bestäätigden Benutserkontenandraach täift]]|[[Special:ConfirmAccounts|eepene, E-Mail bestäätigde Benutserkontenandraage täiwe]]}} ap Beoarbaidenge.", - "requestaccount-loginnotice": "Uum n näi Benutserkonto tou kriegen, moast du\nder uum '''[[{{ns:special}}:RequestAccount|fräigje]]'''." -} diff --git a/i18n/core/sv.json b/i18n/core/sv.json index 6c0eff44..592221bb 100644 --- a/i18n/core/sv.json +++ b/i18n/core/sv.json @@ -10,6 +10,7 @@ "M.M.S.", "Najami", "Per", + "Stefan2255", "WikiPhoenix" ] }, @@ -17,6 +18,8 @@ "requestaccount-loginnotice": "För att få ett användarkonto måste du '''[[Special:RequestAccount|ansöka om det]]'''.", "action-confirmaccount": "granska och godkänna konton", "right-confirmaccount": "Visa [[Special:ConfirmAccounts|kön av kontoansökningar]]", + "right-confirmaccount-notify": "Få meddelanden via e-post om nyligen godkända kontoförfrågningar", + "action-requestips": "Visa sökandens IP-adresser vid behandling av kontoansökningar", "right-requestips": "Visa sökandens IP-adress vid behandling av kontoansökningar", "action-lookupcredentials": "visa inloggningsuppgifter för användare", "right-lookupcredentials": "Visa [[Special:UserCredentials|användaruppgifter]]" diff --git a/i18n/core/te.json b/i18n/core/te.json index 4d27d4e6..402b596b 100644 --- a/i18n/core/te.json +++ b/i18n/core/te.json @@ -8,5 +8,12 @@ ] }, "confirmaccount-newrequests": "ప్రస్తుతం, '''$1''' ఈమెయిలు నిర్ధారించబడిన [[Special:ConfirmAccounts|ఖాతా {{PLURAL:$1|అభ్యర్ధన వేచి ఉంది|అభ్యర్ధనలు వేచి ఉన్నాయి}}]].'''మీరు చర్య తీసుకోవాల్సి ఉంది!'''", - "requestaccount-loginnotice": "ఖాతా పొందడానికి, మీరు తప్పనిసరిగా '''[[Special:RequestAccount|అభ్యర్థించాలి]]'''." + "requestaccount-loginnotice": "ఖాతా పొందడానికి, మీరు తప్పనిసరిగా '''[[Special:RequestAccount|అభ్యర్థించాలి]]'''.", + "action-confirmaccount": "ఖాతాలను సమీక్షించి, అంగీకరించే", + "right-confirmaccount": "[[Special:ConfirmAccounts|అభ్యర్థించిన ఖాతాల క్యూ]] చూడడం", + "right-confirmaccount-notify": "కొత్తగా ఆమోదించిన ఖాతా అభ్యర్థనల గురించి ఈమెయిలు గమనింపు పొందడం", + "action-requestips": "ఖాతా అభ్యర్థనలను ప్రాసెస్ చేసేటపుడు అభ్యర్థి ఐపీ చిరునామాను చూసే", + "right-requestips": "ఖాతా అభ్యర్థనలను ప్రాసెస్ చేసేటపుడు అభ్యర్థి ఐపీ చిరునామాను చూడడం", + "action-lookupcredentials": "వాడుకరి అర్హతలను చూసే", + "right-lookupcredentials": "[[Special:UserCredentials|వాడుకరి అర్హతలను]] చూడడం" } diff --git a/i18n/core/uk.json b/i18n/core/uk.json index aba682dc..39e46626 100644 --- a/i18n/core/uk.json +++ b/i18n/core/uk.json @@ -2,6 +2,8 @@ "@metadata": { "authors": [ "Base", + "DDPAT", + "Ice bulldog", "Movses", "Piramidion", "Vlad5250", @@ -12,7 +14,7 @@ "requestaccount-loginnotice": "Для отримання облікового запису користувача, ви повинні \"'[[Special:RequestAccount|зробити запит]]\"'.", "action-confirmaccount": "перегляд і прийняття облікових записів", "right-confirmaccount": "Перегляд [[Special:ConfirmAccounts|черги запитів на створення облікових записів]]", - "right-confirmaccount-notify": "Отримувати емейли щодо схвалених запитів облікових записів", + "right-confirmaccount-notify": "Отримувати ел. пошти щодо схвалених запитів облікових записів", "action-requestips": "перегляд IP-адрес авторів запитів на створення облікових записів", "right-requestips": "Перегляд IP-адрес авторів запитів на створення облікових записів", "action-lookupcredentials": "перегляд облікових даних користувача", diff --git a/i18n/core/yue.json b/i18n/core/yue-hant.json similarity index 79% rename from i18n/core/yue.json rename to i18n/core/yue-hant.json index cbf39878..597f9036 100644 --- a/i18n/core/yue.json +++ b/i18n/core/yue-hant.json @@ -1,6 +1,8 @@ { "@metadata": { - "authors": [] + "authors": [ + "Winston Sung" + ] }, "requestaccount-loginnotice": "要拎一個用戶戶口,你一定要'''[[Special:RequestAccount|請求一個]]'''。" } diff --git a/i18n/core/zh-hans.json b/i18n/core/zh-hans.json index fd347492..03def642 100644 --- a/i18n/core/zh-hans.json +++ b/i18n/core/zh-hans.json @@ -2,21 +2,29 @@ "@metadata": { "authors": [ "Chenxiaoqino", + "CrownedWharf566", + "Diskdance", "Hydra", "Kuailong", + "Lakejason0", + "LittlePaw365", "Liuxinyu970226", "Mark85296341", + "Shizhao", + "Tranve", "Wilsonmess", + "Xyb", "Yfdyh000", "佛壁灯" ] }, - "confirmaccount-newrequests": "'''$1'''个打开的已确认电子邮件的[[Special:ConfirmAccounts|帐户请求处于挂起状态]]。'''需要您的关注!'''", - "requestaccount-loginnotice": "要取得一个用户账户,您必须'''[[Special:RequestAccount|请求一个]]'''。", - "action-confirmaccount": "复查并同意账户", - "right-confirmaccount": "查看[[Special:ConfirmAccounts|请求帐户的队列]]", - "action-requestips": "在处理帐户请求时查看请求者的IP地址", - "right-requestips": "在处理帐户请求时查看请求者的IP地址", + "confirmaccount-newrequests": "'''$1'''个打开的已确认电子邮件的[[Special:ConfirmAccounts|账号{{PLURAL:$1|请求处于挂起状态}}]]。'''需要您的关注!'''", + "requestaccount-loginnotice": "要获取一个用户账号,您必须'''[[Special:RequestAccount|请求一个]]'''。", + "action-confirmaccount": "复查并同意账号", + "right-confirmaccount": "查看[[Special:ConfirmAccounts|请求账号的队列]]", + "right-confirmaccount-notify": "通过电子邮件接收新批准的账号申请的通知", + "action-requestips": "在处理账户请求时查看请求者的IP地址", + "right-requestips": "在处理账户请求时查看请求者的IP地址", "action-lookupcredentials": "查看用户凭证", "right-lookupcredentials": "查看[[Special:UserCredentials|用户凭据]]" } diff --git a/i18n/requestaccount/af.json b/i18n/requestaccount/af.json index 8ace60d4..0fb18a9b 100644 --- a/i18n/requestaccount/af.json +++ b/i18n/requestaccount/af.json @@ -3,6 +3,7 @@ "authors": [ "Arnobarnard", "Naudefj", + "Rooiratel", "SPQRobin" ] }, @@ -16,6 +17,7 @@ "requestaccount-level-0": "outeur", "requestaccount-level-1": "redakteur", "requestaccount-notes": "Addisionele notas:", + "requestaccount-agree": "Jy moet sertifiseer dat jou regte naam korrek is en dat jy instem tot ons diensvoorwaardes.", "requestaccount-submit": "Versoek gebruikersrekening", "requestaccount-email-subj-admin": "{{SITENAME}} gebruikersversoeke" } diff --git a/i18n/requestaccount/ar.json b/i18n/requestaccount/ar.json index 54a2f941..f1c385f7 100644 --- a/i18n/requestaccount/ar.json +++ b/i18n/requestaccount/ar.json @@ -24,7 +24,8 @@ "requestaccount-ext-text": "المعلومات التالية سرية وسيتم استخدامها فقط لهذا الطلب.\nربما تريد أن تكتب معلومات الاتصال كرقم تليفون للمساعدة في تأكيد الهوية.", "requestaccount-bio-text": "حاول تضمين أي شهادات متعلقة في سيرتك الذاتية بالأسفل.", "requestaccount-bio-text-i": "''' سيتم تعيين السيرة الذاتية الخاصة بك كمحتوى مبدئي لصفحة المستخدم الخاصة بك.''' رجاء الانتباه إلى أنك لا تمانع من نشر معلومات من هذا القبيل.", - "requestaccount-real": "الاسم الحقيقي:", + "requestaccount-real": "الاسم الحقيقي (اختياري):", + "requestaccount-real-i": "الاسم الحقيقي اختياري. إذا اخترتَ تقديمه، فسيتم استخدامه لإسناد عملك إليك.", "requestaccount-same": "(مثل الاسم الحقيقي)", "requestaccount-email": "عنوان البريد الإلكتروني:", "requestaccount-reqtype": "الموضع:", diff --git a/i18n/requestaccount/ary.json b/i18n/requestaccount/ary.json new file mode 100644 index 00000000..e90f4812 --- /dev/null +++ b/i18n/requestaccount/ary.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Ideophagous" + ] + }, + "requestaccount-inuse": "السمية د لخدايمي ديجا مخدمة ف طلب د كونط باقي معلّق." +} diff --git a/i18n/requestaccount/arz.json b/i18n/requestaccount/arz.json index f8f1d88f..40b354d1 100644 --- a/i18n/requestaccount/arz.json +++ b/i18n/requestaccount/arz.json @@ -2,7 +2,8 @@ "@metadata": { "authors": [ "Macofe", - "Meno25" + "Meno25", + "محمد أحمد عبد الفتاح" ] }, "requestaccount": "طلب حساب", @@ -14,11 +15,11 @@ "requestaccount-leg-person": "المعلومات الشخصية", "requestaccount-leg-other": "معلومات أخرى", "requestaccount-leg-tos": "شروط الخدمة", - "requestaccount-acc-text": "سيتم إرسال رسالة تأكيد إلى عنوان بريدك الإلكترونى متى تم بعث هذا الطلب.\nمن فضلك استجب عن طريق الضغط على وصلة التأكيد المعطاة فى البريد الإلكترونى.\nأيضا، كلمة السر الخاصة بك سيتم إرسالها إليك عبر البريد الإلكترونى عندما يتم إنشاء حسابك.", + "requestaccount-acc-text": "ستُرسل رسالة تأكيد إلى عنوان بريدك الإلكترونى متى بُعث هذا الطلب.\nمن فضلك استجب عن طريق الضغط على وصلة التأكيد المعطاة فى البريد الإلكترونى.\nأيضا، كلمة السر الخاصة بك ستُرسل إليك عبر البريد الإلكترونى عند إنشاء حسابك.", "requestaccount-areas-text": "اختر المواضيع بالأسفل التى لديك فيها خبرة رسمية أو التى تود أن تعمل فيها.", "requestaccount-ext-text": "المعلومات التالية سرية وسيتم استخدامها فقط لهذا الطلب.\nربما تريد أن تكتب معلومات الاتصال كرقم تليفون للمساعدة فى تأكيد الهوية.", "requestaccount-bio-text": "سيرتك الشخصية ستعرض كالمحتوى الافتراضى لصفحة المستخدم الخاصة بك.\nحاول تضمين أية شهادات.", - "requestaccount-real": "الاسم الحقيقي:", + "requestaccount-real": "الاسم الحقيقي (اختياري):", "requestaccount-same": "(مثل الاسم الحقيقي)", "requestaccount-email": "عنوان البريد الإلكتروني:", "requestaccount-reqtype": "الموضع:", diff --git a/i18n/requestaccount/ast.json b/i18n/requestaccount/ast.json index b08befbf..97fd7f9f 100644 --- a/i18n/requestaccount/ast.json +++ b/i18n/requestaccount/ast.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "Fitoschido", "Macofe", "Xuacu" ] @@ -22,7 +23,7 @@ "requestaccount-bio-text-i": "'''La so biografía quedará configurada como'l conteníu inicial de la so páxina d'usuariu.'''\nAsegúrese de que nun tien problema en publicar esa información.", "requestaccount-real": "Nome real:", "requestaccount-same": "(el mesmu que'l nome real d'abaxo)", - "requestaccount-email": "Direición de corréu electrónicu:", + "requestaccount-email": "Señes electróniques:", "requestaccount-reqtype": "Cargu:", "requestaccount-level-0": "autor", "requestaccount-level-1": "editor", diff --git a/i18n/requestaccount/ba.json b/i18n/requestaccount/ba.json index 7fe05f7e..5a9cf4d2 100644 --- a/i18n/requestaccount/ba.json +++ b/i18n/requestaccount/ba.json @@ -2,11 +2,12 @@ "@metadata": { "authors": [ "Айсар", + "З. ӘЙЛЕ", "Ләйсән" ] }, "requestaccount-reqtype": "Вазифа", "requestaccount-level-0": "автор", "requestaccount-level-1": "мөхәррир", - "requestaccount-sent": "Һеҙҙең аккаунт тикшерелеү өҫтөндә. Раҫлау хаты һеҙҙең электрон адресҡа ебәрелде." + "requestaccount-sent": "Иҫәп яҙмаһын алыу үтенесе тикшерелә. Электрон почтағыҙға хәбәр ебәрелде." } diff --git a/i18n/requestaccount/be-tarask.json b/i18n/requestaccount/be-tarask.json index 5fda651d..61247cbb 100644 --- a/i18n/requestaccount/be-tarask.json +++ b/i18n/requestaccount/be-tarask.json @@ -5,6 +5,7 @@ "Jim-by", "Macofe", "Red Winged Duck", + "Ucukor", "Wizardist", "Zedlik" ] @@ -45,7 +46,7 @@ "requestaccount-sent": "Ваш запыт на стварэньне рахунку быў дасланы і цяпер чакае апрацоўкі.\nЭлектронны ліст з пацьверджаньнем быў дасланы на Ваш адрас электроннай пошты.", "requestaccount-econf": "Ваш адрас электроннай пошты быў пацьверджаны і будзе пазначаны ў Вашым запыце на стварэньне рахунку.", "requestaccount-email-subj": "Пацьверджаньне адрасу электроннай пошты {{GRAMMAR:MS.lp|{{SITENAME}}}}", - "requestaccount-email-body": "Нехта, верагодна Вы, з IP-адрасу $1, запытаў стварэньне рахунку «$2» у {{GRAMMAR:месны|{{SITENAME}}}} з гэтым адрасам электроннай пошты.\n\nКаб пацьвердзіць, што гэты рахунак у {{GRAMMAR:месны|{{SITENAME}}}} сапраўды належыць Вам, адкрыйце гэтую спасылку ў Вашым браўзэры:\n\n$3\n\nКалі рахунак будзе створаны, пароль будзе дасланы толькі Вам.\nКалі гэта *не* Вы, не адкрывайце спасылку.\nГэты код пацьверджаньня будзе дзейнічаць да $4.", + "requestaccount-email-body": "Нехта, магчыма Вы, з IP-адрасу $1, запытаў стварэньне рахунку «$2» у {{GRAMMAR:месны|{{SITENAME}}}} з гэтым адрасам электроннай пошты.\n\nКаб пацьвердзіць, што гэты рахунак у {{GRAMMAR:месны|{{SITENAME}}}} сапраўды належыць Вам, адкрыйце гэтую спасылку ў браўзэры:\n\n$3\n\nКалі рахунак будзе створаны, пароль будзе дасланы толькі Вам.\nКалі гэта *не* Вы, не адкрывайце спасылку.\nГэты код пацьверджаньня будзе дзейнічаць да $4.", "requestaccount-email-subj-admin": "Запыт на стварэньне рахунку ў {{GRAMMAR:месны|{{SITENAME}}}}", "requestaccount-email-body-admin": "$1 запытаў стварэньне рахунку і чакае пацьверджаньня.\nАдрас электроннай пошты быў пацьверджаны. Вы можаце пацьвердзіць запыт тут:\n\n$2", "acct_request_throttle_hit": "Прабачце, але Вы ўжо запыталі стварэньне рахунку $1 {{PLURAL:$1|раз|разы|разоў}}.\nВы больш ня можаце рабіць новыя запыты." diff --git a/i18n/requestaccount/bg.json b/i18n/requestaccount/bg.json index ac84a6fd..2fb86eac 100644 --- a/i18n/requestaccount/bg.json +++ b/i18n/requestaccount/bg.json @@ -23,7 +23,7 @@ "requestaccount-ext-text": "Следната информация се счита за поверителна и не се публикува; тя ще бъде използвана само за тази заявка.\nПрепоръчително е да посочите контакти, напр. телефонен номер или друга информация, която ще помогне удостоверяване на самоличността.", "requestaccount-bio-text": "Опитайте се да добавите съответните идентификационни данни в биографията си по-долу.", "requestaccount-bio-text-i": "'''Биографията Ви ще бъде поставена като първоначално съдържание на потребителската Ви страница.'''\nУверете се, че нямате проблем с публикуването на такава информация.", - "requestaccount-real": "Име и фамилия:", + "requestaccount-real": "Истинско име (незадължително):", "requestaccount-same": "(съвпада с името по-долу)", "requestaccount-email": "Електронна поща:", "requestaccount-reqtype": "Длъжност:", diff --git a/i18n/requestaccount/bjn.json b/i18n/requestaccount/bjn.json new file mode 100644 index 00000000..93c4e48d --- /dev/null +++ b/i18n/requestaccount/bjn.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Ezagren" + ] + }, + "requestaccount-agree": "Pian musti maiihakan amun ngaran asli Pian sudah bujur wan pian hakun haja lawan Syarat layanan kami." +} diff --git a/i18n/requestaccount/bn.json b/i18n/requestaccount/bn.json index f02bbfa2..5b0840a7 100644 --- a/i18n/requestaccount/bn.json +++ b/i18n/requestaccount/bn.json @@ -15,7 +15,7 @@ "requestaccount-leg-areas": "আগ্রহের মূল ক্ষেত্র", "requestaccount-leg-person": "ব্যক্তিগত তথ্য", "requestaccount-leg-other": "অন্যান্য তথ্য", - "requestaccount-real": "প্রকৃত নাম:", + "requestaccount-real": "প্রকৃত নাম (ঐচ্ছিক):", "requestaccount-same": "(প্রকৃত নামের মত)", "requestaccount-email": "ইমেইল ঠিকানা:", "requestaccount-reqtype": "পদ:", diff --git a/i18n/requestaccount/br.json b/i18n/requestaccount/br.json index 8d4fb965..202e15b4 100644 --- a/i18n/requestaccount/br.json +++ b/i18n/requestaccount/br.json @@ -3,6 +3,7 @@ "authors": [ "Fohanno", "Fulup", + "Huñvreüs", "Macofe", "Y-M D" ] @@ -22,7 +23,7 @@ "requestaccount-ext-text": "Prevez e chomo an titour da-heul ha n'hallo bezañ implijet nemet evit ar reked-mañ.\nGallout a rit rollañ darempredoù evel an niverennoù pellgomz evit kaout un tamm skoazell da gadarnaat piv oc'h.", "requestaccount-bio-text": "Klaskit merkañ tammoù testenioù talvoudus diwar-benn ho puhezskrid amañ dindan.", "requestaccount-bio-text-i": "'''Lakaet e vo ho tamm buhezskrid da vezañ an danvez pennañ evit ho pajenn implijer.'''\nBezit sur eo mat deoc'h embann seurt titouroù.", - "requestaccount-real": "Anv gwir :", + "requestaccount-real": "Anv gwir (diret) :", "requestaccount-same": "(heñvel ou zh ar gwir anv)", "requestaccount-email": "Chomlec'h postel :", "requestaccount-reqtype": "Lec'hiadur :", @@ -40,7 +41,7 @@ "requestaccount-resub": "Ret eo deo'h addibab ho CV evit abegoù surentez. Mar ne fell ket deoc'h lakaat anezhañ ken, lezit goullo ar vaezienn-mañ.", "requestaccount-tos": "Lennet em eus [[{{MediaWiki:Requestaccount-page}}|reolennoù implijout]] {{SITENAME}} hag asantiñ a ran doujañ outo.\nDa vat eo ma anv gwir an hini am eus merket dindan \"Anv gwir\".", "requestaccount-submit": "Goulenn ur gont implijer", - "requestaccount-sent": "Kaset eo bet ervat ho koulenn krouiñ ur gont implijer; lakaet eo bet e roll gortoz ar goulennoù da vezañ aprouet.\nUr postel kadarnaat zo bet kaset d'ho chomlec'h postel.", + "requestaccount-sent": "Kaset eo bet ho koulenn krouiñ ur gont implijer; lakaet eo bet e roll gortoz ar goulennoù da vezañ aprouet.\n\tUr postel kadarnaat zo bet kaset d'ho chomlec'h postel.", "requestaccount-econf": "Kadarnaet eo bet ho chomlec'h postel ha meneget e vo evel m'emañ en ho koulenn kont.", "requestaccount-email-subj": "Kadarnadenn chomlec'h postel evit {{SITENAME}}", "requestaccount-email-body": "Unan bennak, c'hwi moarvat, gant ar chomlec'h IP $1, en deus goulennet sevel ur gont \"$2\" gant ar chomlec'h postel-mañ war {{SITENAME}}.\n\nEvit kadarnaat eo deoc'h ar gont-se war {{SITENAME}} e gwirionez, digorit al liamm-mañ en ho merdeer :\n\n$3\n\nMard eo bet krouet ar gont e vo kaset ar ger-tremen dre bostel deoc'h hepken\nMa n'eo ket gwir, *arabat* deoc'h implijout al liamm.\nMont a raio ar c'hod gwiriañ-mañ d'e dermen d'an $4.", diff --git a/i18n/requestaccount/ca.json b/i18n/requestaccount/ca.json index 6cb96939..f2e2712f 100644 --- a/i18n/requestaccount/ca.json +++ b/i18n/requestaccount/ca.json @@ -7,7 +7,8 @@ "Loupeter", "Paucabot", "SMP", - "Solde" + "Solde", + "Yupik" ] }, "requestaccount": "Sol·licita un compte", @@ -16,7 +17,7 @@ "requestaccount-leg-person": "Informació personal", "requestaccount-leg-other": "Altres informacions", "requestaccount-leg-tos": "Condicions d'ús", - "requestaccount-real": "Nom real:", + "requestaccount-real": "Nom real (opcional):", "requestaccount-same": "(el mateix que el nom real)", "requestaccount-email": "Adreça electrònica:", "requestaccount-reqtype": "Posició:", diff --git a/i18n/requestaccount/ce.json b/i18n/requestaccount/ce.json index 9f1d0038..0bf58318 100644 --- a/i18n/requestaccount/ce.json +++ b/i18n/requestaccount/ce.json @@ -4,5 +4,6 @@ "Умар" ] }, - "requestaccount-level-1": "редактор" + "requestaccount-level-1": "редактор", + "requestaccount-submit": "Аккаунт йехар" } diff --git a/i18n/requestaccount/cs.json b/i18n/requestaccount/cs.json index b54cff4a..cd3550e8 100644 --- a/i18n/requestaccount/cs.json +++ b/i18n/requestaccount/cs.json @@ -7,10 +7,12 @@ "Matěj Grabovský", "Matěj Suchánek", "Mormegil", - "MrJaroslavik" + "MrJaroslavik", + "Slepi" ] }, "requestaccount": "Vyžádat účet", + "requestaccount-login": "Požádat o účet", "requestaccount-page": "{{ns:project}}:Podmínky použití", "requestaccount-dup": "'''Poznámka: Už jste přihlášen jako registrovaný uživatel.'''", "requestaccount-leg-user": "Uživatelský účet", diff --git a/i18n/requestaccount/de-formal.json b/i18n/requestaccount/de-formal.json deleted file mode 100644 index edcf5559..00000000 --- a/i18n/requestaccount/de-formal.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Geitost", - "Imre", - "Kghbln", - "Macofe", - "The Evil IP address", - "Umherirrender" - ] - }, - "requestaccount-text": "'''Füllen Sie das folgende Formular aus und schicken Sie es ab, um für dieses Wiki ein Benutzerkonto zu beantragen.'''\n\nBitte lesen Sie zunächst die [[{{MediaWiki:Requestaccount-page}}|Nutzungsbedingungen]], bevor Sie ein Benutzerkonto beantragen.\n\nSobald das Konto bestätigt wurde, werden Sie per E-Mail benachrichtigt. Danach können Sie sich [[Special:UserLogin|anmelden]].", - "requestaccount-dup": "'''Achtung: Sie sind bereits mit einem registrierten Benutzerkonto angemeldet.'''", - "requestaccount-acc-text": "An Ihre E-Mail-Adresse wird nach dem Absenden dieses Formulars eine Bestätigungsmail geschickt.\nBitte reagieren Sie darauf, indem Sie auf den in dieser Mail enthaltenen Bestätigungslink klicken.\nSobald Ihr Konto angelegt wurde, wird Ihnen Ihr Passwort per E-Mail zugeschickt.", - "requestaccount-areas-text": "Wählen Sie die Themengebiete aus, in denen Sie das meiste Fachwissen haben oder wo Sie am meisten involviert sein werden.", - "requestaccount-ext-text": "Die folgenden Informationen werden vertraulich behandelt und ausschließlich für diesen Antrag verwendet.\nSie können Kontaktangaben wie eine Telefonnummer machen, um die Bearbeitung Ihres Antrags zu vereinfachen.", - "requestaccount-bio-text": "Versuchen Sie alle relevanten Informationen in Ihre untenstehende Biografie aufzunehmen.", - "requestaccount-bio-text-i": "'''Ihre Biografie wird als die erste Version Ihrer Benutzerseite veröffentlicht.'''\nSie müssen daher auch tatsächlich mit der Veröffentlichung dieser Daten einverstanden sein.", - "requestaccount-agree": "Sie müssen bestätigen, dass Ihr bürgerlicher Name korrekt ist und Sie die Nutzungsbedingungen akzeptieren.", - "requestaccount-tooshort": "Ihre Biographie muss mindestens {{PLURAL:$1|1 Wort|$1 Wörter}} lang sein.", - "requestaccount-resub": "Die Datei mit Ihrem Lebenslauf muss aus Sicherheitsgründen neu ausgewählt werden.\nLassen Sie das Feld leer, wenn Sie keinen Lebenslauf mehr anfügen möchten.", - "requestaccount-sent": "Ihr Antrag wurde erfolgreich verschickt und muss nun noch überprüft werden.\nEine Bestätigungs-E-Mail wurde an Ihre E-Mail-Adresse gesendet.", - "requestaccount-econf": "Ihre E-Mail-Adresse wurde bestätigt und wird nun als solche in Ihrem Antrag auf ein Benutzerkonto geführt.", - "requestaccount-email-body": "Jemand, möglicherweise Sie mit der IP-Adresse $1, hat bei {{SITENAME}} das Benutzerkonto „$2“ mit Ihrer E-Mail-Adresse beantragt.\n\nUm zu bestätigen, dass wirklich Sie dieses Konto bei {{SITENAME}} beantragt haben, öffnen Sie bitte folgenden Link in Ihrem Browser:\n\n$3\n\nWenn das Benutzerkonto erstellt wurde, bekommen Sie eine weitere E-Mail mit dem Passwort.\n\nWenn Sie das Benutzerkonto *nicht* beantragt haben, öffnen Sie den Link bitte nicht!\n\nDieser Bestätigungscode wird am $5 um $6 Uhr ungültig.", - "requestaccount-email-body-admin": "$1 hat ein Benutzerkonto beantragt und wartet auf Bestätigung.\nDie E-Mail-Adresse wurde bestätigt. Sie können den Antrag hier bestätigen:\n\n$2", - "acct_request_throttle_hit": "Sie haben bereits {{PLURAL:$1|1 Benutzerkonto|$1 Benutzerkonten}} beantragt, Sie können momentan keine weiteren beantragen." -} diff --git a/i18n/requestaccount/de.json b/i18n/requestaccount/de.json index a9e9e545..e6633eec 100644 --- a/i18n/requestaccount/de.json +++ b/i18n/requestaccount/de.json @@ -18,20 +18,21 @@ }, "requestaccount": "Benutzerkonto beantragen", "requestaccount-login": "Benutzerkonto beantragen", - "requestaccount-text": "'''Fülle das folgende Formular aus und schick es ab, um für dieses Wiki ein Benutzerkonto zu beantragen.'''\n\nBitte lies zunächst die [[{{MediaWiki:Requestaccount-page}}|Nutzungsbedingungen]], bevor du ein Benutzerkonto beantragst.\n\nSobald das Konto bestätigt wurde, wirst du per E-Mail benachrichtigt. Danach kannst du dich [[Special:UserLogin|anmelden]].", + "requestaccount-text": "'''{{#FORMAL:Fülle|Füllen Sie}} das folgende Formular aus und {{#FORMAL:schick|schicken Sie}} es ab, um für dieses Wiki ein Benutzerkonto zu beantragen.'''\n \nBitte {{#FORMAL:lies|lesen Sie}} zunächst die [[{{MediaWiki:Requestaccount-page}}|Nutzungsbedingungen]], bevor {{#FORMAL:du|Sie}} ein Benutzerkonto {{#FORMAL:beantragst|beantragen}}.\n \nSobald das Konto bestätigt wurde, {{#FORMAL:wirst du|werden Sie}} per E-Mail benachrichtigt. Danach {{#FORMAL:kannst du dich|können Sie sich}} [[Special:UserLogin|anmelden]].", "requestaccount-page": "{{ns:project}}:Nutzungsbedingungen", - "requestaccount-dup": "'''Achtung: Du bist bereits mit einem registrierten Benutzerkonto angemeldet.'''", + "requestaccount-dup": "'''Achtung: {{#FORMAL:Du bist|Sie sind}} bereits mit einem registrierten Benutzerkonto angemeldet.'''", "requestaccount-leg-user": "Benutzerkonto", "requestaccount-leg-areas": "Hauptinteressensgebiete", "requestaccount-leg-person": "Persönliche Informationen", "requestaccount-leg-other": "Weitere Informationen", "requestaccount-leg-tos": "Nutzungsbedingungen", - "requestaccount-acc-text": "Wenn du diese Anfrage ausführst, wird dir einmal eine Bestätigungsnachricht an deine E-Mail-Adresse gesandt. Die Adresse wird nicht veröffentlicht.\nBitte reagiere darauf, indem du auf den in dieser Mail enthaltenen Bestätigungslink klickst.\nZum Schluss wird dir dein Passwort per E-Mail zugeschickt, sobald dein Konto angelegt wurde.", - "requestaccount-areas-text": "Wähle die Themengebiete aus, in denen du das meiste Fachwissen hast oder wo du am meisten involviert sein wirst.", - "requestaccount-ext-text": "Die folgenden Informationen werden vertraulich behandelt und ausschließlich für diesen Antrag verwendet.\nDu kannst Kontakt-Angaben wie eine Telefonnummer machen, um die Bearbeitung deines Antrags zu vereinfachen.", - "requestaccount-bio-text": "Versuche alle relevanten Informationen in deine untenstehende Biografie aufzunehmen.", - "requestaccount-bio-text-i": "'''Deine Biografie wird als die erste Version deiner Benutzerseite veröffentlicht.'''\nDu musst daher auch tatsächlich mit der Veröffentlichung dieser Daten einverstanden sein.", - "requestaccount-real": "Bürgerlicher Name:", + "requestaccount-acc-text": "Wenn {{#FORMAL:du|Sie}} diese Anfrage {{#FORMAL:ausführst|ausführen}}, wird {{#FORMAL:dir|Ihnen}} einmal eine Bestätigungsnachricht an {{#FORMAL:deine|Ihre}} E-Mail-Adresse gesandt. Die Adresse wird nicht veröffentlicht.\nBitte {{#FORMAL:reagiere|reagieren Sie}} darauf, indem {{#FORMAL:du|Sie}} auf den in dieser Mail enthaltenen Bestätigungslink {{#FORMAL:klickst|klicken}}.\nZum Schluss wird {{#FORMAL:dir dein|Ihnen Ihr}} Passwort per E-Mail zugeschickt, sobald {{#FORMAL:dein|Ihr}} Konto angelegt wurde.", + "requestaccount-areas-text": "{{#FORMAL:Wähle|Wählen Sie}} die Themengebiete aus, in denen {{#FORMAL:du|Sie}} das meiste Fachwissen {{#FORMAL:hast|haben}} oder wo {{#FORMAL:du|Sie}} am meisten involviert sein {{#FORMAL:wirst|werden}}.", + "requestaccount-ext-text": "Die folgenden Informationen werden vertraulich behandelt und ausschließlich für diesen Antrag verwendet.\n{{#FORMAL:Du kannst Kontakt-Angaben|Sie können Kontaktangaben}} wie eine Telefonnummer machen, um die Bearbeitung {{#FORMAL:deines|Ihres}} Antrags zu vereinfachen.", + "requestaccount-bio-text": "{{#FORMAL:Versuche|Versuchen Sie}} alle relevanten Informationen in {{#FORMAL:deine|Ihre}} untenstehende Biografie aufzunehmen.", + "requestaccount-bio-text-i": "'''{{#FORMAL:Deine|Ihre}} Biografie wird als die erste Version {{#FORMAL:deiner|Ihrer}} Benutzerseite veröffentlicht.'''\n{{#FORMAL:Du musst|Sie müssen}} daher auch tatsächlich mit der Veröffentlichung dieser Daten einverstanden sein.", + "requestaccount-real": "Bürgerlicher Name (optional):", + "requestaccount-real-i": "Der echte Name ist optional. Wenn du ihn angibst, wird er für die Zuordnung der Beiträge verwendet.", "requestaccount-same": "(wie mein bürgerlicher Name)", "requestaccount-email": "E-Mail-Adresse:", "requestaccount-reqtype": "Position:", @@ -41,19 +42,19 @@ "requestaccount-attach": "Lebenslauf (optional):", "requestaccount-notes": "Zusätzliche Angaben:", "requestaccount-urls": "Liste von Webseiten (durch Zeilenumbrüche getrennt):", - "requestaccount-agree": "Du musst bestätigen, dass dein bürgerlicher Name korrekt ist und du die Nutzungsbedingungen akzeptierst.", + "requestaccount-agree": "{{#FORMAL:Du musst|Sie müssen}} bestätigen, dass {{#FORMAL:dein|Ihr}} bürgerlicher Name korrekt ist und {{#FORMAL:du|Sie}} die Nutzungsbedingungen {{#FORMAL:akzeptierst|akzeptieren}}.", "requestaccount-inuse": "Der Benutzername ist bereits in einem anderen Benutzerantrag in Verwendung.", - "requestaccount-tooshort": "Deine Biographie muss mindestens {{PLURAL:$1|1 Wort|$1 Wörter}} lang sein.", + "requestaccount-tooshort": "{{#FORMAL:Deine|Ihre}} Biographie muss mindestens {{PLURAL:$1|1 Wort|$1 Wörter}} lang sein.", "requestaccount-emaildup": "Ein weiterer noch nicht erledigter Antrag benutzt die gleiche E-Mail-Adresse.", "requestaccount-exts": "Der Dateityp des Anhangs ist nicht erlaubt.", - "requestaccount-resub": "Die Datei mit deinem Lebenslauf muss aus Sicherheitsgründen neu ausgewählt werden.\nLasse das Feld leer, wenn du keinen Lebenslauf mehr anfügen möchtest.", + "requestaccount-resub": "Die Datei mit {{#FORMAL:deinem|Ihrem}} Lebenslauf muss aus Sicherheitsgründen neu ausgewählt werden.\n{{#FORMAL:Lasse|Lassen Sie}} das Feld leer, wenn {{#FORMAL:du|Sie}} keinen Lebenslauf mehr anfügen {{#FORMAL:möchtest|möchten}}.", "requestaccount-tos": "Ich habe die [[{{MediaWiki:Requestaccount-page}}|Nutzungsbedingungen]] von {{SITENAME}} gelesen und akzeptiere sie.\nIch bestätige, dass der Name, den ich unter „Bürgerlicher Name“ angegeben habe, mein wirklicher Name ist.", "requestaccount-submit": "Benutzerkonto beantragen", - "requestaccount-sent": "Dein Antrag wurde erfolgreich verschickt und muss nun noch überprüft werden.\nEine Bestätigungs-E-Mail wurde an deine E-Mail-Adresse gesendet.", - "requestaccount-econf": "Deine E-Mail-Adresse wurde bestätigt und wird nun als solche in deinem Antrag auf ein Benutzerkonto geführt.", + "requestaccount-sent": "{{#FORMAL:Dein|Ihr}} Antrag wurde erfolgreich verschickt und muss nun noch überprüft werden.\nEine Bestätigungs-E-Mail wurde an {{#FORMAL:deine|Ihre}} E-Mail-Adresse gesendet.", + "requestaccount-econf": "{{#FORMAL:Deine|Ihre}} E-Mail-Adresse wurde bestätigt und wird nun als solche in {{#FORMAL:deinem|Ihrem}} Antrag auf ein Benutzerkonto geführt.", "requestaccount-email-subj": "[{{SITENAME}}] Bestätigung der E-Mail-Adresse", - "requestaccount-email-body": "Jemand, möglicherweise du mit der IP-Adresse $1, hat bei {{SITENAME}} das Benutzerkonto „$2“ mit deiner E-Mail-Adresse beantragt.\n\nUm zu bestätigen, dass wirklich du dieses Konto bei {{SITENAME}} beantragt hast, öffne bitte folgenden Link in deinem Browser:\n\n$3\n\nWenn das Benutzerkonto erstellt wurde, bekommst du eine weitere E-Mail mit dem Passwort.\n\nWenn du das Benutzerkonto *nicht* beantragt hast, öffne den Link bitte nicht!\n\nZeitpunkt des Auslaufs des Bestätigungscodes: $4.", + "requestaccount-email-body": "Jemand, möglicherweise {{#FORMAL:du|Sie}} mit der IP-Adresse $1, hat bei {{SITENAME}} das Benutzerkonto „$2“ mit {{#FORMAL:deiner|Ihrer}} E-Mail-Adresse beantragt.\n \nUm zu bestätigen, dass wirklich {{#FORMAL:du|Sie}} dieses Konto bei {{SITENAME}} beantragt {{#FORMAL:hast|haben}}, {{#FORMAL:öffne|öffnen Sie}} bitte folgenden Link in {{#FORMAL:deinem|Ihrem}} Browser:\n \n$3\n \nWenn das Benutzerkonto erstellt wurde, {{#FORMAL:bekommst du|bekommen Sie}} eine weitere E-Mail mit dem Passwort.\n \nWenn {{#FORMAL:du|Sie}} das Benutzerkonto *nicht* beantragt {{#FORMAL:hast|haben}}, {{#FORMAL:öffne|öffnen Sie}} den Link bitte nicht!\n \nZeitpunkt des Auslaufs des Bestätigungscodes: $4.", "requestaccount-email-subj-admin": "[{{SITENAME}}] Antrag auf Benutzerkonto", - "requestaccount-email-body-admin": "$1 hat ein Benutzerkonto beantragt und wartet auf die Bestätigung.\nDie E-Mail-Adresse wurde bestätigt. Du kannst den Antrag hier bestätigen:\n\n$2", - "acct_request_throttle_hit": "Du hast bereits {{PLURAL:$1|1 Benutzerkonto|$1 Benutzerkonten}} beantragt, du kannst momentan keine weiteren beantragen." + "requestaccount-email-body-admin": "$1 hat ein Benutzerkonto beantragt und wartet auf die Bestätigung.\nDie E-Mail-Adresse wurde bestätigt. {{#FORMAL:Du kannst|Sie können}} den Antrag hier bestätigen:\n\n$2", + "acct_request_throttle_hit": "{{#FORMAL:Du hast|Sie haben}} bereits {{PLURAL:$1|1 Benutzerkonto|$1 Benutzerkonten}} beantragt, {{#FORMAL:du kannst|Sie können}} momentan keine weiteren beantragen." } diff --git a/i18n/requestaccount/el.json b/i18n/requestaccount/el.json index b38ea4d7..249c2669 100644 --- a/i18n/requestaccount/el.json +++ b/i18n/requestaccount/el.json @@ -4,6 +4,7 @@ "Consta", "Crazymadlover", "Egmontaz", + "Giannaras99", "NikosLikomitros", "Nikosgranturismogt", "Omnipaedista", @@ -27,7 +28,7 @@ "requestaccount-reqtype": "Θέση:", "requestaccount-level-0": "δημιουργός", "requestaccount-level-1": "συντάκτης", - "requestaccount-bio": "Προσωπική βιογραφία:", + "requestaccount-bio": "Προσωπική βιογραφία (μόνο απλό κείμενο):", "requestaccount-attach": "Βιογραφικό (προαιρετικό):", "requestaccount-notes": "Συμπληρωματικές σημειώσεις:", "requestaccount-tooshort": "Το βιογραφικό σας θα πρέπει να είναι τουλάχιστον $1 {{PLURAL:$1|λέξη|λέξεις}}", diff --git a/i18n/requestaccount/en.json b/i18n/requestaccount/en.json index 1c272bda..c8cb8473 100644 --- a/i18n/requestaccount/en.json +++ b/i18n/requestaccount/en.json @@ -19,7 +19,8 @@ "requestaccount-ext-text": "The following information is kept private and will only be used for this request.\nYou may want to list contacts such a phone number to aid in identify confirmation.", "requestaccount-bio-text": "Try to include any relevant credentials in your biography below.", "requestaccount-bio-text-i": "'''Your biography will be set as the initial content for your userpage.'''\nMake sure you are comfortable publishing such information.", - "requestaccount-real": "Real name:", + "requestaccount-real": "Real name (optional):", + "requestaccount-real-i": "Real name is optional. If you choose to provide it, this will be used for giving you attribution for your work.", "requestaccount-same": "(same as real name below)", "requestaccount-email": "Email address:", "requestaccount-reqtype": "Position:", diff --git a/i18n/requestaccount/es.json b/i18n/requestaccount/es.json index 7fae2876..6412b1ca 100644 --- a/i18n/requestaccount/es.json +++ b/i18n/requestaccount/es.json @@ -14,7 +14,8 @@ "Matiia", "Pertile", "Sanbec", - "Translationista" + "Translationista", + "Yupik" ] }, "requestaccount": "Solicitar cuenta", @@ -32,7 +33,7 @@ "requestaccount-ext-text": "La siguiente información se mantiene privada y sólo será usada para esta solicitud.\nPuede listar contactos como un número de teléfono para ayudar en la confirmación de la identidad.", "requestaccount-bio-text": "Trata de incluir alguna credencial relevante en tu biografía abajo.", "requestaccount-bio-text-i": "'''Su biografía se establecerá como el contenido inicial de tu página de usuario.'''\nAsegúrate de estar cómodo con la publicación de dicha información.", - "requestaccount-real": "Nombre real:", + "requestaccount-real": "Nombre real (opcional):", "requestaccount-same": "(igual que el nombre real de abajo)", "requestaccount-email": "Dirección de correo electrónico:", "requestaccount-reqtype": "Posición:", diff --git a/i18n/requestaccount/et.json b/i18n/requestaccount/et.json index d78d08e5..04bb77f4 100644 --- a/i18n/requestaccount/et.json +++ b/i18n/requestaccount/et.json @@ -9,13 +9,12 @@ "requestaccount-leg-areas": "Põhilised huvivaldkonnad", "requestaccount-leg-person": "Personaalne informatsioon", "requestaccount-leg-other": "Muu informatsioon", - "requestaccount-real": "Tegelik nimi:", + "requestaccount-real": "Tegelik nimi (valikuline):", "requestaccount-same": "(sama mis tegelik nimi)", "requestaccount-email": "E-posti aadress:", "requestaccount-reqtype": "Positsioon:", "requestaccount-level-0": "autor", "requestaccount-level-1": "toimetaja", - "requestaccount-info": "(?)", "requestaccount-bio": "Isiku biograafia (vaid lihttekst):", "requestaccount-attach": "Elulugu või CV (valikuline):", "requestaccount-notes": "Lisainfo:" diff --git a/i18n/requestaccount/ext.json b/i18n/requestaccount/ext.json deleted file mode 100644 index 3e5e96b0..00000000 --- a/i18n/requestaccount/ext.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Better" - ] - }, - "requestaccount-real": "Nombri verdaeru:" -} diff --git a/i18n/requestaccount/fa.json b/i18n/requestaccount/fa.json index 9e83cdfb..2076f44e 100644 --- a/i18n/requestaccount/fa.json +++ b/i18n/requestaccount/fa.json @@ -3,22 +3,25 @@ "authors": [ "Alireza", "Armin1392", + "Beginneruser", + "Ebrahim", "Ebraminio", + "Jeeputer", "Mjbmr", "Reza1615" ] }, "requestaccount": "درخواست حساب", "requestaccount-login": "درخواست حساب", - "requestaccount-text": "'''فرم زیر را برای درخواست یک حساب کامل و ارائه کنید.'''\nمطمئن شوید که پیش از درخواست یک حساب،اول [[{{MediaWiki:Requestaccount-page}}|Terms of Service]] را می‌خوانید.\nهنگامی که حساب تأیید شد، به شما یک پیغام اعلان ایمیل خواهد شد و حساب در [[Special:UserLogin|login]] قابل استفاده خواهد بود.", + "requestaccount-text": "'''فرم زیر را برای درخواست یک حساب کاربری کامل و ارسال کنید.'''\nمطمئن شوید که پیش از درخواست یک حساب،اول [[{{MediaWiki:Requestaccount-page}}|شرایط خدمات]] را می‌خوانید.\nهنگامی که حساب تأیید شد، به شما یک پیام آگاه‌سازی ایمیل خواهد شد و حساب در [[Special:UserLogin|login]] قابل استفاده خواهد بود.", "requestaccount-page": "{{ns:project}}: شرایط استفاده از خدمات", - "requestaccount-dup": "'''توجه: پیش از این شما با یک حساب ثبت‌نام شده وارد شده‌اید.", + "requestaccount-dup": "'''توجه: شما از قبل با این حسابی که ثبت نام کردید وارد شدید.'''", "requestaccount-leg-user": "حساب کاربری", "requestaccount-leg-areas": "زمینه‌های مورد‌علاقهٔ اصلی", "requestaccount-leg-person": "اطلاعات شخصی", "requestaccount-leg-other": "اطلاعات دیگر", "requestaccount-leg-tos": "شرایط خدمات", - "requestaccount-acc-text": "هنگامی که شما این درخواست را ارائه می‌کنید، یک پیغام تأییدیه به آدرس ایمیل شما فرستاده خواهد شد.\nآدرس منتشر نخواهد شد.\nلطفاً با کلیک کردن بر روی پیوند تأیید ارائه شده توسط ایمیل، پاسخ دهید.\nدر نهایت، هنگامی که حساب شما ایجاد شد، رمز عبورتان به شما ایمیل خواهد شد.", + "requestaccount-acc-text": "هنگامی که شما این درخواست را ارائه می‌کنید، یک پیام تأییدیه به آدرس ایمیل شما فرستاده خواهد شد.\nآدرس منتشر نخواهد شد.\nلطفاً با کلیک کردن بر روی پیوند تأیید ارائه شده توسط ایمیل، پاسخ دهید.\nدر نهایت، هنگامی که حساب شما ایجاد شد، رمز عبورتان به شما ایمیل خواهد شد.", "requestaccount-areas-text": " از زیرحیطه‌های موضوعی را انتخاب کنید که مهارت شما در آن به رسمیت شناخته شده یا می‌خواهید در آن بیشتر کار کنید.", "requestaccount-ext-text": "اطلاعات زیر به صورت محرمانه نگهداری شده و فقط برای این درخواست استفاده خواهد‌شد.\nممکن است شما بخواهید تماس‌هایی را مانند یک شماره تلفن برای کمک به شناسایی اطلاعات، فهرست کنید.", "requestaccount-bio-text": "برای شامل کردن هر اعتبارنامهٔ مطابق با شرح‌حال‌تان در زیر امتحان کنید.", @@ -34,18 +37,18 @@ "requestaccount-notes": "یادداشت‌های اضافی:", "requestaccount-urls": "فهرست وب سایت ها، اگر هرگونه (هرکدام بر روی یک خط مجزا)", "requestaccount-agree": "شما باید نام واقعی خود را که درست است، و اینکه شما با شرایط سرویس ما موافقید را تأیید کنید.", - "requestaccount-inuse": "در حال حاضر نام کاربری در یک درخواست حساب در حال انتظار مورد استفاده است.", + "requestaccount-inuse": "نام کاربری از قبل در یک درخواست حساب در حال انتظار استفاده شده است.", "requestaccount-tooshort": "شرح‌حال شما باید دارای حداقل طول $1 {{PLURAL:$1|word|words}} باشد.", "requestaccount-emaildup": "درخواست حساب در حال انتظار دیگری از آدرس ایمیل مشابهی استفاده می‌کند.", "requestaccount-exts": "نوع پوشهٔ‌ پیوست مجاز نیست.", "requestaccount-resub": "پوشهٔ سی‌وی/رزومه شما به دلایل امنیتی باید دوباره انتخاب شود.\nاگر دیگر نمی‌خواهید یکی را شامل کنید، زمینه را خالی رها کنید.", "requestaccount-tos": "من خوانده‌ام و می‌پذیرم که توسط [[{{MediaWiki:Requestaccount-page}}|Terms of Service]] از {{SITENAME}} متحمل شوم.\nنامی را که تحت \"نام واقعی\" تعیین کرده‌ام،در حقیقت نام واقعی خود من است.", "requestaccount-submit": "درخواست حساب", - "requestaccount-sent": "درخواست حساب شما با موفقیت فرستاده شد و اکنون در حال انتظار بررسی است.\nیک ایمیل تأیید به آدرس ایمیل شما فرستاده شده است.", + "requestaccount-sent": "درخواست حساب شما فرستاده شد و اکنون در صف بررسی است.\n\tیک ایمیل تأیید به نشانی ایمیل شما فرستاده شده است.", "requestaccount-econf": "آدرس ایمیل شما تأیید شده است و به این‌ صورت در درخواست حسابتان فهرست خواهد شد.", "requestaccount-email-subj": "تأیید نشانی ایمیل {{SITENAME}}", - "requestaccount-email-body": "کسی که ممکن خود شما باشید از آدرس آی‌پی $1، درخواست حساب «$2» با این آدرس ایمیل در {{SITENAME}} داده است.\n\nبرای تأیید اینکه این حساب درحقیقت به شما در {{SITENAME}} تعلق دارد، این پیوند را در مرورگر خود باز کنید:\n\n$3\n\nاگر حساب ایجاد شده باشد، گذرواژه فقط به شما ایمیل خواهد شد.\nاگر به شما تعلق ندارد، پیوند را باز نکنید.\nاین کد تأییدیه در $4 منقضی خواهد شد.", + "requestaccount-email-body": "یک نفر، احتمالاً شما، از آدرس آی‌پی $1، درخواست یک حساب «$2» با این آدرس ایمیل در {{SITENAME}} کرده است.\n\nبرای تأیید اینکه این حساب در {{SITENAME}} واقعاً متعلق به شماست، این پیوند را در مرورگر خود باز کنید:\n\n$3\n\nاگر حساب ایجاد شود، رمز عبور فقط به شما ایمیل خواهد شد.\nاگر به شما تعلق ندارد، پیوند را باز نکنید.\nاین کد تأییدیه در $4 منقضی خواهد شد.", "requestaccount-email-subj-admin": "درخواست حساب {{SITENAME}}", - "requestaccount-email-body-admin": "«$1» یک حساب درخواست کرده‌است و برای تأییدیه در حال انتظار است.\nاین آدرس ایمیل تأیید شده است. شما می‌توانید درخواست را اینجا «$2» تأیید کنید.", - "acct_request_throttle_hit": "با عرض پوزش، در حال حبضر شما {{PLURAL:$1|1 account|$1 accounts}} را درخواست کرده‌اید.\nشما نمی‌توانید بیش از این درخواست داشته باشید." + "requestaccount-email-body-admin": "$1 یک حساب درخواست کرده است و در انتظار تأیید است.\nاین نشانی ایمیل تأیید شده است. می‌توانید درخواست را اینجا تأیید کنید:\n\n$2", + "acct_request_throttle_hit": "با عرض پوزش، شما از قبل {{PLURAL:$1|1 حساب|$1 حساب}} را درخواست داده‌اید.\nشما نمی‌توانید بیشتر از این درخواست کنید." } diff --git a/i18n/requestaccount/fi.json b/i18n/requestaccount/fi.json index 0f952138..764efe6d 100644 --- a/i18n/requestaccount/fi.json +++ b/i18n/requestaccount/fi.json @@ -12,10 +12,12 @@ "Nike", "Pxos", "Pyscowicz", + "Samoasambia", "Str4nd", "Taleman", "Valtlait", - "Varusmies" + "Varusmies", + "Yupik" ] }, "requestaccount": "Pyydä käyttäjätunnusta", @@ -32,7 +34,7 @@ "requestaccount-areas-text": "Valitse alta alueet, joissa olet asiantuntija tai joiden parissa haluaisit enimmäkseen työskennellä.", "requestaccount-ext-text": "Seuraavat tiedot pidetään luottamuksellisina ja niitä käytetään vain tämän pyynnön käsittelyssä.\nHaluat ehkä antaa tunnistamista helpottavia yhteystietoja, puhelinnumeron esimerkiksi.", "requestaccount-bio-text": "Yritä kirjoittaa kaikki olennaiset tiedot itsestäsi omaelämäkertaasi eli kuvaukseesi itsestäsi.", - "requestaccount-real": "Oikea nimi:", + "requestaccount-real": "Oikea nimi (vapaaehtoinen tieto):", "requestaccount-same": "(sama kuin oikea nimi)", "requestaccount-email": "Sähköpostiosoite:", "requestaccount-reqtype": "Asema:", @@ -47,7 +49,7 @@ "requestaccount-tooshort": "Kuvauksesi pituuden on oltava vähintään $1 {{PLURAL:$1|sana|sanaa}}.", "requestaccount-emaildup": "Samaa sähköpostiosoitetta on käytetty toisessa parhailaan käsiteltävänä olevassa käyttäjätunnuspyynnössä.", "requestaccount-exts": "Liitetiedosto ei ole sallittua tyyppiä.", - "requestaccount-resub": "Tietoturvasyistä antamasi ansioluettelo/CV-tiedosto on valittava uudestaan.\nJätä kenttä tyhjäksi, jos et enää halua liittää tiedostoa.", + "requestaccount-resub": "Tietoturvasyistä antamasi ansioluettelo/CV-tiedosto on valittava uudelleen.\nJätä kenttä tyhjäksi, jos et enää halua liittää tiedostoa.", "requestaccount-tos": "Olen lukenut ja hyväksyn {{GRAMMAR:genitive|{{SITENAME}}}} [[{{MediaWiki:Requestaccount-page}}|käyttöehdot]].\nKohdasssa ''Oikea nimi'' olen antanut oman virallisen nimeni.", "requestaccount-submit": "Pyydä käyttäjätunnusta", "requestaccount-sent": "Käyttäjätunnuspyyntösi on lähetetty onnistuneesti ja odottaa nyt käsittelyä.\n\tVahvistusviesti on lähetetty sähköpostiosoitteeseesi.", diff --git a/i18n/requestaccount/fr.json b/i18n/requestaccount/fr.json index 2a0f0ca7..7079e1aa 100644 --- a/i18n/requestaccount/fr.json +++ b/i18n/requestaccount/fr.json @@ -3,6 +3,7 @@ "authors": [ "Crochet.david", "Dereckson", + "Derugon", "Gomoko", "Grondin", "Hercule", @@ -13,49 +14,52 @@ "Peter17", "PieRRoMaN", "Sherbrooke", + "Thibaut120094", "Urhixidur", "Verdy p", + "Wladek92", "Zetud" ] }, "requestaccount": "Demande de compte d’utilisateur", "requestaccount-login": "Demander un compte", - "requestaccount-text": "'''Remplissez et envoyez le formulaire ci-dessous pour demander un compte d’utilisateur'''. \n\t\nAssurez-vous d'avoir lu [[{{MediaWiki:Requestaccount-page}}|les conditions d’utilisation]] avant de faire votre demande de compte.\n\t\nUne fois que le compte est accepté, vous recevrez un courriel de notification et votre compte pourra être utilisé sur [[Special:UserLogin|la page de connexion]].", + "requestaccount-text": "'''Remplissez et envoyez le formulaire ci-dessous pour demander un compte d’utilisateur'''. \n\t\nAssurez-vous d'avoir lu [[{{MediaWiki:Requestaccount-page}}|les conditions d’utilisation]] avant de faire votre demande de compte.\n\t\nUne fois le compte approuvé, vous recevrez un courriel de notification et votre compte sera utilisable sur [[Special:UserLogin|la page de connexion]].", "requestaccount-page": "{{ns:project}}:Conditions d'utilisation", - "requestaccount-dup": "'''Note : Vous êtes déjà sur une session avec un compte enregistré.'''", - "requestaccount-leg-user": "Compte utilisateur", - "requestaccount-leg-areas": "Centres d'intérêts principaux", + "requestaccount-dup": "'''Note : vous êtes déjà connecté avec un compte enregistré.'''", + "requestaccount-leg-user": "Compte d’utilisateur", + "requestaccount-leg-areas": "Principaux centres d’intérêts", "requestaccount-leg-person": "Informations personnelles", "requestaccount-leg-other": "Autres informations", - "requestaccount-leg-tos": "Conditions d'utilisation", - "requestaccount-acc-text": "Un message de confirmation sera envoyé à votre adresse électronique une fois que cette demande aura été envoyée. L’adresse ne sera pas publiée.\nVeuillez répondre en cliquant sur le lien de confirmation dans le courriel.\nAprès cela, votre mot de passe vous sera envoyé par courriel quand votre compte aura été créé.", + "requestaccount-leg-tos": "Conditions d’utilisation", + "requestaccount-acc-text": "Un message de confirmation sera envoyé à votre adresse de courriel une fois que vous aurez envoyé cette demande. L’adresse ne sera pas publiée.\nVeuillez répondre en cliquant sur le lien de confirmation dans le courriel.\nFinalement, votre mot de passe vous sera envoyé par courriel une fois votre compte créé.", "requestaccount-areas-text": "Choisissez les domaines dans lesquels vous avez une expertise démontrée, ou dans lesquels vous êtes enclin à contribuer le plus.", - "requestaccount-ext-text": "L’information suivante reste privée et ne pourra être utilisée que pour cette requête. \n\tVous avez la possibilité de lister des contacts tels qu’un numéro de téléphone pour obtenir une assistance pour confirmer votre identité.", - "requestaccount-bio-text": "Essayez d'inclure toute références pertinentes à votre biographie ci-dessous.", - "requestaccount-bio-text-i": "'''Votre biographie servira comme contenu initial de votre page utilisateur.'''\nAssurez-vous d'être à l'aise de publier de telles informations.", - "requestaccount-real": "Nom réel :", - "requestaccount-same": "(nom figurant dans votre état civil)", + "requestaccount-ext-text": "Les informations suivantes restent privées et ne pourront être utilisées que pour cette demande. \nVous avez la possibilité de lister des contacts tels qu’un numéro de téléphone qui pourra aider à confirmer votre identité.", + "requestaccount-bio-text": "Essayez d’inclure toute référence pertinente dans votre biographie ci-dessous.", + "requestaccount-bio-text-i": "'''Votre biographie servira comme contenu initial de votre page utilisateur.'''\nAssurez-vous d’être à l’aise pour publier de telles informations.", + "requestaccount-real": "Vrai nom (facultatif) :", + "requestaccount-real-i": "Votre vrai nom est facultatif. Si vous choisissez de le fournir, il sera utilisé pour vous attribuer votre travail.", + "requestaccount-same": "(identique au nom de votre état civil ci-dessous)", "requestaccount-email": "Adresse de courriel :", - "requestaccount-reqtype": "Situation :", + "requestaccount-reqtype": "Situation :", "requestaccount-level-0": "auteur", "requestaccount-level-1": "contributeur", - "requestaccount-bio": "Biographie personnelle (texte brut seulement) :", - "requestaccount-attach": "CV (facultatif) :", - "requestaccount-notes": "Notes supplémentaires :", - "requestaccount-urls": "Liste des sites Web. S'il y en a plusieurs, séparez-les par un saut de ligne :", - "requestaccount-agree": "Vous devez certifier que votre nom réel est correct et que vous acceptez les conditions d’utilisation.", - "requestaccount-inuse": "Le nom d’utilisateur est déjà utilisé dans une requête en cours d’approbation.", - "requestaccount-tooshort": "Votre biographie doit avoir au moins $1 mot{{PLURAL:$1||s}}.", - "requestaccount-emaildup": "Une autre demande en cours utilise la même adresse électronique.", - "requestaccount-exts": "Le type du fichier joint n’est pas permis.", - "requestaccount-resub": "Veuillez sélectionner à nouveau votre curriculum vitæ pour des raisons de sécurité. Si vous ne souhaitez plus inclure celui-ci, laissez ce champ vierge.", - "requestaccount-tos": "J’ai lu et j’accepte les [[{{MediaWiki:Requestaccount-page}}|conditions d’utilisation]] de {{SITENAME}}.\nLe nom que j'ai indiqué à la rubrique « Nom réel » est bien mon nom réel.", + "requestaccount-bio": "Biographie personnelle (texte brut seulement) :", + "requestaccount-attach": "Curriculum vitæ (facultatif) :", + "requestaccount-notes": "Notes supplémentaires :", + "requestaccount-urls": "Liste de sites web (s’il y en a plusieurs, séparez-les par un saut de ligne) :", + "requestaccount-agree": "Vous devez certifier que votre vrai nom est correct et que vous acceptez nos conditions d’utilisation.", + "requestaccount-inuse": "Le nom d’utilisateur est déjà utilisé dans une demande de compte en cours d’approbation.", + "requestaccount-tooshort": "Votre biographie doit comporter au moins $1 mot{{PLURAL:$1||s}}.", + "requestaccount-emaildup": "Une autre demande de compte en cours d’approbation utilise la même adresse de courriel.", + "requestaccount-exts": "Le type du fichier joint n’est pas autorisé.", + "requestaccount-resub": "Votre fichier de curriculum vitæ doit être sélectionné à nouveau pour des raisons de sécurité.\nSi vous ne souhaitez plus inclure celui-ci, laissez ce champ vierge.", + "requestaccount-tos": "J’ai lu et j’accepte les [[{{MediaWiki:Requestaccount-page}}|conditions d’utilisation]] de {{SITENAME}}.\nLe nom que j'ai indiqué à la rubrique « vrai nom » est bien mon vrai nom.", "requestaccount-submit": "Demande de compte d’utilisateur", "requestaccount-sent": "Votre demande de compte utilisateur a été envoyée et est en attente d’approbation.\n\tUn courriel de confirmation a été envoyé à votre adresse de messagerie.", - "requestaccount-econf": "Votre adresse courriel a été confirmée et sera listée telle quelle dans votre demande de compte.", - "requestaccount-email-subj": "Confirmation de l'adresse de courriel pour {{SITENAME}}", - "requestaccount-email-body": "Quelqu’un, probablement vous, a formulé, depuis l’adresse IP $1, une demande de compte utilisateur « $2 » avec cette adresse courriel sur {{SITENAME}}.\n\nPour confirmer que ce compte vous appartient réellement sur {{SITENAME}}, veuillez ouvrir ce lien dans votre navigateur :\n\n$3\n\nVotre mot de passe vous sera envoyé uniquement si votre compte est créé.\nSi tel n’était pas le cas, n’utilisez pas ce lien.\nCe code de confirmation expirera le $4.", + "requestaccount-econf": "Votre adresse de courriel a été confirmée et sera listée telle quelle dans votre demande de compte.", + "requestaccount-email-subj": "Confirmation de l’adresse de courriel pour {{SITENAME}}", + "requestaccount-email-body": "Quelqu’un, probablement vous depuis l’adresse IP $1, a formulé une demande de compte utilisateur « $2 » avec cette adresse courriel sur {{SITENAME}}.\n\nPour confirmer que ce compte vous appartient réellement sur {{SITENAME}}, veuillez ouvrir ce lien dans votre navigateur :\n\n$3\n\nSi votre compte est créé, alors votre mot de passe vous sera envoyé par courriel.\nSi cette demande ne venait *pas* de vous, n’utilisez pas ce lien.\nCe code de confirmation expirera le $4.", "requestaccount-email-subj-admin": "Demande de compte sur {{SITENAME}}", - "requestaccount-email-body-admin": "$1 a demandé un compte et se trouve en attente de confirmation.\nL’adresse courriel a été confirmée. Vous pouvez approuver la demande ici :\n\n$2", + "requestaccount-email-body-admin": "$1 a demandé un compte et se trouve en attente de confirmation.\nL’adresse courriel a été confirmée. Vous pouvez approuver la demande ici :\n\n$2", "acct_request_throttle_hit": "Désolé, vous avez déjà demandé $1 compte{{PLURAL:$1||s}}.\nVous ne pouvez plus faire de demande." } diff --git a/i18n/requestaccount/fy.json b/i18n/requestaccount/fy.json index 5d62243a..2e622365 100644 --- a/i18n/requestaccount/fy.json +++ b/i18n/requestaccount/fy.json @@ -10,5 +10,5 @@ "requestaccount-email": "E-mailadres:", "requestaccount-level-0": "auteur", "requestaccount-level-1": "redakteur", - "requestaccount-email-body": "Immen, nei alle gedachten jo mei it IP-adres $1, hat it akkount \"$2\" op {{GRAMMAR:lidw|{{SITENAME}}}} oanfrege mei dit e-mailadres.\n\nOm te befêstigjen dat dat akkount wier jowes is op {{GRAMMAR:l|{{SITENAME}}}}, iepenje dan dizze\nferwizing yn jo webblêder:\n\n$3\n\nSadree't it akkount oanmakke is, sil allinne oan jo it wachtwurd e-maild wurde.\nAt jo it *net* west hawwe, folgje de ferwizing dan net.\nDe befêstigingskoade ferrint op $4." + "requestaccount-email-body": "Immen, nei alle gedachten jo mei it YP-adres $1, hat it akkount \"$2\" op {{GRAMMAR:lidw|{{SITENAME}}}} oanfrege mei dit e-mailadres.\n\nOm te befêstigjen dat dat akkount wier jowes is op {{GRAMMAR:l|{{SITENAME}}}}, iepenje dan dizze\nferwizing yn jo webblêder:\n\n$3\n\nSadree't it akkount oanmakke is, sil allinne oan jo it wachtwurd e-maild wurde.\nAt jo it *net* west hawwe, folgje de ferwizing dan net.\nDe befêstigingskoade ferrint op $4." } diff --git a/i18n/requestaccount/gl.json b/i18n/requestaccount/gl.json index 5fdd3ae5..84861933 100644 --- a/i18n/requestaccount/gl.json +++ b/i18n/requestaccount/gl.json @@ -10,42 +10,43 @@ }, "requestaccount": "Solicitar unha conta", "requestaccount-login": "Solicitar unha conta", - "requestaccount-text": "'''Complete e envíe o seguinte formulario para solicitar unha conta de usuario.'''\n\nAsegúrese de ler primeiro os [[{{MediaWiki:Requestaccount-page}}|termos de servizo]] antes de solicitar unha conta.\n\nUnha vez aprobada a conta, recibirá unha mensaxe de notificación por correo electrónico e poderá usar a conta [[Special:UserLogin|accedendo ao sistema]].", + "requestaccount-text": "'''Completa e envía o seguinte formulario para solicitar unha conta de usuario.'''\n\nAsegúrate de ler primeiro os [[{{MediaWiki:Requestaccount-page}}|termos de servizo]] antes de solicitar unha conta.\n\nUnha vez aprobada a conta, recibirás unha mensaxe de notificación por correo electrónico e poderás usar a conta [[Special:UserLogin|accedendo ao sistema]].", "requestaccount-page": "{{ns:project}}:Termos de servizo", - "requestaccount-dup": "'''Nota: Xa accedeu ao sistema cunha conta rexistrada.'''", + "requestaccount-dup": "'''Nota: Xa accediches ao sistema cunha conta rexistrada.'''", "requestaccount-leg-user": "Conta de usuario", "requestaccount-leg-areas": "Principais áreas de interese", "requestaccount-leg-person": "Información persoal", "requestaccount-leg-other": "Outra información", "requestaccount-leg-tos": "Termos de servizo", - "requestaccount-acc-text": "Enviaráselle unha mensaxe de confirmación ao seu enderezo de correo electrónico unha vez enviada esta solicitude. O enderezo non será publicado.\nResponda premendo na ligazón de confirmación achegada no correo electrónico.\nFinalmente, enviaráselle o seu contrasinal cando se cree a conta.", + "requestaccount-acc-text": "Recibirás unha mensaxe de confirmación no teu enderezo de correo electrónico unha vez enviada esta solicitude. O enderezo non será publicado.\nResponde premendo na ligazón de confirmación achegada no correo electrónico.\nFinalmente, recibirás o teu contrasinal cando se cree a conta.", "requestaccount-areas-text": "Selecciona embaixo as áreas dos temas dos que es máis experto ou nos que che gostaría traballar máis.", - "requestaccount-ext-text": "A seguinte información mantense en privado e só se usará para esta solicitude.\nTen a posibilidade listar contactos, como un número de teléfono, para axudar na confirmación da identidade.", - "requestaccount-bio-text": "Intente incluír algunhas credenciais relevantes na súa biografía.", - "requestaccount-bio-text-i": "'''A súa biografía quedará establecida como o contido inicial da súa páxina de usuario.'''\nAsegúrese de que se sinte cómodo publicando esa información.", - "requestaccount-real": "Nome real:", + "requestaccount-ext-text": "A seguinte información mantense en privado e só se usará para esta solicitude.\nTes a posibilidade listar contactos, como un número de teléfono, para axudar na confirmación da identidade.", + "requestaccount-bio-text": "Intenta incluír algunhas credenciais relevantes na túa biografía.", + "requestaccount-bio-text-i": "'''A túa biografía quedará establecida como o contido inicial da túa páxina de usuario.'''\nAsegúrate de que te sentes cómodo publicando esa información.", + "requestaccount-real": "Nome real (opcional):", + "requestaccount-real-i": "O nome real é opcional. Se escolles dálo utilizarase para atribuírche o teu traballo.", "requestaccount-same": "(o mesmo que o nome real)", "requestaccount-email": "Enderezo de correo electrónico:", "requestaccount-reqtype": "Posición:", "requestaccount-level-0": "autor", "requestaccount-level-1": "editor", - "requestaccount-bio": "Biografía persoal (só texto):", + "requestaccount-bio": "Biografía persoal (só texto sen formato):", "requestaccount-attach": "Currículo (opcional):", "requestaccount-notes": "Notas adicionais:", "requestaccount-urls": "Lista de sitios web, se houbese algún (un por liña):", - "requestaccount-agree": "Debe certificar que o seu nome real é correcto e que está de acordo cos nosos termos de servizo.", + "requestaccount-agree": "Debes certificar que o teu nome real é correcto e que estás de acordo cos nosos termos de servizo.", "requestaccount-inuse": "Este nome de usuario xa se usou nunha solicitude de conta que aínda está pendente.", - "requestaccount-tooshort": "A súa biografía debe ter un mínimo {{PLURAL:$1|dunha palabra|de $1 palabras}}.", + "requestaccount-tooshort": "A túa biografía debe ter un mínimo {{PLURAL:$1|dunha palabra|de $1 palabras}}.", "requestaccount-emaildup": "Outra solicitude pendente usa o mesmo enderezo de correo electrónico.", "requestaccount-exts": "O tipo de ficheiro do anexo non está permitido.", - "requestaccount-resub": "Ten que volver seleccionar o ficheiro do seu currículo por razóns de seguridade.\nDeixe o campo en branco se xa non o quere incluír.", - "requestaccount-tos": "Lin e acepto os [[{{MediaWiki:Requestaccount-page}}|termos de servizo]] de {{SITENAME}}.\nO nome especificado como \"Nome real\" é, efectivamente, o meu nome real.", + "requestaccount-resub": "Tes que seleccionar de novo o ficheiro do teu currículo por razóns de seguridade.\nDeixa o campo en branco se xa non o queres incluír.", + "requestaccount-tos": "Lin e acepto os [[{{MediaWiki:Requestaccount-page}}|termos de servizo]] de {{SITENAME}}.\nO nome especificado como «Nome real» é, efectivamente, o meu nome real.", "requestaccount-submit": "Solicitar a conta", - "requestaccount-sent": "A súa solicitude de conta foi enviada e agora está á espera de revisión.\nEnvióuselle un correo electrónico de confirmación ao seu enderezo de correo electrónico.", - "requestaccount-econf": "Confirmouse o seu enderezo de correo electrónico e listarase como tal na súa solicitude de conta.", + "requestaccount-sent": "A túa solicitude de conta foi enviada e agora está á espera de revisión.\n\tEnvióuseche un correo electrónico de confirmación ao teu enderezo de correo electrónico.", + "requestaccount-econf": "Confirmouse o teu enderezo de correo electrónico e listarase como tal na túa solicitude de conta.", "requestaccount-email-subj": "Confirmación do enderezo de correo electrónico de {{SITENAME}}", - "requestaccount-email-body": "Alguén, probábelmente ti dende o enderezo IP $1, solicitou unha\nconta \"$2\" con este enderezo de correo electrónico en {{SITENAME}}.\n\nPara confirmar que esta conta che pertence a ti en {{SITENAME}}, abre esta ligazón no teu navegador:\n\n$3\n\nSe creas a conta, só ti recibirás o contrasinal. Se *non* se trata de ti, non sigas a ligazón.\nEste código de confirmación caducará o $4.", + "requestaccount-email-body": "Alguén, probabelmente ti dende o enderezo IP $1, solicitou a conta «$2» con este enderezo de correo electrónico en {{SITENAME}}.\n\nPara confirmar que esta conta che pertence en {{SITENAME}}, abre esta ligazón no teu navegador:\n\n$3\n\nSe creas a conta, só ti recibirás o contrasinal.\nSe *non* se trata de ti, non sigas a ligazón.\nEste código de confirmación caducará o $4.", "requestaccount-email-subj-admin": "Solicitude de conta en {{SITENAME}}", - "requestaccount-email-body-admin": "$1 solicitou unha conta e está pendente de confirmación.\nO enderezo de correo electrónico foi confirmado. Pode confirmar a solicitude aquí: \n\n$2", - "acct_request_throttle_hit": "Sentímolo, xa solicitou {{PLURAL:$1|unha conta|$1 contas}}.\nNon pode facer máis solicitudes." + "requestaccount-email-body-admin": "$1 solicitou unha conta e está pendente de confirmación.\nO enderezo de correo electrónico foi confirmado. Podes confirmar a solicitude aquí:\n\n$2", + "acct_request_throttle_hit": "Sentímolo, xa solicitaches {{PLURAL:$1|unha conta|$1 contas}}.\nNon podes facer máis solicitudes." } diff --git a/i18n/requestaccount/gv.json b/i18n/requestaccount/gv.json index 6272e864..eae6c855 100644 --- a/i18n/requestaccount/gv.json +++ b/i18n/requestaccount/gv.json @@ -4,13 +4,13 @@ "MacTire02" ] }, - "requestaccount-leg-user": "Coontys yn ymmydeyr", - "requestaccount-leg-person": "Oayllys persoonagh", - "requestaccount-leg-other": "Oayllys elley", - "requestaccount-real": "Feer-ennym:", + "requestaccount-leg-user": "Coontys ymmydeyr", + "requestaccount-leg-person": "Fysseree phersoonagh", + "requestaccount-leg-other": "Fysseree elley", + "requestaccount-real": "Feer-ennym (reihyssagh):", "requestaccount-email": "Enmys post-L:", "requestaccount-level-0": "ughtar", "requestaccount-level-1": "reagheyder", - "requestaccount-bio": "Beashnys persoonagh:", + "requestaccount-bio": "Beashnys persoonagh (teks cadjin ny lomarcan):", "requestaccount-notes": "Noteyn elley:" } diff --git a/i18n/requestaccount/he.json b/i18n/requestaccount/he.json index 0c096915..96890d30 100644 --- a/i18n/requestaccount/he.json +++ b/i18n/requestaccount/he.json @@ -19,19 +19,20 @@ "requestaccount-leg-person": "מידע אישי", "requestaccount-leg-other": "מידע אחר", "requestaccount-leg-tos": "תנאי השירות", - "requestaccount-acc-text": "לכתובת הדוא\"ל שלכם תישלח הודעת אישור לאחר שהבקשה תתקבל.\nאנא הגיבו על ידי לחיצה על הקישור לאישור המסופק בהודעת הדוא\"ל.\nכמו כן, הסיסמה שלכם תישלח אליכם בעת יצירת חשבונכם.", - "requestaccount-areas-text": "בחרו את הנושאים שבהם יש לכם מומחיות פורמלית או שבהם אתם עושים את רוב העבודה.", + "requestaccount-acc-text": "לכתובת הדוא\"ל שלף תישלח הודעת אישור לאחר שהבקשה תתקבל.\nנא להגיב על־ידי לחיצה על הקישור לאישור המסופק בהודעת הדוא\"ל.\nכמו־כן, הסיסמה שלך תישלח אליך בעת יצירת חשבונך.", + "requestaccount-areas-text": "נא לבחור את הנושאים שבהם יש לך מומחיות פורמלית או שבהם עשית את רוב העבודה.", "requestaccount-ext-text": "המידע הבא נשמר בפרטיות וישמש עבור בקשה זו בלבד.\nיתכן שתרצו לציין פרטי קשר כגון מספר טלפון כדי לסייע באימות זהותכם.", "requestaccount-bio-text": "נסו לכלול הסמכות רלוונטיות בקורות החיים שלך להלן.", "requestaccount-bio-text-i": "'''הביוגרפיה שלכם תוגדר בתור התוכן ההתחלתי לדף המשתמש שלכם.'''\nנא לוודא שאתם מסכימים לפרסם מידע כזה.", - "requestaccount-real": "שם אמיתי:", + "requestaccount-real": "שם אמיתי (לא חובה):", + "requestaccount-real-i": "לא חובה למלא את השם האמיתי. אם בחרת לספק אותו, זה ישמש כדי לתת לך ייחוס על עבודתך.", "requestaccount-same": "(כמו השם האמיתי)", "requestaccount-email": "כתובת הדוא\"ל:", "requestaccount-reqtype": "משרה:", "requestaccount-level-0": "מחבר", "requestaccount-level-1": "עורך", "requestaccount-bio": "ביוגרפיה אישית (רק טקסט פשוט):", - "requestaccount-attach": "קורות חיים (אופציונאלי):", + "requestaccount-attach": "קורות חיים (לא חובה):", "requestaccount-notes": "הערות נוספות:", "requestaccount-urls": "רשימה של אתרים, אם יש כאלה (הפרידו באמצעות שורות חדשות):", "requestaccount-agree": "עליכם לאמת כי השם שציינתם הוא שמכם האמיתי ושהוא נכון ושאתם מסכימים לתנאי השימוש שלנו.", @@ -40,7 +41,7 @@ "requestaccount-emaildup": "בקשת חשבון ממתינה אחרת משתמשת באותה כתובת דוא\"ל.", "requestaccount-exts": "סוג הקובץ המצורף אינו מורשה.", "requestaccount-resub": "מסיבות של אבטחת מידע יש לבחור מחדש את קובץ קורות החיים שלכם.\nהשאירו את השדה הזה ריק אם אינכם רוצים לכלול כאן קובץ כזה.", - "requestaccount-tos": "קראתי והסכמתי ל[[{{MediaWiki:Requestaccount-page}}|תנאי השימוש]] של {{SITENAME}}.\nהשם שציינתי תחת \"השם האמתי\" הוא באמת שמי האמתי.", + "requestaccount-tos": "קראתי והסכמתי ל[[{{MediaWiki:Requestaccount-page}}|תנאי השימוש]] של {{SITENAME}}.\nהשם שציינתי בשדה \"שם אמיתי\" הוא אכן שמי האמיתי.", "requestaccount-submit": "בקשת חשבון", "requestaccount-sent": "בקשת החשבון שלך נשלחה וכעת היא ממתינה לסקירה.\nהודעת אימות נשלחה לכתובת הדואר האלקטרוני שלך.", "requestaccount-econf": "המערכת וידאה את נכונות כתובת הדואר האלקטרוני שלכם והיא תירשם בבקשת החשבון שלכם.", diff --git a/i18n/requestaccount/hr.json b/i18n/requestaccount/hr.json index 0d57fa1f..b23212c9 100644 --- a/i18n/requestaccount/hr.json +++ b/i18n/requestaccount/hr.json @@ -6,6 +6,7 @@ "Ex13", "Macofe", "Nemo bis", + "Ponor", "SpeedyGonsales" ] }, @@ -24,7 +25,7 @@ "requestaccount-bio-text": "Vaša biografija će biti postavljena kao glavni sadržaj za vašu suradničku stranicu.\nPokušajte napisati nešto o sebi.\nBudite sigurni da pišete informacije koje su vama prihvatljive.\nVaše pravo ime možete promijeniti putem [[Special:Preferences|postavki]].", "requestaccount-real": "Pravo ime:", "requestaccount-same": "(bit će isto kao i pravo ime)", - "requestaccount-email": "Adresa e-pošte (vaš ''e-mail''):", + "requestaccount-email": "Adresa e-pošte:", "requestaccount-reqtype": "Mjesto:", "requestaccount-level-0": "autor", "requestaccount-level-1": "uređivač", @@ -32,7 +33,7 @@ "requestaccount-attach": "Rezime ili CV (po želji):", "requestaccount-notes": "Dodatne bilješke:", "requestaccount-urls": "Popis web stranica, ako ih ima (odvojite ih redom):", - "requestaccount-agree": "Morate potvrditi da je vaše pravo ime točno i da pristajete na naše Uvjete korištenja.", + "requestaccount-agree": "Morate potvrditi da je Vaše pravo ime točno i da pristajete na naše Uvjete upotrebe.", "requestaccount-inuse": "Suradničko ime je već u upotrebi u otvorenom zahtjevu.", "requestaccount-tooshort": "Vaš životopis mora biti dug najmanje $1 {{PLURAL:$1|riječ|riječi}}.", "requestaccount-emaildup": "Drugi otvoreni zahtjev ima istu e-mail adresu.", @@ -43,7 +44,7 @@ "requestaccount-sent": "Vaš zahtjev je uspješno poslan i sada čeka potvrdu.", "requestaccount-econf": "Vaša e-mail adresa je potvrđena i bit će tako označena u vašem zahtjevu.", "requestaccount-email-subj": "{{SITENAME}} potvrda e-mail adrese", - "requestaccount-email-body": "Netko, vjerojatno s vaše IP adrese $1, je zatražio račun \"$2\" s ovom e-mail adresom na {{SITENAME}}.\n\nKako biste potvrdili da ovaj račun zaista pripada vama na {{SITENAME}}, otvorite sljedeću poveznicu u svom internetskom pregledniku:\n\n$3\n\nAko se račun otvori, samo vama će biti poslana zaporka.\nAko ovo *niste* vi, nemojte otvarati poveznicu.\nOvaj potvrdni kod će isteći $4.", + "requestaccount-email-body": "Netko je (vjerojatno Vi) s internetske adrese $1 zatražio otvaranje računa »$2« pridruženog ovoj adresi e-pošte na projektu {{SITENAME}}.\n\nKako biste potvrdili da ovaj račun zaista pripada Vama, otvorite sljedeću poveznicu u svom internetskom pregledniku:\n\n$3\n\nAko se račun otvori, samo će Vama biti poslana zaporka.\nAko Vi ovo *niste* zatražili, nemojte otvarati poveznicu.\nOvaj potvrdni kôd istječe $4.", "requestaccount-email-subj-admin": "{{SITENAME}} zahtjev suradničkog računa", "requestaccount-email-body-admin": "$1 je zatražio suradnički račun i čeka potvrdu.\nE-mail adresa je potvrđena. Možete potvrditi zahtjev ovdje:\n\n$2", "acct_request_throttle_hit": "Žao nam je, već ste zatražili {{PLURAL:$1|1 suradnički račun|$1 suradničke račune}}. Ne možete postaviti nove zahtjeve." diff --git a/i18n/requestaccount/hsb.json b/i18n/requestaccount/hsb.json index a156f922..c12c944f 100644 --- a/i18n/requestaccount/hsb.json +++ b/i18n/requestaccount/hsb.json @@ -6,7 +6,7 @@ ] }, "requestaccount": "Wužiwarske konto sej žadać", - "requestaccount-text": "'''Wupjelń slědowacy formular a wotesćel jón, zo by wužiwarske konto požadał'''. \n\nProšu přečitaj najprjedy [[{{MediaWiki:Requestaccount-page}}|wužiwanske wuměnjenja]], prjedy hač požadaš wužiwarske konto.\n\nTak ruče kaž konto je so potwjerdźiło, dóstanješ powěsć přez e-mejlku a móžeš [[Special:UserLogin|Konto wutworić abo so přizjewić]].", + "requestaccount-text": "'''Wupjelń slědowacy formular a wotesćel jón, zo by so wo wužiwarske konto požadał'''. \n\nProšu přečitaj sej najprjedy [[{{MediaWiki:Requestaccount-page}}|wužiwanske wuměnjenja]], prjedy hač so požadaš wo konto.\n\nRučež je so konto potwjerdźiło, dóstanješ powěsć přez e-mejlku a móžeš [[Special:UserLogin|konto wutworić abo so přizjewić]].", "requestaccount-page": "{{ns:project}}:Wužiwanske wuměnjenja", "requestaccount-dup": "'''Kedźbu: Sy hižo ze zregistrowanym wužiwarskim kontom přizjewjeny.'''", "requestaccount-leg-user": "Wužiwarske konto", @@ -14,7 +14,7 @@ "requestaccount-leg-person": "Wosobinske informacije", "requestaccount-leg-other": "Druhe informacije", "requestaccount-leg-tos": "Wužiwanske wuměnjenja", - "requestaccount-acc-text": "Na twoju e-mejlowu adresu budźe so po wotesłanju tutoho naprašowanje wobkrućenska mejlka słać. Adresa so njewozjewi. Prošu wotmołw přez kliknjenje na wobkrućenski wotkaz, kotryž mejlka wobsahuje. Skónčnje, tak ruče kaž twoje konto je wutworjene, so ći twoje hesło připósćele.", + "requestaccount-acc-text": "Na twoju e-mejlowu adresu sćelemy po wotesłanju tutoho naprašowanja wobkrućensku mejlku. Adresa so njewozjewi. Prošu wotmołw přez kliknjenje na wobkrućenski wotkaz w mejlce. Skónčnje, ručež je twoje konto wutworjene, so ći twoje hesło připósćele.", "requestaccount-areas-text": "Wubjer slědowace temowe wobwody, w kotrychž maš wěcywustojnosć abo chceš najwjace dźěła činić.", "requestaccount-ext-text": "Ze slědowacymi informacijemi so dowěrliwje wobchadźa a jenož za tute požadne wužiwa. Móžeš kontaktowe informacije, kaž na př. telefonowe čisło, podać, zo by wobdźěłowanje swojeho požadanja zjednorił.", "requestaccount-bio-text": "Spytaj wšě relewantne informacije do swojeje slědowaceje biografije zapřijimać.", diff --git a/i18n/requestaccount/ia.json b/i18n/requestaccount/ia.json index 770d0788..b1625494 100644 --- a/i18n/requestaccount/ia.json +++ b/i18n/requestaccount/ia.json @@ -15,12 +15,13 @@ "requestaccount-leg-person": "Informationes personal", "requestaccount-leg-other": "Altere informationes", "requestaccount-leg-tos": "Conditiones de servicio", - "requestaccount-acc-text": "Tu recipera in e-mail un message de confirmation quando tu submitte iste requesta. Le adresse non essera publicate.\nPer favor responde per cliccar super le ligamine de confirmation presente in le e-mail.\nAl fin, tu recipera tu contrasigno in e-mail al momento de creation de tu conto.", + "requestaccount-acc-text": "Tu recipera in e-mail un message de confirmation quando tu submitte iste requesta. Le adresse non essera publicate.\nPer favor responde cliccante sur le ligamine de confirmation presente in iste message.\nAl fin, tu recipera tu contrasigno in e-mail al momento de creation de tu conto.", "requestaccount-areas-text": "Selige in basso le areas thematic in le quales tu ha expertise formal o al quales tu volerea laborar le plus.", "requestaccount-ext-text": "Le sequente information resta private e essera usate solmente pro iste requesta.\nTu ha le possibilitate de listar contactos como un numero de telephono pro adjutar in le confirmation de tu identitate.", "requestaccount-bio-text": "Essaya includer omne qualificationes relevante in tu biographia hic infra.", "requestaccount-bio-text-i": "'''Le biographia essera inserite como le contento initial de tu pagina de usator.'''\nAssecura te que tu sia confortabile con le publication de tal informationes.", - "requestaccount-real": "Nomine real:", + "requestaccount-real": "Nomine real (optional):", + "requestaccount-real-i": "Le nomine real es optional. Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contributiones.", "requestaccount-same": "(equal al nomine real)", "requestaccount-email": "Adresse de e-mail:", "requestaccount-reqtype": "Position:", diff --git a/i18n/requestaccount/io.json b/i18n/requestaccount/io.json index 936594b1..9f66809a 100644 --- a/i18n/requestaccount/io.json +++ b/i18n/requestaccount/io.json @@ -4,7 +4,11 @@ "Joao Xavier" ] }, + "requestaccount": "Demandez konto", + "requestaccount-login": "Demandez konto", + "requestaccount-email": "E-postal adreso:", "requestaccount-reqtype": "Poziciono:", "requestaccount-level-0": "autoro", - "requestaccount-level-1": "redaktero" + "requestaccount-level-1": "redaktero", + "requestaccount-submit": "Demandez konto" } diff --git a/i18n/requestaccount/is.json b/i18n/requestaccount/is.json index 15037f3d..a49f8faf 100644 --- a/i18n/requestaccount/is.json +++ b/i18n/requestaccount/is.json @@ -4,6 +4,7 @@ "Macofe", "S.Örvarr.S", "Snævar", + "Stefán Örvar Sigmundsson", "Sveinki", "Sveinn í Felli", "Ævar Arnfjörð Bjarmason" @@ -18,22 +19,22 @@ "requestaccount-bio-text": "Reyndu að taka helstu verðleika þína með í æviágripinu hér fyrir neðan.", "requestaccount-real": "Raunverulegt nafn:", "requestaccount-same": "(fyllt út hér fyrir neðan)", - "requestaccount-email": "Netfang:", + "requestaccount-email": "Tölvupóstfang:", "requestaccount-reqtype": "Staða:", "requestaccount-level-0": "höfundur", "requestaccount-level-1": "ritstjóri", - "requestaccount-bio": "Persónulegt æviágrip (aðeins hreinn texti):", + "requestaccount-bio": "Persónulegt æviágrip (venjulegur texti einungis):", "requestaccount-attach": "Ferilskrá (valfrjálst):", "requestaccount-notes": "Viðbótarskýring:", "requestaccount-urls": "Listi yfir vefsíður, ef einhverjar (aðskildu með línum):", "requestaccount-agree": "Þú verður staðfesta að raunverulegt nafn þitt sé rétt og að þú samþykkir notkunarskilmálana okkar.", "requestaccount-tooshort": "Æviágripið þitt þarf að vera að minnsta kosti $1 {{PLURAL:$1|orð}} að lengd.", "requestaccount-submit": "Sækja um aðgang", - "requestaccount-sent": "Beðni þín um aðgang var móttekin og bíður nú yfirferðar hjá stjórnendum. Staðfestingarpóstur var sendur á netfangið þitt.", - "requestaccount-econf": "Netfangið þitt hefur verið staðfest og mun vera listað sem slíkt meðal aðgangsbeðna.", - "requestaccount-email-subj": "{{SITENAME}} netfangs-staðfesting", - "requestaccount-email-body": "Einhver með vistfangið „$1“ hefur beðið um að búa til aðganginn „$2“ með þessu netfangi á {{SITENAME}} vefnum.\n\nTil að steðfesta að þú viljir búa til þennan aðgang á {{SITENAME}} þarftu að opna þennan tengil í vafranum þínum:\n\n$3\n\nÞér verður sent lykilorð í pósti verði aðgangurinn búinn til. Þessi staðfestingarpóstur rennur út $4.", + "requestaccount-sent": "Aðgangsbeiðnin þín hefur verið send og bíður nú yfirferðar.\nStaðfestingarpóstur hefur verið sendur á tölvupóstfangið þitt.", + "requestaccount-econf": "Tölvupóstfangið þitt hefur verið staðfest og verður listað sem slíkt í aðgangsbeiðninni þinni.", + "requestaccount-email-subj": "{{SITENAME}}-staðfesting tölvupóstfangs", + "requestaccount-email-body": "Einhver, líklega þú, frá IP-staðfanginu $1, hefur beðið um aðganginn „$2“ með þessu tölvupóstfangi á {{SITENAME}}.\n\nTil að staðfesta að þessi aðgangur tilheyri í raun þér á {{SITENAME}}, opnaðu þennan tengil í vafranum þínum:\n\n$3\n\nEf aðgangurinn er búinn til verður einungis þér sent aðgangsorðið með tölvupósti. Ef þetta ert *ekki* þú skalt þú ekki fylgja tenglinum.\nÞessi staðfestingarkóði mun fyrnast $4.", "requestaccount-email-subj-admin": "Beðni um notanda a {{SITENAME}}", - "requestaccount-email-body-admin": "$1 hefur beðið um aðgang að sem bíður staðfestingar, notandinn hefur þegar staðfest netfangið sitt.\n\nÞú getur staðfest beðnina hér:\n\n$2", + "requestaccount-email-body-admin": "$1 hefur beðið um aðgang og bíður eftir staðfestingu.\nTölvupóstfangið hefur verið staðfest. Þú getur staðfest beiðnina hér:\n\n$2", "acct_request_throttle_hit": "Þú hefur þegar sótt um $1 {{PLURAL:$1|aðgang|aðganga}}. Þú getur ekki sent inn fleiri beðnir." } diff --git a/i18n/requestaccount/it.json b/i18n/requestaccount/it.json index ac9ef65c..517e1bbf 100644 --- a/i18n/requestaccount/it.json +++ b/i18n/requestaccount/it.json @@ -9,8 +9,8 @@ "Stefano-c" ] }, - "requestaccount": "Richiesta account", - "requestaccount-login": "Richiesta account", + "requestaccount": "Richiedi utenza", + "requestaccount-login": "Richiedi utenza", "requestaccount-text": "'''Completa e invia il seguente modulo per richiedere un account utente'''.\n\nAssicurarsi di aver prima letto i [[{{MediaWiki:Requestaccount-page}}|Termini del Servizio]] prima di richiedere un account.\n\nQuando l'account sarà stato approvato, ti verrà inviato via e-mail un messaggio di notifica e l'account sarà utilizzabile al [[Special:UserLogin|login]].", "requestaccount-page": "{{ns:project}}:Termini del Servizio", "requestaccount-dup": "'''Nota: hai già effettuato l'accesso con un account registrato.'''", @@ -18,13 +18,14 @@ "requestaccount-leg-areas": "Principali aree d'interesse", "requestaccount-leg-person": "Informazioni personali", "requestaccount-leg-other": "Altre informazioni", - "requestaccount-leg-tos": "Termini del Servizio", + "requestaccount-leg-tos": "Condizioni del servizio", "requestaccount-acc-text": "Verrà inviato un messaggio di conferma al tuo indirizzo email quando questa richiesta sarà inoltrata. L'indirizzo non sarà pubblicato.\nPer favore rispondi facendo clic sul link di conferma fornito nell'email.\nInfine, la tua password sarà inviata via email quando il tuo account sarà stato creato.", "requestaccount-areas-text": "Selezionare le aree di seguito in cui si hanno competenze formali o in cui si vorrebbe fare la maggior parte del lavoro.", "requestaccount-ext-text": "Le seguenti informazioni saranno tenute private e saranno usate solo per questa richiesta.\nPotresti voler inserire dei contatti come un numero di telefono per aiutare l'identificazione.", "requestaccount-bio-text": "Cerca di inserire tutte le credenziali e le informazioni rilevanti nella tua biografia.", "requestaccount-bio-text-i": "'''La tua biografia sarà impostata come contenuto predefinito per la tua pagina utente.'''\nAssicurati di voler pubblicare tali informazioni.", - "requestaccount-real": "Nome vero:", + "requestaccount-real": "Nome reale (facoltativo):", + "requestaccount-real-i": "Il nome reale è facoltativo. Se scegli di fornirlo, verrà utilizzato per attribuirti la paternità dei contenuti che hai inviato.", "requestaccount-same": "(uguale al vero nome)", "requestaccount-email": "Indirizzo email:", "requestaccount-reqtype": "Posizione:", @@ -41,7 +42,7 @@ "requestaccount-exts": "Tipo di file allegato non permesso.", "requestaccount-resub": "Il file del tuo curriculum deve essere ri-selezionato per motivi di sicurezza.\nLascia il campo vuoto se non desideri più includerne uno.", "requestaccount-tos": "Ho letto e accetto di rispettare i [[{{MediaWiki:Requestaccount-page}}|Termini del Servizio]] di {{SITENAME}}.\nIl nome che ho specificato come \"Vero nome\" è infatti il mio vero nome.", - "requestaccount-submit": "Richiesta account", + "requestaccount-submit": "Richiedi utenza", "requestaccount-sent": "La tua richiesta utenza è stata inviata ed è ora in attesa di verifica.\n\tUna email di conferma è stata inviata al tuo indirizzo di posta elettronica", "requestaccount-econf": "Il tuo indirizzo e-mail è stato confermato e sarà indicato come tale nella tua richiesta.", "requestaccount-email-subj": "{{SITENAME}} conferma indirizzo email", diff --git a/i18n/requestaccount/ka.json b/i18n/requestaccount/ka.json index 2550b289..c7031a25 100644 --- a/i18n/requestaccount/ka.json +++ b/i18n/requestaccount/ka.json @@ -4,6 +4,8 @@ "David1010" ] }, + "requestaccount": "ანგარიშის მოთხოვნა", + "requestaccount-login": "ანგარიშის მოთხოვნა", "requestaccount-page": "{{ns:project}}:პირობები და მომსახურება", "requestaccount-leg-user": "მომხმარებლის ანგარიში", "requestaccount-leg-areas": "ინტერესების ძირითადი სფერო", @@ -16,7 +18,6 @@ "requestaccount-reqtype": "პოზიცია:", "requestaccount-level-0": "ავტორი", "requestaccount-level-1": "რედაქტორი", - "requestaccount-info": "(?)", "requestaccount-bio": "პირადი ბიოგრაფია (მხოლოდ ჩვეულებრივი ტექსტი):", "requestaccount-attach": "რეზიუმე ან CV (არასავალდებულო):", "requestaccount-notes": "დამატებითი შენიშვნები:", diff --git a/i18n/requestaccount/kjp.json b/i18n/requestaccount/kjp.json deleted file mode 100644 index 72d9d045..00000000 --- a/i18n/requestaccount/kjp.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Rul1902" - ] - }, - "requestaccount-real": "အ်ုမိင်ယင်ႋ:" -} diff --git a/i18n/requestaccount/ko.json b/i18n/requestaccount/ko.json index f9cde99b..c4a316f2 100644 --- a/i18n/requestaccount/ko.json +++ b/i18n/requestaccount/ko.json @@ -6,6 +6,7 @@ "Priviet", "Revi", "Yjs5497", + "Ykhwong", "아라" ] }, @@ -24,7 +25,8 @@ "requestaccount-ext-text": "다음 정보는 공개되지 않으며 이 요청을 처리하는 데에만 사용됩니다. \n휴대 전화 번호 등 연락처를 입력하면 본인 확인에 도움이 됩니다.", "requestaccount-bio-text": "아래의 경력에 관련된 자격 정보를 포함해주세요.", "requestaccount-bio-text-i": "'''당신의 경력은 사용자 페이지의 첫 내용으로 설정될 것입니다.'''\n해당 정보를 공개해도 되는지 다시 한 번 확인해주세요.", - "requestaccount-real": "실명:", + "requestaccount-real": "실명(선택사항):", + "requestaccount-real-i": "실명은 선택 사항입니다. 실명을 입력하면 기여에 사용자 이름이 들어갑니다.", "requestaccount-same": "(실명과 같음)", "requestaccount-email": "이메일 주소:", "requestaccount-reqtype": "위치:", diff --git a/i18n/requestaccount/ky.json b/i18n/requestaccount/ky.json new file mode 100644 index 00000000..94532941 --- /dev/null +++ b/i18n/requestaccount/ky.json @@ -0,0 +1,21 @@ +{ + "@metadata": { + "authors": [ + "Bosogo" + ] + }, + "requestaccount": "Аккаунтту өтүнүү", + "requestaccount-login": "Аккаунтту өтүнүү", + "requestaccount-dup": "'''Эскертме: катталган аккаунттан аракет кылып жатасыз.'''", + "requestaccount-leg-user": "Аккаунт", + "requestaccount-leg-person": "Жеке маалымат", + "requestaccount-leg-other": "Башка маалымат", + "requestaccount-email": "Электрондук почта:", + "requestaccount-reqtype": "Роль:", + "requestaccount-level-0": "автор", + "requestaccount-level-1": "түзөтүүчү", + "requestaccount-notes": "Кошумча эскертмелер:", + "requestaccount-submit": "Аккаунтту өтүнүү", + "requestaccount-email-subj": "{{SITENAME}}: электрондук почтаны ырастоо", + "requestaccount-email-subj-admin": "{{SITENAME}} аккаунтуна өтүнүч" +} diff --git a/i18n/requestaccount/lb.json b/i18n/requestaccount/lb.json index d5556abc..9c5dcee8 100644 --- a/i18n/requestaccount/lb.json +++ b/i18n/requestaccount/lb.json @@ -3,7 +3,8 @@ "authors": [ "Les Meloures", "Robby", - "Soued031" + "Soued031", + "Volvox" ] }, "requestaccount": "Benotzerkont ufroen", @@ -16,14 +17,14 @@ "requestaccount-leg-person": "Perséinlech Informatiounen", "requestaccount-leg-other": "Aner Informatiounen", "requestaccount-leg-tos": "Konditioune vum Gebrauch", - "requestaccount-acc-text": "Soubal wéi Dir dës Ufro geschéckt hutt kritt Dir e Confirmatiounsmessage op Är E-Mail-Adress. D'E-Mail-Adress gëtt net verëffentlecht.\nÄntwert wgl. duerch klicken op de Confirmatiounslink deen an där Mail drasteet.\nOch Äert Passwuert gëtt Iech gemailt soubal wéi Äre Benotzerkonnt ugeluecht gouf.", - "requestaccount-areas-text": "Wielt déi Sujeten aus an denen Dir formaalt Fachwëssen huet oder an deem Dir am léifste schaffe wëllt.", + "requestaccount-acc-text": "Soubal wéi Dir dës Ufro geschéckt hutt kritt Dir e Confirmatiounsmessage op Är E-Mail-Adress. D'E-Mail-Adress gëtt net verëffentlecht.\nÄntwert wgl. duerch klicken op de Confirmatiounslink deen an där Mail drasteet.\nOch Äert Passwuert gëtt Iech gemailt soubal wéi Äre Benotzerkont ugeluecht gouf.", + "requestaccount-areas-text": "Wielt déi Sujeten aus an deenen Dir formaalt Fachwëssen hutt oder an deenen Dir am léifste schaffe wëllt.", "requestaccount-ext-text": "Dës Informatioune gi vertraulech behandelt a gi just fir dës Ufro benotzt.\nDir kënnt Kontaktinformatiounen wéi eng Telefonsnummer uginn fir d'Identitéitskonfirmatioun ze vereinfachen.", "requestaccount-bio-text": "Versicht all néideg Informatiounen an Ärer Biographie hei drënner unzeginn.", "requestaccount-bio-text-i": "'''Är Biographie gëtt als éischt Versioun vun Ärer Benotzersäit verëffentlecht.'''\nIwwerleet Iech ob Dir domat averstane sidd datt sou Informatiounen iwwer Iech verëffentlecht ginn.", - "requestaccount-real": "Richtegen Numm:", + "requestaccount-real": "Richtegen Numm (fakultativ):", "requestaccount-same": "(d'selwecht wéi de richtegen Numm)", - "requestaccount-email": "E-mail-Adress:", + "requestaccount-email": "E-Mail-Adress:", "requestaccount-reqtype": "Positioun:", "requestaccount-level-0": "Auteur", "requestaccount-level-1": "Editeur", @@ -31,15 +32,15 @@ "requestaccount-attach": "Liewenslaf oder CV (optional):", "requestaccount-notes": "Zousätzlech Bemierkungen:", "requestaccount-urls": "Lëscht vu Websäiten (all Säit an enger neier Zeil)", - "requestaccount-agree": "Dir musst confirméieren datt är E-Mailadress richteg ass and datt dir mat den Allgemenge Konditiounen d'Accord sitt.", + "requestaccount-agree": "Dir musst confirméieren, datt Äre richtegen Numm korrekt ass an datt Dir mat eise Benotzungsbedingungen averstane sidd.", "requestaccount-inuse": "De Benotzernumm ass scho bei enger anerer Benotzerufro a Gebrauch.", "requestaccount-tooshort": "Är Biographie muss mindestens $1 {{PLURAL:$1|Wuert|Wierder}} hunn.", - "requestaccount-emaildup": "En anere Benotzerkont deen ugefrot gouf benotzt déi selwecht E-Mailadress.", + "requestaccount-emaildup": "En anere Benotzerkont, deen ugefrot gouf, benotzt déi selwecht E-Mail-Adress.", "requestaccount-exts": "De Fichierstyp vum ''Attachment'' ass net erlaabt.", "requestaccount-resub": "De Fichier mat ärem CV muss aus Sécherheetsgrënn nachemol nei erausgesicht ginn.\nLoosst d'Feld eidel wann Dir elo keen CV abanne wëllt.", "requestaccount-tos": "Ech hunn d'[[{{MediaWiki:Requestaccount-page}}|Benotzungsbedingunge]] vu(n) {{SITENAME}} gelies an akzeptzéieren se.\nDen Numm den ech bei \"Richtegen Numm\" uginn hunn, ass mäin eegene richtegen Numm.", "requestaccount-submit": "Benotzerkont ufroen", - "requestaccount-sent": "Är Ufro fir e Benotzerkont gouf fortgeschéckt a muss elo nach akzeptéiert ginn.\nEng Konfirmatiounsmail gouf op Är E-Mailadress geschéckt.", + "requestaccount-sent": "Är Ufro fir e Benotzerkont gouf fortgeschéckt a muss elo nach akzeptéiert ginn.\nEng Confirmatiouns-E-Mail gouf op Är E-Mail-Adress geschéckt.", "requestaccount-econf": "Är E-Mail-Adress gouf confirméiert a gëtt elo als E-Mail-Adress an är Ufro fir e Benotzerkont integréiert.", "requestaccount-email-subj": "{{SITENAME}} Konfirmatioun vun der E-Mail-Adress", "requestaccount-email-body": "Een, warscheinlech Dir vun der IP-Adress $1, huet e Benotzerkont \"$2\" mat dëser E-Mail-Adress op {{SITENAME}} ugefrot.\n\nFir ze confirméieren datt dëse Benotzerkont op {{SITENAME}} Iech wierklech gehéiert, klickt wgl. op dëse Link an Ärem Browser:\n\n$3\n\nWann De Benotzerkont ugeluecht ass, kritt Dir eleng d'Passwuert per E-Mail geschéckt.\nWann Dir et *net\" sidd, da klickt net op de Link.\nDës Confirmatioun ass just valabel bis $4.", diff --git a/i18n/requestaccount/lt.json b/i18n/requestaccount/lt.json index 6cf9916c..be5e0a47 100644 --- a/i18n/requestaccount/lt.json +++ b/i18n/requestaccount/lt.json @@ -3,6 +3,7 @@ "authors": [ "Eitvys200", "Homo", + "Nokeoo", "Tomasdd" ] }, @@ -19,6 +20,7 @@ "requestaccount-acc-text": "Jūsų el. pašto adresu bus išsiųstas patvirtinimo pranešimas po to, kai pateiksite šį prašymą. Adresas nebus skelbiamas.\nPrašome atsakyti paspaudžiant ant patvirtinimo nuorodos el. laiške.\nGaliausiai, jūsų slaptažodis jums bus atsiųstas el. paštu po paskyros sukūrimo.", "requestaccount-areas-text": "Žemiau pasirinkite temines sritis, kuriose turite patirties arba norėtumėte dirbti daugiausia.", "requestaccount-ext-text": "Toliau pateikta informacija yra saugoma ir bus naudojame tik dėl šio prašymo.\nJei norite galite pateikti savo kontaktus, pvz. telefono numerį, kad padėtumėte su tapatybės nustatymu.", + "requestaccount-bio-text": "Į toliau pateiktą biografiją pabandykite įtraukti visus susijusius kredencialus.", "requestaccount-bio-text-i": "'''Jūsų biografija bus rodoma kaip pirminis turinys jūsų vartotojo puslapyje.'''\nĮsitikinkite, kad norite skelbti tokią informaciją.", "requestaccount-real": "Tikrasis vardas:", "requestaccount-same": "(toks kaip tikrasis vardas žemiau)", diff --git a/i18n/requestaccount/mk.json b/i18n/requestaccount/mk.json index dc6d2cf7..832a5d9a 100644 --- a/i18n/requestaccount/mk.json +++ b/i18n/requestaccount/mk.json @@ -21,7 +21,8 @@ "requestaccount-ext-text": "Следните информации се држат во приватност и ќе се користат само на ваше барање.\nПрепорачуваме да наведете контакти како телефонски број за полесно потврдување на идентитетот.", "requestaccount-bio-text": "По можност во биографијата подолу вклучете и препораки или уверенија.", "requestaccount-bio-text-i": "'''Вашата биографија ќе стои како првична содржина на корисничката страница.'''\nРазмислете дали сакате да се објавуваат вакви информации за вас.", - "requestaccount-real": "Вистинско име:", + "requestaccount-real": "Вистинско име (незадолжително):", + "requestaccount-real-i": "Вистинското име е незадолжително. Доколку изберете да го внесете, тоа може да се користи за да ви се оддадат заслуги за вашата работа.", "requestaccount-same": "(исто како вистинско име)", "requestaccount-email": "Е-поштенска адреса:", "requestaccount-reqtype": "Позиција:", diff --git a/i18n/requestaccount/nah.json b/i18n/requestaccount/nah.json index 5434bf05..7a61637c 100644 --- a/i18n/requestaccount/nah.json +++ b/i18n/requestaccount/nah.json @@ -1,10 +1,11 @@ { "@metadata": { "authors": [ - "Fluence" + "Fluence", + "Languaeditor" ] }, - "requestaccount-leg-user": "Tlatequitiltilīlli cuentah", + "requestaccount-leg-user": "Tekitiketl kwentah", "requestaccount-real": "Melāhuac motōcā:", "requestaccount-level-0": "chīhualōni" } diff --git a/i18n/requestaccount/nb.json b/i18n/requestaccount/nb.json index 24fce22a..473dd7ac 100644 --- a/i18n/requestaccount/nb.json +++ b/i18n/requestaccount/nb.json @@ -6,7 +6,8 @@ "Jon Harald Søby", "Laaknor", "Macofe", - "Nghtwlkr" + "Nghtwlkr", + "Yupik" ] }, "requestaccount": "Etterspør konto", @@ -24,7 +25,8 @@ "requestaccount-ext-text": "Følgende informasjon vil holdes privat, og vil kun brukes for denne forespørselen. Du vil kanskje liste opp kontaktinformasjon som et telefonnummer for å hjelpe til i bekreftelsesprosessen.", "requestaccount-bio-text": "Ta med alle kunnskaps- og ferdighetsrelevante detaljer i biografien din under.", "requestaccount-bio-text-i": "'''Biografien din blir satt som startinnholdet for brukersiden din.'''\nForsikre deg om at du synes det er greit å publisere denne informasjonen.", - "requestaccount-real": "Virkelig navn:", + "requestaccount-real": "Virkelig navn (valgfritt):", + "requestaccount-real-i": "Virkelig navn er valgfritt. Hvis du velger å angi det, vil det bli brukt til å kreditere deg for arbeidet ditt.", "requestaccount-same": "(samme som virkelig navn)", "requestaccount-email": "E-postadresse:", "requestaccount-reqtype": "Stilling:", diff --git a/i18n/requestaccount/ne.json b/i18n/requestaccount/ne.json index 908d155a..9e3f7d1d 100644 --- a/i18n/requestaccount/ne.json +++ b/i18n/requestaccount/ne.json @@ -1,23 +1,23 @@ { "@metadata": { "authors": [ + "Nirajan pant", "पर्वत सुबेदी" ] }, "requestaccount": "खाता अनुरोध गर्नुहोस्", "requestaccount-login": "खाता अनुरोध गर्नुहोस्", - "requestaccount-page": "{{ns:project}}: सेवाका शर्तहरू", + "requestaccount-page": "{{ns:project}}: सेवाका सर्तहरू", "requestaccount-leg-user": "प्रयाेगकर्ता खाता", "requestaccount-leg-areas": "रूचिका मुख्य क्षेत्रहरू", "requestaccount-leg-person": "व्यक्तिगत जानकारी", "requestaccount-leg-other": "अन्य जानकारी", "requestaccount-leg-tos": "सेवाका सर्तहरू", - "requestaccount-real": "वास्तविक नाम:", + "requestaccount-real": "वास्तविक नाम (ऐच्छिक):", "requestaccount-email": "डाँक ठेगाना:", "requestaccount-reqtype": "स्थान:", "requestaccount-level-0": "लेखक", "requestaccount-level-1": "सम्पादक", - "requestaccount-info": "(?)", "requestaccount-notes": "बैकल्पिक टिप्पणीहरू", "requestaccount-submit": "खाता अनुरोध गर्नुहोस्", "requestaccount-email-subj": "{{SITENAME}} डाँक ठेगानाको पुष्टि", diff --git a/i18n/requestaccount/nl-informal.json b/i18n/requestaccount/nl-informal.json index d52e5fea..6a797b79 100644 --- a/i18n/requestaccount/nl-informal.json +++ b/i18n/requestaccount/nl-informal.json @@ -3,6 +3,7 @@ "authors": [ "HanV", "Mar(c)", + "McDutchie", "Nemo bis", "Siebrand" ] @@ -17,9 +18,9 @@ "requestaccount-agree": "Je moet bevestigen dat je naam juist is en dat je akkoord gaat met de Gebruiksvoorwaarden.", "requestaccount-tooshort": "Je biografie moet ten minste {{PLURAL:$1|één woord|$1 woorden}} bevatten.", "requestaccount-resub": "Je CV-bestand moet opnieuw geselecteerd worden om veiligheidsredenen.\nLaat het veld leeg als je geen bestand meer wilt bijvoegen.", - "requestaccount-sent": "Je gebruikersaanvraag is verstuurd en wacht om nagekeken te worden.\nEr is ter bevestiging een e-mail naar je e-mailadres gezonden.", + "requestaccount-sent": "Je accountaanvraag is verstuurd en is nu in afwachting van beoordeling.\nEr is een bevestigingsmail naar jouw e-mailadres gezonden.", "requestaccount-econf": "Je e-mailadres is bevestigd en wordt in je gebruikersaanvraag opgenomen.", "requestaccount-email-body": "Iemand, waarschijnlijk jij, heeft vanaf IP-adres $1 op {{SITENAME}} een aanvraag gedaan\nvoor het aanmaken van account \"$2\" met dit e-mailadres.\n\nKlik op de onderstaande koppeling om te bevestigen dat dit account op {{SITENAME}} daadwerkelijk bij jou hoort:\n\n$3\n\nWanneer het account is aangemaakt, krijg alleen jij een e-mail met het wachtwoord.\nAls jij dit *niet* bent, gebruik de koppeling dan niet. \nDoe de bevestiging voor $4.", - "requestaccount-email-body-admin": "\"$1\" heeft een gebruiker aangevraagd en wacht op bevestiging.\nHet e-mailadres is bevestigd.\nJe kunt de aanvraag hier \"$2\" bevestigen.", + "requestaccount-email-body-admin": "$1 heeft een account aangevraagd en wacht op bevestiging.\nHet e-mailadres is bevestigd.\nJe kunt de aanvraag hier bevestigen:\n\n$2", "acct_request_throttle_hit": "Je hebt al $1 {{PLURAL:$1|gebruikersaanvraag|gebruikersaanvragen}} gedaan.\nJe kunt geen nieuwe aanvragen meer uitbrengen." } diff --git a/i18n/requestaccount/nl.json b/i18n/requestaccount/nl.json index 4919f232..d85583a6 100644 --- a/i18n/requestaccount/nl.json +++ b/i18n/requestaccount/nl.json @@ -6,6 +6,7 @@ "HanV", "Mainframe98", "Mar(c)", + "McDutchie", "SPQRobin", "Siebrand" ] @@ -25,7 +26,8 @@ "requestaccount-ext-text": "De volgende informatie wordt vertrouwelijk behandeld en wordt alleen gebruikt voor deze aanvraag.\nU kunt contactgegevens zoals een telefoonnummer opgeven om te helpen bij het vaststellen van uw identiteit.", "requestaccount-bio-text": "Probeer relevante gegevens in uw biografie op te nemen.", "requestaccount-bio-text-i": "'''Uw biografie zal gebruikt worden als eerste inhoud van uw gebruikerspagina.'''\nZorg ervoor dat u zich comfortabel voelt met het openbaren van deze informatie.", - "requestaccount-real": "Echte naam:", + "requestaccount-real": "Echte naam (optioneel):", + "requestaccount-real-i": "Een echte naam is optioneel. Als u er een opgeeft, wordt u onder deze naam vermeld als erkenning voor uw werk.", "requestaccount-same": "(gelijk aan echte naam hieronder)", "requestaccount-email": "E-mailadres:", "requestaccount-reqtype": "Positie:", diff --git a/i18n/requestaccount/pa.json b/i18n/requestaccount/pa.json index 715b6f01..5eee73c4 100644 --- a/i18n/requestaccount/pa.json +++ b/i18n/requestaccount/pa.json @@ -2,27 +2,29 @@ "@metadata": { "authors": [ "Aalam", - "Babanwalia" + "Babanwalia", + "Cabal", + "Kuldeepburjbhalaike" ] }, - "requestaccount": "ਅਕਾਊਂਟ ਬੇਨਤੀ", + "requestaccount": "ਖਾਤੇ ਲਈ ਬੇਨਤੀ", "requestaccount-page": "{{ns:project}}: ਸਰਵਿਸ ਦੀਆਂ ਸ਼ਰਤਾਂ", - "requestaccount-dup": "'''ਨੋਟ: ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਰਜਿਸਟਰ ਹੋਏ ਅਕਾਊਂਟ ਨਾਲ ਲਾਗ ਹੋ ਚੁੱਕੇ ਹੋ।'''", + "requestaccount-dup": "'''ਨੋਟ: ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਦਾਖ਼ਲ-ਖਾਤੇ ਨਾਲ ਦਾਖ਼ਲ ਹੋ ਚੁੱਕੇ ਹੋ।'''", "requestaccount-leg-user": "ਵਰਤੋਂਕਾਰ ਖਾਤਾ", "requestaccount-leg-areas": "ਦਿਲਚਸਪੀ ਦੇ ਖਾਸ ਖੇਤਰ", "requestaccount-leg-person": "ਨਿੱਜੀ ਜਾਣਕਾਰੀ", "requestaccount-leg-other": "ਹੋਰ ਜਾਣਕਾਰੀ", "requestaccount-leg-tos": "ਸਰਵਿਸ ਦੀਆਂ ਸ਼ਰਤਾਂ", - "requestaccount-real": "ਅਸਲੀ ਨਾਂ:", + "requestaccount-real": "ਅਸਲੀ ਨਾਮ (ਵਿਕਲਪਿਕ):", "requestaccount-same": "(ਅਸਲੀ ਨਾਂ ਵਾਂਗ ਹੀ)", - "requestaccount-email": "ਈਮੇਲ ਐਡਰੈੱਸ:", + "requestaccount-email": "ਈਮੇਲ ਪਤਾ:", "requestaccount-reqtype": "ਸਥਿਤੀ:", - "requestaccount-level-0": "ਲੇਖਕ", - "requestaccount-level-1": "ਐਡੀਟਰ", - "requestaccount-bio": "ਨਿੱਜੀ ਜਾਣਕਾਰੀ:", + "requestaccount-level-0": "ਲਿਖਾਰੀ", + "requestaccount-level-1": "ਸੋਧਕ", + "requestaccount-bio": "ਨਿੱਜੀ ਜੀਵਨੀ (ਸਿਰਫ਼ ਸਾਦਾ ਪਾਠ):", "requestaccount-notes": "ਹੋਰ ਨੋਟ:", "requestaccount-inuse": "ਵਰਤੋਂਕਾਰ-ਨਾਂ ਪਹਿਲੋਂ ਹੀ ਇੱਕ ਲਟਕਦੀ ਖਾਤਾ ਬੇਨਤੀ ਵਿੱਚ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ।", - "requestaccount-submit": "ਅਕਾਊਂਟ ਬੇਨਤੀ", - "requestaccount-email-subj": "{{SITENAME}} ਈਮੇਲ ਐਡਰੈੱਸ ਪੁਸ਼ਟੀ", - "requestaccount-email-subj-admin": "{{SITENAME}} ਅਕਾਊਂਟ ਮੰਗ" + "requestaccount-submit": "ਖਾਤੇ ਲਈ ਬੇਨਤੀ", + "requestaccount-email-subj": "{{SITENAME}} ਈਮੇਲ ਪਤੇ ਦੀ ਤਸਦੀਕ", + "requestaccount-email-subj-admin": "{{SITENAME}} ਖਾਤਾ ਬੇਨਤੀ" } diff --git a/i18n/requestaccount/pl.json b/i18n/requestaccount/pl.json index a4d70fba..518513c0 100644 --- a/i18n/requestaccount/pl.json +++ b/i18n/requestaccount/pl.json @@ -17,7 +17,7 @@ }, "requestaccount": "Wniosek o założenie konta", "requestaccount-login": "Złóż wniosek o konto", - "requestaccount-text": "'''Wypełnij i wyślij poniższy formularz jeśli chcesz mieć własne konto użytkownika'''.\n\nZanim jednak to zrobisz zapoznaj się z [[{{MediaWiki:Requestaccount-page}}|zasadami korzystania z konta]]\n\nJeśli wniosek o założenie konta zostanie zaakceptowany, otrzymasz wiadomość e‐mail i będziesz mógł [[Special:UserLogin|się zalogować]].", + "requestaccount-text": "'''Wypełnij i wyślij poniższy formularz jeśli chcesz mieć własne konto użytkownika'''.\n\nZanim jednak to zrobisz, zapoznaj się z [[{{MediaWiki:Requestaccount-page}}|zasadami korzystania z konta]]\n\nJeśli wniosek o założenie konta zostanie zaakceptowany, otrzymasz wiadomość e‐mail i będziesz mógł [[Special:UserLogin|się zalogować]].", "requestaccount-page": "{{ns:project}}:Zasady użytkowania", "requestaccount-dup": "'''Uwaga: Jesteś już zalogowany na zarejestrowane konto.'''", "requestaccount-leg-user": "Konto użytkownika", @@ -30,7 +30,8 @@ "requestaccount-ext-text": "Następujące informacje nie będą udostępniane. Zostaną użyte tylko na potrzeby tego wniosku o założenie konta użytkownika.\nMożesz wyświetlić kontakty np. numer telefonu, by łatwiej zdecydować o zatwierdzeniu lub odrzuceniu wniosku.", "requestaccount-bio-text": "Spróbuj zawrzeć w swojej poniższej biografii wszelkie istotne informacje.", "requestaccount-bio-text-i": "'''Twoja biografia zostanie zamieszczona jako początkowa zawartość Twojej strony użytkownika.'''\nUpewnij się, czy na pewno chcesz opublikować te informacje.", - "requestaccount-real": "Imię i nazwisko:", + "requestaccount-real": "Imię i nazwisko (opcjonalnie):", + "requestaccount-real-i": "Wpisanie imienia i nazwiska nie jest obowiązkowe.\nJeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje autorstwo.", "requestaccount-same": "(prawdziwe imię i nazwisko)", "requestaccount-email": "Adres e‐mail:", "requestaccount-reqtype": "Stanowisko:", @@ -48,10 +49,10 @@ "requestaccount-resub": "Plik z Twoim życiorysem musi zostać ponownie wybrany ze względów bezpieczeństwa.\nPozostaw pole niewypełnione jeśli nie chcesz więcej go załączać.", "requestaccount-tos": "Przeczytałem i wyrażam bez zastrzeżeń zgodę na [[{{MediaWiki:Requestaccount-page}}|warunki korzystania]] z {{GRAMMAR:D.lp|{{SITENAME}}}}.\nOświadczam, że wpisane przez ze mnie imię i nazwisko są faktycznie moimi.", "requestaccount-submit": "Składam wniosek", - "requestaccount-sent": "Twój wniosek o założenie konta został wysłany i oczekuje na rozpatrzenie.\nWiadomość z prośbą o potwierdzenie została przesłana na adres Twojej poczty elektronicznej.", + "requestaccount-sent": "Twój wniosek o założenie konta został wysłany i oczekuje na rozpatrzenie.\nWiadomość z prośbą o potwierdzenie została przesłana na twój adres e-mail.", "requestaccount-econf": "Adres e‐mail został potwierdzony i będzie wyświetlany tak, jak określono we wniosku o założenie konta.", "requestaccount-email-subj": "Potwierdzenie adresu e‐mail w {{GRAMMAR:MS.lp|{{SITENAME}}}}", - "requestaccount-email-body": "Ktoś (zakładamy, że Ty), z komputera o adresie IP $1, złożył w {{GRAMMAR:MS.pl|{{SITENAME}}}} wniosek o założenie konta użytkownika „$2”, podając przy tym niniejszy adres e‐mail.\n\nJeśli to Ty zakładasz konto w {{GRAMMAR:MS.pl|{{SITENAME}}}}, potwierdź to otwierając w swojej przeglądarce poniższy link:\n\n$3\n\nJeśli konto zostanie utworzone, zostanie wysłane do Ciebie na ten adres e‐mail hasło.\nJeśli to nie Ty zakładałeś konto, *nie klikaj* w powyższy link.\nKod potwierdzający zawarty w powyższym linku straci ważność $4.", + "requestaccount-email-body": "Ktoś (zakładamy, że Ty), z komputera o adresie IP $1, złożył w {{GRAMMAR:MS.pl|{{SITENAME}}}} wniosek o założenie konta użytkownika „$2”, podając przy tym niniejszy adres e‐mail.\n\nJeśli to Ty zakładasz konto w {{GRAMMAR:MS.pl|{{SITENAME}}}}, potwierdź to, otwierając w swojej przeglądarce poniższy link:\n\n$3\n\nJeśli konto zostanie utworzone, zostanie wysłane do Ciebie na ten adres e‐mail hasło.\nJeśli to nie Ty zakładałeś konto, *nie klikaj* w powyższy link.\nKod potwierdzający zawarty w powyższym linku straci ważność $4.", "requestaccount-email-subj-admin": "Wniosek o założenie konta użytkownika w {{GRAMMAR:MS.lp|{{SITENAME}}}}", "requestaccount-email-body-admin": "Użytkownik $1 złożył wniosek o założenie konta i oczekuje na zatwierdzenie.\nAdres e‐mail został potwierdzony. Możesz zatwierdzić wniosek tutaj:\n\n$2", "acct_request_throttle_hit": "Złożyłeś już {{PLURAL:$1|1 wniosek|$1 wnioski|$1 wniosków}} o założenie konta użytkownika.\nNie możesz złożyć więcej wniosków." diff --git a/i18n/requestaccount/ps.json b/i18n/requestaccount/ps.json index f75acbb7..a2b1be65 100644 --- a/i18n/requestaccount/ps.json +++ b/i18n/requestaccount/ps.json @@ -1,15 +1,16 @@ { "@metadata": { "authors": [ - "Ahmed-Najib-Biabani-Ibrahimkhel" + "Ahmed-Najib-Biabani-Ibrahimkhel", + "شاه زمان پټان" ] }, "requestaccount": "د گڼون غوښتنه", "requestaccount-leg-user": "گڼون", "requestaccount-leg-person": "ځاني مالومات", "requestaccount-leg-other": "نور مالومات", - "requestaccount-real": "اصلي نوم:", - "requestaccount-email": "برېښليک پته:", + "requestaccount-real": "ار نوم (اختياري):", + "requestaccount-email": "برېښليک‌پته:", "requestaccount-level-0": "ليکوال", "requestaccount-level-1": "سمونگر", "requestaccount-bio": "شخصي ژوندليک (يوازې ساده متن):", diff --git a/i18n/requestaccount/qqq.json b/i18n/requestaccount/qqq.json index f0046c92..a6e82487 100644 --- a/i18n/requestaccount/qqq.json +++ b/i18n/requestaccount/qqq.json @@ -11,14 +11,15 @@ "Shirayuki", "Siebrand", "The Evil IP address", - "Umherirrender" + "Umherirrender", + "Verdy p" ] }, "requestaccount": "{{doc-special|RequestAccount}}\n{{Identical|Request account}}", "requestaccount-login": "{{Identical|Request account}}", "requestaccount-text": "Used as intro text in [[Special:RequestAccount]].\n\nRefers to {{msg-mw|Requestaccount-page}}.", "requestaccount-footer": "{{notranslate}}", - "requestaccount-page": "Used as link target in the following messages:\n* {{msg-mw|Requestaccount-text}}\n* {{msg-mw|Requestaccount-tos}}", + "requestaccount-page": "Used as link target in the following messages:\n* {{msg-mw|Requestaccount-text}}\n* {{msg-mw|Requestaccount-tos}}\n{{Identical|Requestaccount-page}}", "requestaccount-dup": "Used as notice to users that are logged in.", "requestaccount-leg-user": "Used as fieldset label in the form.\n{{Identical|User account}}", "requestaccount-leg-areas": "Used as fieldset label in the form.\n{{Identical|Main areas of interest}}", @@ -32,6 +33,7 @@ "requestaccount-bio-text": "Used as intro text for the {{msg-mw|Requestaccount-bio}} textarea.\n\nThis message may follow the following message:\n* {{msg-mw|Requestaccount-bio-text-i}}.", "requestaccount-bio-text-i": "Used as intro text.\n\nThis message is followed by {{msg-mw|Requestaccount-bio-text}}.", "requestaccount-real": "When changing this message, please make sure to change {{msg-mw|requestaccount-tos|notext=yes}} too, which directly references to this message.\n{{Identical|Real name}}", + "requestaccount-real-i": "Used as intro text of the fieldset {{msg-mw|Requestaccount-real}} in the \"Account request\" form.", "requestaccount-same": "This message follows the label {{msg-mw|Username}}.\n\nIf the \"Username\" field is disabled, this message is used.\n\nOtherwise the \"Username\" input box appears instead of this message.", "requestaccount-email": "Used as label for the \"Email address\" input box.\n{{Identical|E-mail address}}", "requestaccount-reqtype": "Used as label for the \"Position\" select box which has the following positions:\n* {{msg-mw|Requestaccount-level-0}}\n* {{msg-mw|Requestaccount-level-1}}\n{{Identical|Position}}", @@ -55,6 +57,6 @@ "requestaccount-email-subj": "{{Identical|SITENAME e-mail address confirmation}}", "requestaccount-email-body": "This text is sent in an email. Parameters:\n* $1 - an IP address\n* $2 - a requested user name (no GENDER support)\n* $3 - a URL\n* $4 - a date/time\n* $5 - (Optional) a date\n* $6 - (Optional) a time", "requestaccount-email-subj-admin": "{{Identical|SITENAME account request}}", - "requestaccount-email-body-admin": "This message is the email body text send to a site admin whenever someone has requested a new account.\nMore parameters can be added in ConfirmAccount.php by adjusting $wgConfirmAdminEmailExtraFields.\n\nParameters:\n* $1 - username\n* $2 - URL", + "requestaccount-email-body-admin": "This message is the email body text send to a site admin whenever someone has requested a new account.\nMore parameters can be added by adjusting $wgConfirmAdminEmailExtraFields.\n\nParameters:\n* $1 - username\n* $2 - URL", "acct_request_throttle_hit": "Used as error message. Parameters:\n* $1 - number of accounts. value of $wgAccountRequestThrottle." } diff --git a/i18n/requestaccount/rif.json b/i18n/requestaccount/rif.json deleted file mode 100644 index a2a0d8c5..00000000 --- a/i18n/requestaccount/rif.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Amara-Amaziɣ", - "Jose77" - ] - }, - "requestaccount-real": "ⵉⵙⵎ ⵏ ⵜⵉⴷⵜ:" -} diff --git a/i18n/requestaccount/ro.json b/i18n/requestaccount/ro.json index 683ed9df..bc1430f8 100644 --- a/i18n/requestaccount/ro.json +++ b/i18n/requestaccount/ro.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "Andreyyshore", "KlaudiuMihaila", "Macofe", "Mihai", @@ -12,7 +13,7 @@ "requestaccount-login": "Cereți un cont", "requestaccount-text": "'''Completează și aplică următorul formular pentru a cere deschiderea unui cont de utilizator'''.\n\nAsigură-te că ai citit [[{{MediaWiki:Requestaccount-page}}|Termenii]] înainte de a cere deschiderea unui cont.\n\nDupă ce contul va fi aprobat, vei fi anunțat printr-un mesaj trimis prin e-mail, iar contul va putea fi accesat apelând [[Special:UserLogin|autentificare]].", "requestaccount-page": "{{ns:project}}:Termeni", - "requestaccount-dup": "'''Notă: Sunteţi deja autentificat cu un cont înregistrat.'''", + "requestaccount-dup": "'''Notă: Sunteți deja autentificat cu un cont înregistrat.'''", "requestaccount-leg-user": "Cont de utilizator", "requestaccount-leg-areas": "Arii principale de interes", "requestaccount-leg-person": "Informații personale", diff --git a/i18n/requestaccount/ru.json b/i18n/requestaccount/ru.json index 7e5fe89f..866b2f35 100644 --- a/i18n/requestaccount/ru.json +++ b/i18n/requestaccount/ru.json @@ -29,7 +29,7 @@ "requestaccount-ext-text": "Следующая информация будет сохранена в секрете и будет использована только для обработки данного запроса.\n\tВы можете перечислить способы связи, например, номер телефона, чтобы помочь в подтверждении идентичности.", "requestaccount-bio-text": "Попробуйте включить любые соответствующие полномочия в вашей биографии ниже.", "requestaccount-bio-text-i": "'''Ваша биография будет размещена на вашей личной странице.'''\nУбедитесь, что вы не возражаете против публикации этих сведений.", - "requestaccount-real": "Настоящее имя:", + "requestaccount-real": "Настоящее имя (необязательно):", "requestaccount-same": "(такая же как и настоящее имя)", "requestaccount-email": "Электронная почта:", "requestaccount-reqtype": "Должность:", diff --git a/i18n/requestaccount/scn.json b/i18n/requestaccount/scn.json new file mode 100644 index 00000000..eada7723 --- /dev/null +++ b/i18n/requestaccount/scn.json @@ -0,0 +1,10 @@ +{ + "@metadata": { + "authors": [ + "Ajeje Brazorf" + ] + }, + "requestaccount-leg-person": "Nfurmazzioni pirsunali", + "requestaccount-leg-other": "Àutri nfurmazzioni", + "requestaccount-notes": "Noti ulteriuri:" +} diff --git a/i18n/requestaccount/sd.json b/i18n/requestaccount/sd.json new file mode 100644 index 00000000..4ec166a1 --- /dev/null +++ b/i18n/requestaccount/sd.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Mehtab ahmed" + ] + }, + "requestaccount-dup": "'''نوٽ: توھان اڳ ئي رجسٽر ٿيل کاتي مان داخل ٿيل آھيو.'''", + "requestaccount-level-0": "مصنف" +} diff --git a/i18n/requestaccount/se.json b/i18n/requestaccount/se.json index a1ce2db4..40c96f31 100644 --- a/i18n/requestaccount/se.json +++ b/i18n/requestaccount/se.json @@ -4,5 +4,7 @@ "Yupik" ] }, - "requestaccount-leg-tos": "Geavahaneavttut" + "requestaccount-leg-tos": "Geavahaneavttut", + "requestaccount-real": "Albma namma (eaktodáhtolaš):", + "requestaccount-email": "E-poastačujuhus:" } diff --git a/i18n/requestaccount/sh-latn.json b/i18n/requestaccount/sh-latn.json new file mode 100644 index 00000000..0e0d361e --- /dev/null +++ b/i18n/requestaccount/sh-latn.json @@ -0,0 +1,20 @@ +{ + "@metadata": { + "authors": [ + "Winston Sung" + ] + }, + "requestaccount": "Zahtjev za račun", + "requestaccount-login": "Zahtjev za račun", + "requestaccount-text": "'''Ispunite sljedeći formular i pošaljite ga da biste zatražili suradnički račun'''.\n\nPročitajte [[{{MediaWiki:Requestaccount-page}}|Uslove uporabe]] prije traženja suradničkog računa.\n\nKad vam račun bude odobren, dobit ćete e-mail potvrdu i moći ćete se [[Special:UserLogin|prijaviti]] i koristiti.", + "requestaccount-page": "{{ns:project}}:Uslovi korištenja", + "requestaccount-dup": "'''Napomena: Već ste prijavljeni s registrovanim računom.'''", + "requestaccount-leg-user": "Korisnički račun", + "requestaccount-leg-areas": "Glavna područja interesa", + "requestaccount-leg-person": "Lični podaci", + "requestaccount-leg-other": "Ostali podaci", + "requestaccount-leg-tos": "Uslovi usluge", + "requestaccount-acc-text": "Dobiti ćete poruku elektroničkom poštom (''e-mail'') kao potvrdu da ste zatražili suradnički račun.\nMolimo odgovorite na tu poruku tako što ćete kliknuti na link u toj poruci.\nKad vam račun bude odobren/otvoren, lozinku ćete dobiti elektroničkom poštom.", + "requestaccount-areas-text": "Odaberite tematske oblasti ispod u kojima imate formalno iskustvo ili u kojima bi željeli najviše raditi.", + "requestaccount-ext-text": "Sljedeći podaci nisu dostupni drugima a koriste se samo u ovom upitu.\nMožda želite navesti broj telefona (mobitela) kao pomoć za potvrđivanje vašeg identiteta." +} diff --git a/i18n/requestaccount/sl.json b/i18n/requestaccount/sl.json index 27060c44..ae5e6a76 100644 --- a/i18n/requestaccount/sl.json +++ b/i18n/requestaccount/sl.json @@ -4,5 +4,44 @@ "Eleassar" ] }, - "requestaccount-level-0": "avtor" + "requestaccount": "Prošnja za uporabniški račun", + "requestaccount-login": "Zaprosite za račun", + "requestaccount-text": "'''Da zaprosite za uporabniški račun, izpolnite in pošljite naslednji obrazec.'''\n\nPreden zaprosite za račun, si preberite [[{{MediaWiki:Requestaccount-page}}|Pogoje uporabe]].\n\nKo bo račun odobren, boste po e-pošti prejeli obvestilo in se boste lahko v račun na [[Special:UserLogin|prijavni strani]] prijavili.", + "requestaccount-page": "{{ns:project}}:Pogoji uporabe", + "requestaccount-dup": "'''Pozor: Z registriranim računom ste že prijavljeni.'''", + "requestaccount-leg-user": "Uporabniški račun", + "requestaccount-leg-areas": "Glavna področja zanimanja", + "requestaccount-leg-person": "Osebni podatki", + "requestaccount-leg-other": "Druge informacije", + "requestaccount-leg-tos": "Pogoji uporabe", + "requestaccount-acc-text": "Ko boste prošnjo oddali, bo na vaš e-poštni naslov poslano potrditveno sporočilo. Naslov ne bo objavljen.\nOdgovorite s klikom potrditvene povezave, ki jo boste prejeli v e-pošti.\nKonočno vam bo po e-pošti poslano vaše geslo, ko bo vaš račun ustvarjen.", + "requestaccount-areas-text": "Spodaj izberite tematska področja, na katerih imate uradno strokovno znanje ali na kateri želite največ prispevati.", + "requestaccount-ext-text": "Naslednji podatki so zasebni in bodo uporabljeni samo za to prošnjo.\nMorda boste za pomoč pri potrditvi identifikacije želeli navesti podatke o stiku, kot je telefonska številka.", + "requestaccount-bio-text": "Poskusite v svojo biografijo spodaj vključiti vse ustrezne kvalifikacije.", + "requestaccount-bio-text-i": "'''Vaša biografija bo nastavljena kot začetna vsebina vaše uporabniške strani.'''\nPrepričajte se, da vam ustreza objavljanje takšnih informacij.", + "requestaccount-real": "Pravo ime:", + "requestaccount-same": "(enako kot pravo ime spodaj)", + "requestaccount-email": "E-poštni naslov:", + "requestaccount-reqtype": "Položaj:", + "requestaccount-level-0": "avtor", + "requestaccount-level-1": "urejevalec", + "requestaccount-bio": "Osebna biografija (samo golo besedilo):", + "requestaccount-attach": "Življenjepis ali CV (neobvezno):", + "requestaccount-notes": "Dodatne opombe:", + "requestaccount-urls": "Seznam spletišč, če obstajajo (vsako v svoji vrstici):", + "requestaccount-agree": "Potrditi morate, da je vaše pravo ime pravilno in da se strinjate z našimi pogoji uporabe.", + "requestaccount-inuse": "Uporabniško ime je že v uporabi v čakajoči prošnji za račun.", + "requestaccount-tooshort": "Vaša biografija mora biti dolga vsaj $1 {{PLURAL:$1|besedo|besedi|besede|besed}}.", + "requestaccount-emaildup": "Isti e-poštni naslov že uporablja druga čakajoča prošnja.", + "requestaccount-exts": "Pripeta vrsta datoteke ni dovoljena.", + "requestaccount-resub": "Vaš CV/življenjepis je treba iz varnostnih razlogov ponovno izbrati.\nČe ga ne želite več vključiti, pustite polje prazno.", + "requestaccount-tos": "Prebral_a sem in se strinjam, da bom upošteval_a [[{{MediaWiki:Requestaccount-page}}|pogoje uporabe]] za {{SITENAME}}.\nIme, ki sem ga navedel_la pod »Pravo ime«, je dejansko moje lastno pravo ime.", + "requestaccount-submit": "Zaprosi za račun", + "requestaccount-sent": "Vaša prošnja za račun je bila poslana in čaka na pregled.\n\tNa vaš e-poštni naslov je bilo poslano potrditveno e-poštno sporočilo.", + "requestaccount-econf": "Vaš e-poštni naslov je bil potrjen in bo kot tak naveden v vaši prošnji za račun.", + "requestaccount-email-subj": "Potrditev e-poštnega naslova v projektu {{SITENAME}}", + "requestaccount-email-body": "Nekdo, verjetno vi, je z IP-naslova $1 v {{SITENAME}} zaprosil za račun »$2« s tem e-poštnim naslovom.\n\nZa potrditev, da ta račun res pripada vam na {{SITENAME}}, odprite v brskalniku naslednjo povezavo:\n\n$3 \n\nČe bo račun ustvarjen, boste po e-pošti samo vi prejeli geslo.\nČe to *niste* vi, ne sledite povezavi.\nTa potrditvena koda poteče $4.", + "requestaccount-email-subj-admin": "Prošnja za račun {{SITENAME}}", + "requestaccount-email-body-admin": "$1 je zaprosil_a račun in čaka na odobritev.\nE-poštni naslov je bil potrjen. Prošnjo lahko potrdite tukaj:\n\n$2", + "acct_request_throttle_hit": "Žal ste {{PLURAL:$1|za 1 račun že zaprosili|zaprosili že za $1 računa|zaprosili že za $1 račune|zaprosili že za $1 računov}}.\nNovih prošenj ne morete poslati." } diff --git a/i18n/requestaccount/smn.json b/i18n/requestaccount/smn.json index 2b815cc4..eb52cc38 100644 --- a/i18n/requestaccount/smn.json +++ b/i18n/requestaccount/smn.json @@ -4,5 +4,8 @@ "Yupik" ] }, - "requestaccount-leg-tos": "Kevttimiävtuh" + "requestaccount-leg-user": "Kevtteetubdâldâh", + "requestaccount-leg-tos": "Kevttimiävtuh", + "requestaccount-real": "Olmâ nommâ (rijjâtátulâš tiätu):", + "requestaccount-email": "Šleđgâpostâčujottâs:" } diff --git a/i18n/requestaccount/sms.json b/i18n/requestaccount/sms.json index df5af8af..f8a29bef 100644 --- a/i18n/requestaccount/sms.json +++ b/i18n/requestaccount/sms.json @@ -4,5 +4,10 @@ "Yupik" ] }, - "requestaccount-leg-tos": "Ââʹnnem-määin" + "requestaccount-page": "{{ns:project}}:Ââʹnnem-määin", + "requestaccount-leg-user": "Õõʹnnitobdldõk", + "requestaccount-leg-other": "Jeeʹres teâđ", + "requestaccount-leg-tos": "Ââʹnnem-määin", + "requestaccount-email": "E-pååʹštaddrõs:", + "requestaccount-attach": "Merittloǥstõk leʹbe CV (vaʹlljeemnallšem):" } diff --git a/i18n/requestaccount/sq.json b/i18n/requestaccount/sq.json index 8106e40b..51e22759 100644 --- a/i18n/requestaccount/sq.json +++ b/i18n/requestaccount/sq.json @@ -1,7 +1,8 @@ { "@metadata": { "authors": [ - "Ammartivari" + "Ammartivari", + "Vanished 456321456" ] }, "requestaccount-level-1": "redaktor" diff --git a/i18n/requestaccount/sr-ec.json b/i18n/requestaccount/sr-ec.json index 62cedb10..48169819 100644 --- a/i18n/requestaccount/sr-ec.json +++ b/i18n/requestaccount/sr-ec.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "Aca", "Acamicamacaraca", "BadDog", "Kizule", @@ -21,13 +22,12 @@ "requestaccount-leg-person": "Личне информације", "requestaccount-leg-other": "Други подаци", "requestaccount-leg-tos": "Услови коришћења", - "requestaccount-real": "Право име:", + "requestaccount-real": "Право име (необавезно):", "requestaccount-same": "(истоветно правом имену)", "requestaccount-email": "Имејл адреса:", "requestaccount-reqtype": "Положај:", "requestaccount-level-0": "аутор", "requestaccount-level-1": "уређивач", - "requestaccount-info": "(?)", "requestaccount-bio": "Лична биографија (само прост текст):", "requestaccount-attach": "Резиме или CV (опционално):", "requestaccount-notes": "Додатне напомене:", diff --git a/i18n/requestaccount/sr-el.json b/i18n/requestaccount/sr-el.json index 64078bb6..15b5abd2 100644 --- a/i18n/requestaccount/sr-el.json +++ b/i18n/requestaccount/sr-el.json @@ -8,26 +8,32 @@ "Сербијана" ] }, + "requestaccount": "Zatraži nalog", + "requestaccount-login": "Zatraži nalog", + "requestaccount-page": "{{ns:project}}:Uslovi korišćenja", + "requestaccount-dup": "'''Napomena: Već ste prijavljeni sa registrovanim nalogom.'''", "requestaccount-leg-user": "Korisnički nalog", "requestaccount-leg-areas": "Glavne sfere interesovanja", - "requestaccount-leg-person": "Lični podaci", - "requestaccount-leg-other": "Druge informacije", + "requestaccount-leg-person": "Lične informacije", + "requestaccount-leg-other": "Drugi podaci", "requestaccount-leg-tos": "Uslovi korišćenja", - "requestaccount-real": "Pravo ime:", + "requestaccount-real": "Pravo ime (neobavezno):", "requestaccount-same": "(istovetno pravom imenu)", "requestaccount-email": "Imejl adresa:", - "requestaccount-reqtype": "Pozicija:", + "requestaccount-reqtype": "Položaj:", "requestaccount-level-0": "autor", - "requestaccount-level-1": "editor", + "requestaccount-level-1": "uređivač", "requestaccount-info": "(?)", "requestaccount-bio": "Lična biografija (samo prost tekst):", - "requestaccount-attach": "Rezime ili CV (neobavezno):", + "requestaccount-attach": "Rezime ili CV (opcionalno):", "requestaccount-notes": "Dodatne napomene:", "requestaccount-urls": "Spisak vebsajtova, ako ih ima (odvojeni novim linijama):", "requestaccount-agree": "Morate da potvrdite da ste dobro uneli svoje pravo ime i da se složite sa uslovima korišćenja.", "requestaccount-inuse": "Korisničko ime je već u upotrebi i čeka na odobrenje.", "requestaccount-tooshort": "Vaša biografija mora da sadrži najmanje $1 {{PLURAL:$1|reč|reči}}.", - "requestaccount-emaildup": "Drugi nalog, koji čeka odobrenje, već koristi ovu imejl adresu.", - "requestaccount-sent": "Vaš zahtev za nalogom je uspešno poslat i čeka na pregled.\nElektronska poruka za potvrdu je poslata na Vašu adresu Vaše elektronske pošte.", - "requestaccount-econf": "Vaša imejl adresa je bila potvrđena i biće prikazana kao takva u Vašem zahtevu za nalogom." + "requestaccount-emaildup": "Istu adresu koristi drugi zahtev za nalog koji je na čekanju.", + "requestaccount-submit": "Zatraži nalog", + "requestaccount-sent": "Vaš zahtev za nalogom je poslat i čeka na pregled.\nImejl za potvrdu je poslata na Vašu imejl adresu.", + "requestaccount-econf": "Vaša imejl adresa je potvrđena i biće navedena kao takva u vašem zahtevu za nalog.", + "requestaccount-email-subj": "{{SITENAME}} — potvrda imejl-adrese" } diff --git a/i18n/requestaccount/sv.json b/i18n/requestaccount/sv.json index dc71b853..6184b7ca 100644 --- a/i18n/requestaccount/sv.json +++ b/i18n/requestaccount/sv.json @@ -11,7 +11,8 @@ "Macofe", "Najami", "Per", - "WikiPhoenix" + "WikiPhoenix", + "Yupik" ] }, "requestaccount": "Ansök om konto", @@ -29,7 +30,7 @@ "requestaccount-ext-text": "Följande information kommer hållas hemlig och bara användas för denna ansökan.\nOm du vill kan du här ange kontaktinformation, t.ex. telefonnummer, för att lättare bekräfta din identitet.", "requestaccount-bio-text": "Försök att ange relevanta meriter och referenser i biografin nedan.", "requestaccount-bio-text-i": "'''Din biografi kommer att anges som det ursprungliga innehållet för din användarsida.'''\nSe till att du känner dig bekväm med att publicera sådan information.", - "requestaccount-real": "Riktigt namn:", + "requestaccount-real": "Riktigt namn (valfritt):", "requestaccount-same": "(samma som ditt riktiga namn)", "requestaccount-email": "E-postadress:", "requestaccount-reqtype": "Ställning:", diff --git a/i18n/requestaccount/th.json b/i18n/requestaccount/th.json index 64da1adf..547d284e 100644 --- a/i18n/requestaccount/th.json +++ b/i18n/requestaccount/th.json @@ -31,7 +31,6 @@ "requestaccount-reqtype": "ตำแหน่ง:", "requestaccount-level-0": "เจ้าของ", "requestaccount-level-1": "ผู้แก้ไข", - "requestaccount-info": "(?)", "requestaccount-bio": "ประวัติส่วนตัว (เฉพาะข้อความเท่านั้น):", "requestaccount-attach": "เรซูเม หรือ อัตชีวประวัติ (ไม่จำเป็นต้องใส่):", "requestaccount-notes": "รายละเอียดเพิ่มเติม:", diff --git a/i18n/requestaccount/tl.json b/i18n/requestaccount/tl.json index ad5bc79d..de424682 100644 --- a/i18n/requestaccount/tl.json +++ b/i18n/requestaccount/tl.json @@ -27,7 +27,6 @@ "requestaccount-reqtype": "Katungkulan:", "requestaccount-level-0": "may-akda", "requestaccount-level-1": "patnugot", - "requestaccount-info": "(?)", "requestaccount-bio": "Pansariling talambuhay (payak na teksto lamang):", "requestaccount-attach": "Buod ng mga karanasan sa hanapbuhay (maaaring wala nito):", "requestaccount-notes": "Karagdagang mga tala:", diff --git a/i18n/requestaccount/tr.json b/i18n/requestaccount/tr.json index 51f862d2..560ff3f6 100644 --- a/i18n/requestaccount/tr.json +++ b/i18n/requestaccount/tr.json @@ -8,7 +8,9 @@ "Macofe", "MuratTheTurkish", "Nemo bis", + "SaldırganSincap", "Suelnur", + "ToprakM", "Vito Genovese" ] }, @@ -27,7 +29,7 @@ "requestaccount-ext-text": "Aşağıdaki bilgiler gizli tutulmaktadır ve yalnızca bu istek için kullanılacaktır.\nKimlik doğrulamada yardımcı olması için telefon numarası gibi irtibat bilgilerini eklemek isteyebilirsiniz.", "requestaccount-bio-text": "Biyografinize aşağıdaki ilgili bilgileri eklemeyi deneyin.", "requestaccount-bio-text-i": "'''Biyografiniz, kullanıcı sayfanız için ilk içerik olarak ayarlanacaktır.'''\nBu tür bilgileri yayınladığınızdan emin olun.", - "requestaccount-real": "Gerçek ad:", + "requestaccount-real": "Gerçek ad (isteğe bağlı):", "requestaccount-same": "(gerçek isim ile aynı)", "requestaccount-email": "E-posta adresi:", "requestaccount-reqtype": "Konum:", diff --git a/i18n/requestaccount/uk.json b/i18n/requestaccount/uk.json index 5ee165f9..ee10229c 100644 --- a/i18n/requestaccount/uk.json +++ b/i18n/requestaccount/uk.json @@ -6,9 +6,12 @@ "Alex Khimich", "Andriykopanytsia", "Base", + "DDPAT", + "Ice bulldog", "Macofe", "Piramidion", "Prima klasy4na", + "Vlad5250", "Ата", "Тест" ] @@ -28,7 +31,7 @@ "requestaccount-ext-text": "Наступна інформація залишається приватною і буде використана лише для цього запиту.\nВи можете вказати контакти, як-то номер телефону, щоб допомогти в підтвердженні ідентичності.", "requestaccount-bio-text": "Спробуйте включити будь-які відповідні повноваження у біографії нижче.", "requestaccount-bio-text-i": "'''Вашу біографію буде розміщено як початковий вміст сторінки користувача.'''\nПереконайтесь, що Ви не проти публікації такої інформації.", - "requestaccount-real": "Справжнє ім'я:", + "requestaccount-real": "Справжнє ім'я (необов'язково)", "requestaccount-same": "(таке саме, як справжнє ім'я нижче)", "requestaccount-email": "Адреса електронної пошти:", "requestaccount-reqtype": "Посада:", @@ -43,8 +46,8 @@ "requestaccount-tooshort": "Ваша біографія повинна містити не менше $1 {{PLURAL:$1|1=слова|слів}}.", "requestaccount-emaildup": "В іншому незавершеному запиті на обліковий запис вказана така сама адреса електронної пошти.", "requestaccount-exts": "Недозволений тип прикріпленого файлу.", - "requestaccount-resub": "Ваш файл з CV/резюме треба вибрати повторно з міркувань безпеки.\nЗалиште поле пустим, якщо ви не хочете його відправляти.", - "requestaccount-tos": "Я прочитав (-ла) і згоден (-на) виконувати [[{{MediaWiki:Requestaccount-page}}|Умовами надання послуг]] {{SITENAME}}.\nІм'я, вказане в полі «Справжнє ім'я», насправді є моїм справжнім іменем.", + "requestaccount-resub": "Ваш файл з CV/резюме треба вибрати повторно з міркувань безпеки.\nЗалиште поле порожнім, якщо ви не хочете його відправляти.", + "requestaccount-tos": "Я прочитав(-ла) і згоден(-на) виконувати [[{{MediaWiki:Requestaccount-page}}|Умови надання послуг]] {{SITENAME}}.\nІм'я, вказане в полі «Справжнє ім'я», насправді є моїм справжнім іменем.", "requestaccount-submit": "Надіслати запит облікового запису", "requestaccount-sent": "Ваш запит на обліковий запис надіслано і зараз він очікує розгляду.\nЛист з підтвердженням було надіслано на Вашу електронну адресу.", "requestaccount-econf": "Ваша адреса електронної пошти була підтверджена і буде вказана у вашому запиті на обліковий запис.", diff --git a/i18n/requestaccount/yi.json b/i18n/requestaccount/yi.json index 55bc7438..b08cc736 100644 --- a/i18n/requestaccount/yi.json +++ b/i18n/requestaccount/yi.json @@ -1,8 +1,10 @@ { "@metadata": { "authors": [ + "Pacha Tchernof", "פוילישער" ] }, - "requestaccount-level-0": "מחבר" + "requestaccount-level-0": "מחבר", + "requestaccount-level-1": "רעדאַקטאָר" } diff --git a/i18n/requestaccount/yue.json b/i18n/requestaccount/yue-hant.json similarity index 92% rename from i18n/requestaccount/yue.json rename to i18n/requestaccount/yue-hant.json index 37ba7174..619bd986 100644 --- a/i18n/requestaccount/yue.json +++ b/i18n/requestaccount/yue-hant.json @@ -1,12 +1,14 @@ { "@metadata": { "authors": [ - "Kc kennylau" + "Winston Sung", + "Yueman" ] }, "requestaccount": "請求戶口", "requestaccount-login": "請求戶口", "requestaccount-text": "'''完成並遞交下面嘅表格去請求一個用戶戶口'''。\n\n\t請確認你響請求一個戶口之前,先讀過[[{{MediaWiki:Requestaccount-page}}|服務細則]]。\n\n\t一旦個戶口批准咗,你將會收到一個電郵通知訊息,噉個戶口就可以響[[Special:Userlogin]]度用。", + "requestaccount-page": "{{ns:project}}:使用條款", "requestaccount-dup": "'''留意: 你已經登入咗做一個已經註冊咗嘅戶口。'''", "requestaccount-acc-text": "當完成請求時,一封確認訊息會發到你嘅電郵地址。\n\t請響封電郵度撳個確認連結去回應佢。同時,當你個戶口開咗之後,你戶口個密碼將會電郵畀你。", "requestaccount-ext-text": "下面嘅資料會保密,而且只係會用響呢次請求度。\n\t你可能需要列示聯絡資料,好似電話號碼等去幫手證明你嘅確認。", @@ -14,9 +16,10 @@ "requestaccount-real": "真名:", "requestaccount-same": "(同真名一樣)", "requestaccount-email": "電郵地址:", + "requestaccount-level-0": "作者", "requestaccount-bio": "個人傳記:", "requestaccount-notes": "附加註解:", - "requestaccount-urls": "網站一覽,如有者 (用新行分開):", + "requestaccount-urls": "網站一覽,如有者(用新行分開):", "requestaccount-agree": "你一定要證明到你個真名係啱嘅,而且你同意我哋嘅服務細則。", "requestaccount-inuse": "個用戶名已經用來請求緊個戶口。", "requestaccount-tooshort": "你嘅傳記一定要最少有$1個字長。", diff --git a/i18n/requestaccount/zh-hans.json b/i18n/requestaccount/zh-hans.json index 6a1efeae..6a149a27 100644 --- a/i18n/requestaccount/zh-hans.json +++ b/i18n/requestaccount/zh-hans.json @@ -5,23 +5,27 @@ "A Retired User", "Bluedeck", "Chenxiaoqino", + "Diskdance", + "GuoPC", "Hydra", "Kuailong", "Liuxinyu970226", "Mark85296341", + "Peterxy12", "TianyinLee", + "Tranve", "Wilsonmess", "Xiaomingyan", "予弦", "神樂坂秀吉" ] }, - "requestaccount": "请求账户", - "requestaccount-login": "请求账户", - "requestaccount-text": "'''完成并递交下述表格,以请求用户账户'''。\n\n请确认您在请求账户之前,预先阅读过[[{{MediaWiki:Requestaccount-page}}|服务条款]]。\n\n一旦该账户获得批准,您将会收到一个电邮通知信息,该账户就可以在[[Special:UserLogin|登录页面]]中使用。", + "requestaccount": "请求账号", + "requestaccount-login": "请求账号", + "requestaccount-text": "'''完成并递交下述表格,以请求用户账号'''。\n\n请确认您在请求账号之前,预先阅读过[[{{MediaWiki:Requestaccount-page}}|服务条款]]。\n\n一旦该账号获得批准,您将会收到一个电子邮件通知信息,该账号就可以在[[Special:UserLogin|登录页面]]中使用。", "requestaccount-page": "{{ns:project}}:服务条款", - "requestaccount-dup": "'''注意:您已经作为注册账户登录。'''", - "requestaccount-leg-user": "用户账户", + "requestaccount-dup": "'''注意:您已经作为注册账号登录。'''", + "requestaccount-leg-user": "用户账号", "requestaccount-leg-areas": "主要的兴趣范围", "requestaccount-leg-person": "个人信息", "requestaccount-leg-other": "其他信息", @@ -31,7 +35,8 @@ "requestaccount-ext-text": "以下的资料将会保密,并且仅用于这次请求中。您可能需要列出电话号码等联络资料以帮助验证您的身份。", "requestaccount-bio-text": "尝试在下方您的个人简介中包含任何相关凭据。", "requestaccount-bio-text-i": "'''您的简履将会成为您的用户页的内容。'''请确保您可以发布该等资讯。", - "requestaccount-real": "真实姓名:", + "requestaccount-real": "真实姓名(可选):", + "requestaccount-real-i": "真实姓名为可选字段。若您提供真实姓名,会注明在您的作品上。", "requestaccount-same": "(下同真实姓名)", "requestaccount-email": "邮件地址:", "requestaccount-reqtype": "位置:", @@ -42,18 +47,18 @@ "requestaccount-notes": "附加注解:", "requestaccount-urls": "网站列表,如有(以新行分开):", "requestaccount-agree": "您一定要证明到您的真实名字是正确的,而且您同意我们的服务细则。", - "requestaccount-inuse": "该用户名已经用来请求账户。", + "requestaccount-inuse": "该用户名已经用来请求账号。", "requestaccount-tooshort": "您的传记必须最少有$1个{{PLURAL:$1|字}}的长度。", "requestaccount-emaildup": "另一个尚未确认的账户已经使用了此电子邮件地址。", "requestaccount-exts": "附件文件类型不允许。", "requestaccount-resub": "出于安全原因,您的简历或履历必须被重新选择。若您不想再加入一个,请将此栏留空。", "requestaccount-tos": "我已经阅读并同意持续遵守{{SITENAME}}的[[{{MediaWiki:Requestaccount-page}}|服务条款]]。我在“真实姓名”中指定的名字确实是我自己的真实姓名。", - "requestaccount-submit": "请求账户", + "requestaccount-submit": "请求账号", "requestaccount-sent": "您的账户请求已发出,现正等候复审。一封验证邮件已经发往您的电子邮件地址。", "requestaccount-econf": "您的电邮地址已经确认,将会在您的账户口请求中列示。", "requestaccount-email-subj": "{{SITENAME}}电子邮件地址确认", "requestaccount-email-body": "有人,可能是您,来自IP地址$1,在{{SITENAME}}使用此电子邮件地址请求了一个账户“$2”。\n\n要确认此{{SITENAME}}账户确实为您所有,请在浏览器打开此链接:\n\n$3\n\n如果账户已经创建,只有您才会收到该电邮密码。\n如果此账户*不*属于您,请不要点击此链接。\n此账户确认代码将于$4过期。", - "requestaccount-email-subj-admin": "{{SITENAME}}账户请求", + "requestaccount-email-subj-admin": "{{SITENAME}}账号请求", "requestaccount-email-body-admin": "$1请求了一个账户并正在等待批准。\n电子邮件地址已确认。您可以在此确认请求:\n\n$2", - "acct_request_throttle_hit": "抱歉,您已经请求了{{PLURAL:$1|$1个账户}}。您不可以请求更多个账户。" + "acct_request_throttle_hit": "抱歉,您已经请求了{{PLURAL:$1|$1个账号}}。您不可以请求更多账号。" } diff --git a/i18n/requestaccount/zh-hant.json b/i18n/requestaccount/zh-hant.json index c7299df6..de9b66a9 100644 --- a/i18n/requestaccount/zh-hant.json +++ b/i18n/requestaccount/zh-hant.json @@ -3,6 +3,7 @@ "authors": [ "Cwlin0416", "Justincheng12345", + "Kly", "LNDDYL", "LaMagiaaa", "Liuxinyu970226", @@ -10,6 +11,7 @@ "Mark85296341", "Suchichi02", "Waihorace", + "Winston Sung", "Xiplus" ] }, @@ -28,7 +30,8 @@ "requestaccount-ext-text": "以下的資料將會保密,而且只是會用在這次請求中。\n\t您可能需要列示聯絡資料,像電話號碼等去幫助證明您的確認。", "requestaccount-bio-text": "您傳記將會設定成在您使用者頁面中的預設內容,嘗試包含証明。", "requestaccount-bio-text-i": "'''你的簡履將會成為你的使用者頁面的內容。'''\n請確保你可以發佈該等資訊。", - "requestaccount-real": "真實名字:", + "requestaccount-real": "真實姓名(可選):", + "requestaccount-real-i": "真實姓名為可選欄位。若您提供真實姓名,會註明在您的作品上。", "requestaccount-same": "(同真實名字)", "requestaccount-email": "電子郵件地址:", "requestaccount-reqtype": "位置", @@ -48,9 +51,9 @@ "requestaccount-submit": "請求帳號", "requestaccount-sent": "您的帳戶請求已經發出,現正等候複審。\n一個確認電郵已傳送至您的電郵。", "requestaccount-econf": "您的電郵位址已經確認,將會在您的帳戶口請求中列示。", - "requestaccount-email-subj": "{{SITENAME}} Email 地址確認", + "requestaccount-email-subj": "{{SITENAME}}電子郵件地址確認", "requestaccount-email-body": "有人,可能是您,由 IP 位址 $1 ,在{{SITENAME}}中用這個電郵地址請求一個名叫 「$2」 的帳號。\n\n要確認在{{SITENAME}}上的這個帳號真的屬於您,請在您的瀏覽器中開啟這個連結:\n\n$3\n\n如果該帳號已經建立,只有您才會收到該電郵密碼。\n如果這個帳號*不是*屬於您的話,不要點這個連結。\n這個確認碼將會在 $4 過期。", - "requestaccount-email-subj-admin": "{{SITENAME}} 帳號請求", + "requestaccount-email-subj-admin": "{{SITENAME}}帳號申請", "requestaccount-email-body-admin": "$1 請求了一個帳號並正在等待核准。\n電子郵件地址已確認。要核准帳號,請點選:\n\n$2", "acct_request_throttle_hit": "抱歉,您已經請求了 {{PLURAL:$1|1 個|$1 個}} 帳號。\n您不可以請求更多帳號。" } diff --git a/i18n/usercredentials/ary.json b/i18n/usercredentials/ary.json new file mode 100644 index 00000000..260b0d6a --- /dev/null +++ b/i18n/usercredentials/ary.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Ideophagous" + ] + }, + "usercredentials-user": "السمية د لخدايمي:" +} diff --git a/i18n/usercredentials/ba.json b/i18n/usercredentials/ba.json index 264ba7b4..6ab1e8b1 100644 --- a/i18n/usercredentials/ba.json +++ b/i18n/usercredentials/ba.json @@ -2,27 +2,28 @@ "@metadata": { "authors": [ "Sagan", + "З. ӘЙЛЕ", "Ләйсән" ] }, - "usercredentials": "Ҡатнашыуҙы раҫлаусы мәғлүмәт", - "usercredentials-leg": "Ҡатнашыусы тураһында раҫланған мәғлүмәтте эҙләү", + "usercredentials": "Ҡатнашыусы тураһында раҫлау мәғлүмәте", + "usercredentials-leg": "Ҡатнашыусы тураһында раҫлау мәғлүмәтен эҙләү", "usercredentials-user": "Ҡатнашыусы исеме:", - "usercredentials-text": "Түбәндә ҡатнашыусының иҫәп яҙмаһы тураһында тикшерелгән мәғлүмәт бирелгән.", + "usercredentials-text": "Түбәндә ҡатнашыусының һайланған иҫәп яҙмаһы тураһында тикшерелгән раҫлау мәғлүмәте бирелгән.", "usercredentials-leg-user": "Иҫәп яҙмаһы", - "usercredentials-leg-areas": "Ҡыҙыҡһындырған төп өлкәләр", + "usercredentials-leg-areas": "Төп ҡыҙыҡһыныу өлкәләре", "usercredentials-leg-person": "Шәхси мәғлүмәттәр", "usercredentials-leg-other": "Башҡа мәғлүмәт", - "usercredentials-leg-ip": "IP-адрес мәғлүмәтә", - "usercredentials-email": "Электрон почта адресы", + "usercredentials-leg-ip": "IP-адрес мәғлүмәте", + "usercredentials-email": "Электрон почта адресы:", "usercredentials-real": "Ысын исем:", - "usercredentials-bio": "Биография", - "usercredentials-attach": "Резюме:", - "usercredentials-notes": "Өҫтәлмә иҫкәртеү", + "usercredentials-bio": "Биография:", + "usercredentials-attach": "Һығымта:", + "usercredentials-notes": "Өҫтәмә иҫкәртеүҙәр:", "usercredentials-urls": "Веб-сайттар исемлеге:", - "usercredentials-ip": "IP-адрес:", - "usercredentials-xff": "Төп нөсхә X-Forwarded-For:", - "usercredentials-agent": "Оригиналь User-Agent:", + "usercredentials-ip": "Сығанаҡ IP-адрес:", + "usercredentials-xff": "Сығанаҡ X-Forwarded-For:", + "usercredentials-agent": "Сығанаҡ User-Agent:", "usercredentials-member": "Хоҡуҡтар:", - "usercredentials-badid": "Ҡатнашыусы тураһында тикшерелгән мәғлүмәт табылманы. Исемдең дөрөҫ яҙылышын тикшерегеҙ." + "usercredentials-badid": "Ҡатнашыусы тураһында раҫлау мәғлүмәте табылманы. Исемдең дөрөҫ яҙылышын тикшерегеҙ." } diff --git a/i18n/usercredentials/fa.json b/i18n/usercredentials/fa.json index e602025f..e1eab251 100644 --- a/i18n/usercredentials/fa.json +++ b/i18n/usercredentials/fa.json @@ -2,6 +2,8 @@ "@metadata": { "authors": [ "Armin1392", + "Beginneruser", + "Ebrahim", "Ebraminio", "Mjbmr", "Reza1615", @@ -11,7 +13,7 @@ "usercredentials": "مشخصات کاربری", "usercredentials-leg": "مراجعه به اعتبار‌های تأیید برای یک کاربر", "usercredentials-user": "نام کاربری:", - "usercredentials-text": "در زیر اعتبارهای انتخاب شدهٔ حساب کاربر معتبر هستند.", + "usercredentials-text": "در زیر اعتبارهای انتخاب شدهٔ حساب کاربری معتبر هستند.", "usercredentials-leg-user": "حساب کاربری", "usercredentials-leg-areas": "زمینه‌های اصلی مورد علاقه", "usercredentials-leg-person": "اطلاعات شخصی", @@ -26,6 +28,6 @@ "usercredentials-ip": "نشانی آی‌پی اصلی:", "usercredentials-xff": "ایکس-فرستاده شد اصلی برای:", "usercredentials-agent": "یوزر-ایجنت اصلی:", - "usercredentials-member": "دسترسی‌ها:", + "usercredentials-member": "اختیارات:", "usercredentials-badid": "هیچ اعتبارنامه‌ای برای این کاربر پیدا نشد.\nاملای نام را به درستی بررسی کنید." } diff --git a/i18n/usercredentials/fr.json b/i18n/usercredentials/fr.json index ea9f13cd..a43518df 100644 --- a/i18n/usercredentials/fr.json +++ b/i18n/usercredentials/fr.json @@ -12,30 +12,32 @@ "Peter17", "PieRRoMaN", "Sherbrooke", + "Thibaut120094", "Tuxxic", "Urhixidur", "Verdy p", + "Wladek92", "Zetud" ] }, "usercredentials": "Références de l'utilisateur", "usercredentials-leg": "Vérification confirmée des références d'un utilisateur.", - "usercredentials-user": "Nom d’utilisateur :", - "usercredentials-text": "Ci-dessous figurent les justificatifs validés pour le compte utilisateur sélectionné.", - "usercredentials-leg-user": "Compte utilisateur", - "usercredentials-leg-areas": "Centres d'intérêts principaux", + "usercredentials-user": "Nom d’utilisateur :", + "usercredentials-text": "Ci-dessous figurent les références validées pour le compte utilisateur sélectionné.", + "usercredentials-leg-user": "Compte d’utilisateur", + "usercredentials-leg-areas": "Principaux centres d’intérêt", "usercredentials-leg-person": "Informations personnelles", "usercredentials-leg-other": "Autres informations", - "usercredentials-leg-ip": "données d'adresse IP", + "usercredentials-leg-ip": "Données d’adresse IP", "usercredentials-email": "Adresse de courriel :", - "usercredentials-real": "Nom réel :", - "usercredentials-bio": "Biographie :", - "usercredentials-attach": "CV :", - "usercredentials-notes": "Notes supplémentaires :", - "usercredentials-urls": "Liste des sites internet :", - "usercredentials-ip": "Adresse IP initiale :", - "usercredentials-xff": "X-Forwarded-For d'origine:", - "usercredentials-agent": "User-Agent d'origine:", - "usercredentials-member": "Droits :", - "usercredentials-badid": "Aucune référence trouvée pour cet utilisateur. Vérifiez que le nom soit bien rédigé." + "usercredentials-real": "Vrai nom :", + "usercredentials-bio": "Biographie :", + "usercredentials-attach": "Curriculum vitæ :", + "usercredentials-notes": "Notes supplémentaires :", + "usercredentials-urls": "Liste de sites web :", + "usercredentials-ip": "Adresse IP d’origine :", + "usercredentials-xff": "Adresse du mandant (X-Forwarded-For) d’origine :", + "usercredentials-agent": "Agent utilisateur (User-Agent) d’origine :", + "usercredentials-member": "Droits :", + "usercredentials-badid": "Aucune référence trouvée pour cet utilisateur.\nVérifiez que le nom est correctement rédigé." } diff --git a/i18n/usercredentials/gl.json b/i18n/usercredentials/gl.json index 3bc3800d..36f0631b 100644 --- a/i18n/usercredentials/gl.json +++ b/i18n/usercredentials/gl.json @@ -7,7 +7,7 @@ "Xosé" ] }, - "usercredentials": "Credenciais do usuario", + "usercredentials": "Credenciais de usuario", "usercredentials-leg": "Verificar as credenciais confirmadas dun usuario", "usercredentials-user": "Nome de usuario:", "usercredentials-text": "A continuación están as credenciais validadas das contas de usuario seleccionadas.", @@ -26,5 +26,5 @@ "usercredentials-xff": "X-Forwarded-For orixinal:", "usercredentials-agent": "Axente de usuario orixinal:", "usercredentials-member": "Dereitos:", - "usercredentials-badid": "Non se atoparon credenciais para este usuario. Comprobe que o nome estea escrito correctamente." + "usercredentials-badid": "Non se atoparon credenciais para este usuario.\nComproba que o nome estea escrito correctamente." } diff --git a/i18n/usercredentials/gv.json b/i18n/usercredentials/gv.json index ea22f57d..0cc48401 100644 --- a/i18n/usercredentials/gv.json +++ b/i18n/usercredentials/gv.json @@ -4,14 +4,14 @@ "MacTire02" ] }, - "usercredentials-user": "Dt'ennym ymmydeyr:", + "usercredentials-user": "Dt’ennym ymmydeyr:", "usercredentials-leg-user": "Coontys ymmydeyr", - "usercredentials-leg-person": "Oayllys persoonagh", - "usercredentials-leg-other": "Oayllys elley", - "usercredentials-email": "Post-L:", + "usercredentials-leg-person": "Fysseree phersoonagh", + "usercredentials-leg-other": "Fysseree elley", + "usercredentials-email": "Enmys post-L:", "usercredentials-real": "Feer-ennym:", "usercredentials-bio": "Beashnys:", "usercredentials-urls": "Rolley ynnydyn-eggey:", - "usercredentials-ip": "Enmys IP bunneydagh:", + "usercredentials-ip": "Bun-enmys IP:", "usercredentials-member": "Kiartyn:" } diff --git a/i18n/usercredentials/hak.json b/i18n/usercredentials/hak-latn.json similarity index 82% rename from i18n/usercredentials/hak.json rename to i18n/usercredentials/hak-latn.json index e9a9972f..f34fe0bf 100644 --- a/i18n/usercredentials/hak.json +++ b/i18n/usercredentials/hak-latn.json @@ -1,7 +1,7 @@ { "@metadata": { "authors": [ - "Hakka" + "Winston Sung" ] }, "usercredentials-user": "Yung-fu-miàng:" diff --git a/i18n/usercredentials/he.json b/i18n/usercredentials/he.json index 342e958f..f9bcc4a6 100644 --- a/i18n/usercredentials/he.json +++ b/i18n/usercredentials/he.json @@ -10,7 +10,7 @@ "usercredentials": "ההסמכות של המשתמש", "usercredentials-leg": "נתוני ההאמנה של המשתמש שאושרו בתהליך האיתור", "usercredentials-user": "שם המשתמש:", - "usercredentials-text": "להלן נתוני ההאמנה המאומתים של חשבון המשתמש הנבחר.", + "usercredentials-text": "להלן נתוני ההאמנה שתקינותם נבדקה של חשבון המשתמש הנבחר.", "usercredentials-leg-user": "חשבון משתמש", "usercredentials-leg-areas": "תחומי עניין עיקריים", "usercredentials-leg-person": "נתונים אישיים", diff --git a/i18n/usercredentials/hi.json b/i18n/usercredentials/hi.json index 1493c612..b5cafd13 100644 --- a/i18n/usercredentials/hi.json +++ b/i18n/usercredentials/hi.json @@ -3,12 +3,13 @@ "authors": [ "Kaustubh", "Kiranmayee", + "Saurmandal", "Siddhartha Ghai", "आलोक" ] }, - "usercredentials": "सदस्य के क्रेडेन्शियल्स", - "usercredentials-leg": "सदस्यके प्रमाणित किये हुए क्रेडेन्शियल्स देखें", + "usercredentials": "सदस्य के क्रेडेंशियल्स", + "usercredentials-leg": "सदस्य के प्रमाणित किए हुए क्रेडेंशियल्स देखें", "usercredentials-user": "सदस्यनाम:", "usercredentials-text": "नीचे चुने हुए सदस्य खाते के प्रमाणित किये हुए क्रेडेन्शियल्स दिये हुए हैं।", "usercredentials-leg-user": "सदस्य खाता", diff --git a/i18n/usercredentials/hy.json b/i18n/usercredentials/hy.json new file mode 100644 index 00000000..320751d8 --- /dev/null +++ b/i18n/usercredentials/hy.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Սերգեյ Սաֆարյան" + ] + }, + "usercredentials-user": "Օգտանուն՝" +} diff --git a/i18n/usercredentials/id.json b/i18n/usercredentials/id.json index 97ade651..34bafb1f 100644 --- a/i18n/usercredentials/id.json +++ b/i18n/usercredentials/id.json @@ -2,6 +2,7 @@ "@metadata": { "authors": [ "Bennylin", + "Daud I.F. Argana", "Irwangatot", "IvanLanin", "Iwan Novirion", @@ -25,6 +26,7 @@ "usercredentials-notes": "Catatan tambahan:", "usercredentials-urls": "Daftar situs web:", "usercredentials-ip": "Alamat IP asal:", + "usercredentials-agent": "Agen-Pengguna asal:", "usercredentials-member": "Hak:", "usercredentials-badid": "Tidak ditemukan Kredensial untuk pengguna ini,\nPeriksa! apakah nama dieja dengan benar." } diff --git a/i18n/usercredentials/io.json b/i18n/usercredentials/io.json index 529343df..faad6fb7 100644 --- a/i18n/usercredentials/io.json +++ b/i18n/usercredentials/io.json @@ -4,5 +4,6 @@ "Joao Xavier" ] }, - "usercredentials-user": "Nomo dil uzero:" + "usercredentials-user": "Nomo dil uzero:", + "usercredentials-email": "E-postal adreso:" } diff --git a/i18n/usercredentials/is.json b/i18n/usercredentials/is.json index 8f867dfe..e45c9139 100644 --- a/i18n/usercredentials/is.json +++ b/i18n/usercredentials/is.json @@ -2,6 +2,7 @@ "@metadata": { "authors": [ "S.Örvarr.S", + "Stefán Örvar Sigmundsson", "Sveinn í Felli", "Ævar Arnfjörð Bjarmason" ] @@ -11,12 +12,12 @@ "usercredentials-leg-areas": "Aðal áhugamál", "usercredentials-leg-person": "Persónulegar upplýsingar", "usercredentials-leg-other": "Aðrar upplýsingar", - "usercredentials-email": "Netfang:", + "usercredentials-email": "Tölvupóstfang:", "usercredentials-real": "Raunverulegt nafn:", "usercredentials-bio": "Æviágrip:", "usercredentials-attach": "Ferilskrá:", "usercredentials-notes": "Viðbótarskýring:", "usercredentials-urls": "Listi yfir vefsíður:", - "usercredentials-ip": "Upprunalegt vistfang:", + "usercredentials-ip": "Upprunalegt IP-staðfang:", "usercredentials-member": "Réttindi:" } diff --git a/i18n/usercredentials/it.json b/i18n/usercredentials/it.json index a4307259..01f2a574 100644 --- a/i18n/usercredentials/it.json +++ b/i18n/usercredentials/it.json @@ -3,6 +3,7 @@ "authors": [ "Beta16", "Darth Kule", + "Dream Indigo", "Melos", "Pietrodn", "Stefano-c" @@ -27,5 +28,5 @@ "usercredentials-xff": "X-Forwarded-For originale:", "usercredentials-agent": "User-Agent originale:", "usercredentials-member": "Diritti:", - "usercredentials-badid": "Nessuna credenziale trovata per questo utente.\nControlla che il nome sia scritto correttamente." + "usercredentials-badid": "Nessuna credenziale trovata per quest'utente.\nControlla che il nome sia scritto correttamente." } diff --git a/i18n/usercredentials/ky.json b/i18n/usercredentials/ky.json new file mode 100644 index 00000000..6044dc71 --- /dev/null +++ b/i18n/usercredentials/ky.json @@ -0,0 +1,13 @@ +{ + "@metadata": { + "authors": [ + "Bosogo" + ] + }, + "usercredentials-user": "Колдонуучунун аты:", + "usercredentials-leg-user": "Аккаунт", + "usercredentials-leg-person": "Жеке маалымат", + "usercredentials-leg-other": "Башка маалымат", + "usercredentials-email": "Электрондук почта:", + "usercredentials-notes": "Кошумча эскертмелер:" +} diff --git a/i18n/usercredentials/lb.json b/i18n/usercredentials/lb.json index 88ca70b8..b90bb486 100644 --- a/i18n/usercredentials/lb.json +++ b/i18n/usercredentials/lb.json @@ -3,10 +3,11 @@ "authors": [ "Les Meloures", "Robby", - "Soued031" + "Soued031", + "Volvox" ] }, - "usercredentials": "Referenzen déi de Benotzer uginn huet:", + "usercredentials": "Umeldungsinformatioune vum Benotzer", "usercredentials-leg": "Confirméiert Referenze vun engem Benotzer nokucken", "usercredentials-user": "Benotzernumm:", "usercredentials-text": "Hei ënnendrënner stinn déi confirméiert Benotzer-Berechtigungsnoweiser fir de gewielte Benotzerkont.", @@ -15,7 +16,7 @@ "usercredentials-leg-person": "Perséinlech Informatiounen", "usercredentials-leg-other": "Aner Informatiounen", "usercredentials-leg-ip": "Donnéeë vun der IP-Adress", - "usercredentials-email": "E-mail:", + "usercredentials-email": "E-Mail-Adress:", "usercredentials-real": "Richtegen Numm:", "usercredentials-bio": "Biographie:", "usercredentials-attach": "Liewenslaf:", diff --git a/i18n/usercredentials/lt.json b/i18n/usercredentials/lt.json index 8c659a8c..2fcf2da0 100644 --- a/i18n/usercredentials/lt.json +++ b/i18n/usercredentials/lt.json @@ -3,10 +3,13 @@ "authors": [ "Eitvys200", "Homo", + "Nokeoo", "Tomasdd" ] }, + "usercredentials": "Naudotojo kredencialai", "usercredentials-user": "Naudotojo vardas:", + "usercredentials-text": "Žemiau yra patvirtinti pasirinktos naudotojo paskyros kredencialai.", "usercredentials-leg-user": "Naudotojo paskyra", "usercredentials-leg-areas": "Pagrindinės interesų sritys", "usercredentials-leg-person": "Asmeninė informacija", @@ -19,5 +22,6 @@ "usercredentials-notes": "Papildomos pastabos:", "usercredentials-urls": "Tinklapių sąrašas:", "usercredentials-ip": "Originalus IP adresas:", - "usercredentials-member": "Teisės:" + "usercredentials-member": "Teisės:", + "usercredentials-badid": "Šio naudotojo kredencialų nerasta.\nPatikrinkite, ar vardas parašytas teisingai." } diff --git a/i18n/usercredentials/mk.json b/i18n/usercredentials/mk.json index 665a033c..38c88e7a 100644 --- a/i18n/usercredentials/mk.json +++ b/i18n/usercredentials/mk.json @@ -5,7 +5,7 @@ "Brest" ] }, - "usercredentials": "Препораки за корисник", + "usercredentials": "Корисничко овластување", "usercredentials-leg": "Проверете ги потврдените препораки за некој корисник", "usercredentials-user": "Корисничко име:", "usercredentials-text": "Подолу се прикажани потврдените препораки за избраната корисничка сметка.", diff --git a/i18n/usercredentials/nah.json b/i18n/usercredentials/nah.json index fa0aadb2..3a990208 100644 --- a/i18n/usercredentials/nah.json +++ b/i18n/usercredentials/nah.json @@ -2,11 +2,12 @@ "@metadata": { "authors": [ "Akapochtli", - "Fluence" + "Fluence", + "Languaeditor" ] }, "usercredentials-user": "Tequitiuhcatocaitl:", - "usercredentials-leg-user": "Tlatequitiltilīlli cuentah", + "usercredentials-leg-user": "Tekitiketl kwentah", "usercredentials-email": "E-mail:", "usercredentials-real": "Melāhuac motōcā:", "usercredentials-attach": "Resumé/CV", diff --git a/i18n/usercredentials/pa.json b/i18n/usercredentials/pa.json new file mode 100644 index 00000000..130ac27c --- /dev/null +++ b/i18n/usercredentials/pa.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Cabal" + ] + }, + "usercredentials-leg-person": "ਨਿੱਜੀ ਜਾਣਕਾਰੀ", + "usercredentials-leg-other": "ਹੋਰ ਜਾਣਕਾਰੀ" +} diff --git a/i18n/usercredentials/ps.json b/i18n/usercredentials/ps.json index 40ae4cb4..8d8a6cbe 100644 --- a/i18n/usercredentials/ps.json +++ b/i18n/usercredentials/ps.json @@ -1,10 +1,11 @@ { "@metadata": { "authors": [ - "Ahmed-Najib-Biabani-Ibrahimkhel" + "Ahmed-Najib-Biabani-Ibrahimkhel", + "شاه زمان پټان" ] }, - "usercredentials-user": "کارن-نوم:", + "usercredentials-user": "کارن‌نوم:", "usercredentials-leg-user": "گڼون", "usercredentials-leg-person": "ځاني مالومات", "usercredentials-leg-other": "نور مالومات", diff --git a/i18n/usercredentials/rif.json b/i18n/usercredentials/rif.json index a9aa8366..a014187d 100644 --- a/i18n/usercredentials/rif.json +++ b/i18n/usercredentials/rif.json @@ -1,9 +1,10 @@ { "@metadata": { "authors": [ + "AjellidnArif", "Amara-Amaziɣ", "Jose77" ] }, - "usercredentials-real": "ⵉⵙⵎ ⵏ ⵜⵉⴷⵜ:" + "usercredentials-real": "Isem n tidett:" } diff --git a/i18n/usercredentials/scn.json b/i18n/usercredentials/scn.json index e054aefe..dc543577 100644 --- a/i18n/usercredentials/scn.json +++ b/i18n/usercredentials/scn.json @@ -1,8 +1,16 @@ { "@metadata": { "authors": [ + "Ajeje Brazorf", "Aushulz" ] }, - "usercredentials-email": "Nnirizzu email:" + "usercredentials-user": "Nomu utenti:", + "usercredentials-leg-person": "Nfurmazzioni pirsunali", + "usercredentials-leg-other": "Àutri nfurmazzioni", + "usercredentials-email": "Nnirizzu email:", + "usercredentials-bio": "Biografìa:", + "usercredentials-notes": "Àutri noti:", + "usercredentials-urls": "Elencu dî siti web:", + "usercredentials-ip": "Nnirizzu IP orìgginali:" } diff --git a/i18n/usercredentials/sd.json b/i18n/usercredentials/sd.json new file mode 100644 index 00000000..d965d39d --- /dev/null +++ b/i18n/usercredentials/sd.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Mehtab ahmed" + ] + }, + "usercredentials-member": "حقَ:" +} diff --git a/i18n/usercredentials/se.json b/i18n/usercredentials/se.json new file mode 100644 index 00000000..ee341997 --- /dev/null +++ b/i18n/usercredentials/se.json @@ -0,0 +1,10 @@ +{ + "@metadata": { + "authors": [ + "Yupik" + ] + }, + "usercredentials-user": "Geavaheaddjinamma:", + "usercredentials-email": "E-poastačujuhus:", + "usercredentials-real": "Albma namma:" +} diff --git a/i18n/usercredentials/sh-latn.json b/i18n/usercredentials/sh-latn.json new file mode 100644 index 00000000..80c59148 --- /dev/null +++ b/i18n/usercredentials/sh-latn.json @@ -0,0 +1,20 @@ +{ + "@metadata": { + "authors": [ + "Winston Sung" + ] + }, + "usercredentials-user": "Korisničko ime:", + "usercredentials-leg-user": "Korisnički račun", + "usercredentials-leg-areas": "Glavna područja interesa", + "usercredentials-leg-person": "Lični podaci", + "usercredentials-leg-other": "Ostali podaci", + "usercredentials-email": "Adresa e-pošte:", + "usercredentials-real": "Pravo ime:", + "usercredentials-bio": "Biografija:", + "usercredentials-attach": "Rezime/CV:", + "usercredentials-notes": "Dodatne napomene:", + "usercredentials-urls": "Spisak web sajtova:", + "usercredentials-ip": "Izvorna IP adresa:", + "usercredentials-member": "Prava:" +} diff --git a/i18n/usercredentials/sje.json b/i18n/usercredentials/sje.json new file mode 100644 index 00000000..12655d64 --- /dev/null +++ b/i18n/usercredentials/sje.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Yupik" + ] + }, + "usercredentials-user": "Adnejnamma:" +} diff --git a/i18n/usercredentials/sl.json b/i18n/usercredentials/sl.json index cf1efeda..1c2d388e 100644 --- a/i18n/usercredentials/sl.json +++ b/i18n/usercredentials/sl.json @@ -1,7 +1,8 @@ { "@metadata": { "authors": [ - "Dbc334" + "Dbc334", + "Eleassar" ] }, "usercredentials": "Uporabniške poverilnice", @@ -10,8 +11,8 @@ "usercredentials-text": "Spodaj so navedene potrjene poverilnice izbranega uporabniškega računa.", "usercredentials-leg-user": "Uporabniški račun", "usercredentials-leg-areas": "Glavna področja zanimanja", - "usercredentials-leg-person": "Osebne informacije", - "usercredentials-leg-other": "Druge informacije", + "usercredentials-leg-person": "Osebni podatki", + "usercredentials-leg-other": "Drugi podatki", "usercredentials-leg-ip": "Podatki IP-naslova", "usercredentials-email": "E-pošta:", "usercredentials-real": "Pravo ime:", @@ -19,9 +20,9 @@ "usercredentials-attach": "Življenjepis/CV:", "usercredentials-notes": "Dodatne opombe:", "usercredentials-urls": "Seznam spletnih strani:", - "usercredentials-ip": "Izvirni IP-naslov:", - "usercredentials-xff": "Izvirni X-Forwarded-For:", - "usercredentials-agent": "Izvirni User-Agent:", + "usercredentials-ip": "Izvorni IP-naslov:", + "usercredentials-xff": "Izvorni X-Forwarded-For:", + "usercredentials-agent": "Izvorni uporabniški agent:", "usercredentials-member": "Pravice:", "usercredentials-badid": "Za uporabnika nisem našel nobenih poverilnic.\nPreverite, ali ste ime pravilno črkovali." } diff --git a/i18n/usercredentials/smn.json b/i18n/usercredentials/smn.json new file mode 100644 index 00000000..40d254b1 --- /dev/null +++ b/i18n/usercredentials/smn.json @@ -0,0 +1,13 @@ +{ + "@metadata": { + "authors": [ + "Seipinne", + "Yupik" + ] + }, + "usercredentials-user": "Kevtteenommâ:", + "usercredentials-leg-user": "Kevtteetubdâldâh", + "usercredentials-email": "Šleđgâpostâčujottâs:", + "usercredentials-real": "Olmâ nommâ:", + "usercredentials-member": "Vuoigâdvuođah:" +} diff --git a/i18n/usercredentials/sms.json b/i18n/usercredentials/sms.json new file mode 100644 index 00000000..70f3fdf2 --- /dev/null +++ b/i18n/usercredentials/sms.json @@ -0,0 +1,13 @@ +{ + "@metadata": { + "authors": [ + "Yupik" + ] + }, + "usercredentials-user": "Õõʹnninõmm:", + "usercredentials-leg-user": "Õõʹnnitobdldõk", + "usercredentials-leg-other": "Jeeʹres teâđ", + "usercredentials-email": "E-pååʹštaddrõs:", + "usercredentials-ip": "Õõʹnni IP-addrõs:", + "usercredentials-member": "Vuõiggâdvuõđ:" +} diff --git a/i18n/usercredentials/sr-ec.json b/i18n/usercredentials/sr-ec.json index 37b3a61d..b5e09138 100644 --- a/i18n/usercredentials/sr-ec.json +++ b/i18n/usercredentials/sr-ec.json @@ -1,6 +1,7 @@ { "@metadata": { "authors": [ + "Aca", "Acamicamacaraca", "BadDog", "Milicevic01", diff --git a/i18n/usercredentials/sr-el.json b/i18n/usercredentials/sr-el.json index cb7bd3a7..cffa8ec4 100644 --- a/i18n/usercredentials/sr-el.json +++ b/i18n/usercredentials/sr-el.json @@ -10,14 +10,15 @@ "usercredentials-user": "Korisničko ime:", "usercredentials-leg-user": "Korisnički nalog", "usercredentials-leg-areas": "Glavne sfere interesovanja", - "usercredentials-leg-person": "Lični podaci", - "usercredentials-leg-other": "Druge informacije", + "usercredentials-leg-person": "Lične informacije", + "usercredentials-leg-other": "Drugi podaci", + "usercredentials-leg-ip": "Podaci IP adrese", "usercredentials-email": "Imejl adresa:", "usercredentials-real": "Pravo ime:", "usercredentials-bio": "Životopis:", - "usercredentials-attach": "Rezime/CV:", + "usercredentials-attach": "Opis/CV:", "usercredentials-notes": "Dodatne napomene:", "usercredentials-urls": "Spisak vebsajtova:", - "usercredentials-ip": "Originalna IP adresa:", + "usercredentials-ip": "Prvobitna IP adresa:", "usercredentials-member": "Prava:" } diff --git a/i18n/usercredentials/zh-hans.json b/i18n/usercredentials/zh-hans.json index 589f9860..7a3ccf23 100644 --- a/i18n/usercredentials/zh-hans.json +++ b/i18n/usercredentials/zh-hans.json @@ -2,9 +2,12 @@ "@metadata": { "authors": [ "Chenxiaoqino", + "Diskdance", "Hydra", "Kuailong", + "LittlePaw365", "Mark85296341", + "Tranve", "Wilsonmess", "Yfdyh000" ] @@ -13,12 +16,12 @@ "usercredentials-leg": "查找已验证的用户资格", "usercredentials-user": "用户名:", "usercredentials-text": "下面是已选中用户的有效资格。", - "usercredentials-leg-user": "用户账户", + "usercredentials-leg-user": "用户账号", "usercredentials-leg-areas": "主要的兴趣范围", "usercredentials-leg-person": "个人信息", "usercredentials-leg-other": "其他信息", "usercredentials-leg-ip": "IP地址数据", - "usercredentials-email": "电子邮件:", + "usercredentials-email": "电子邮件地址:", "usercredentials-real": "真实姓名:", "usercredentials-bio": "个人简介:", "usercredentials-attach": "简历或履历:", diff --git a/includes/backend/ConfirmAccount.class.php b/includes/ConfirmAccount.php similarity index 81% rename from includes/backend/ConfirmAccount.class.php rename to includes/ConfirmAccount.php index d9c1ac55..4d17f27d 100644 --- a/includes/backend/ConfirmAccount.class.php +++ b/includes/ConfirmAccount.php @@ -1,6 +1,21 @@ getDBLoadBalancer()->getConnection( DB_PRIMARY ); $repo = self::getFileRepo( $wgConfirmAccountFSRepos['accountreqs'] ); # Select all items older than time $encCutoff @@ -58,7 +73,7 @@ public static function runAutoMaintenance() { * @param string $name */ public static function confirmEmail( $name ) { - $dbw = wfGetDB( DB_MASTER ); + $dbw = MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_PRIMARY ); $dbw->update( 'account_requests', [ 'acr_email_authenticated' => $dbw->timestamp() ], [ 'acr_name' => $name ], @@ -84,11 +99,10 @@ public static function confirmationTokenUrl( $token ) { /** * Generate, store, and return a new email confirmation code. * A hash (unsalted since it's used as a key) is stored. - * @param User $user * @param string &$expiration * @return string */ - public static function getConfirmationToken( $user, &$expiration ) { + public static function getConfirmationToken( &$expiration ) { global $wgConfirmAccountRejectAge; $expires = time() + $wgConfirmAccountRejectAge; @@ -108,19 +122,19 @@ public static function getConfirmationToken( $user, &$expiration ) { * @return true|Status True on success, a Status object on failure. */ public static function sendConfirmationMail( User $user, $ip, $token, $expiration ) { - global $wgContLang; - $url = self::confirmationTokenUrl( $token ); - $lang = $user->getOption( 'language' ); + $lang = MediaWikiServices::getInstance()->getUserOptionsManager() + ->getOption( $user, 'language' ); + $contentLanguage = MediaWikiServices::getInstance()->getContentLanguage(); return $user->sendMail( wfMessage( 'requestaccount-email-subj' )->inLanguage( $lang )->text(), wfMessage( 'requestaccount-email-body', $ip, $user->getName(), $url, - $wgContLang->timeanddate( $expiration, false ), - $wgContLang->date( $expiration, false ), - $wgContLang->time( $expiration, false ) + $contentLanguage->timeanddate( $expiration, false ), + $contentLanguage->date( $expiration, false ), + $contentLanguage->time( $expiration, false ) )->inLanguage( $lang )->text() ); } @@ -133,9 +147,9 @@ public static function sendConfirmationMail( User $user, $ip, $token, $expiratio */ public static function requestInfoFromEmailToken( $code ) { global $wgConfirmAdminEmailExtraFields; - $dbr = wfGetDB( DB_REPLICA ); + $dbr = MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_REPLICA ); # Create updated array with acr_ prepended because of database names - $acrAdminEmailFields = array_merge( array_map( function ( $fieldName ) { + $acrAdminEmailFields = array_merge( array_map( static function ( $fieldName ) { return ( 'acr_' . $fieldName ); }, $wgConfirmAdminEmailExtraFields ), [ 'acr_name', 'acr_email_authenticated' ] ); # Get all specified user information from database @@ -160,7 +174,7 @@ public static function requestInfoFromEmailToken( $code ) { * @return array Assosiative array with 'open', 'held', 'type' keys mapping to integers */ public static function getOpenRequestCount( $type ) { - $dbr = wfGetDB( DB_REPLICA ); + $dbr = MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_REPLICA ); $open = (int)$dbr->selectField( 'account_requests', 'COUNT(*)', [ 'acr_type' => $type, 'acr_deleted' => 0, 'acr_held IS NULL' ], __METHOD__ @@ -195,7 +209,7 @@ public static function getOpenEmailConfirmedCount( $type = '*' ) { if ( $type !== '*' ) { $conds['acr_type'] = (int)$type; } - $dbw = wfGetDB( DB_MASTER ); + $dbw = MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_PRIMARY ); $count = (int)$dbw->selectField( 'account_requests', 'COUNT(*)', $conds, __METHOD__ ); # Cache results (invalidated on change ) $cache->set( $key, $count, 3600 * 24 * 7 ); @@ -281,7 +295,7 @@ public static function getUserAreaConfig() { $msg = wfMessage( 'requestaccount-areas' )->inContentLanguage(); if ( $msg->exists() ) { $areas = explode( "\n*", "\n" . $msg->text() ); - foreach ( $areas as $n => $area ) { + foreach ( $areas as $area ) { $set = explode( "|", $area ); if ( count( $set ) >= 2 ) { $name = trim( str_replace( '_', ' ', $set[0] ) ); @@ -308,30 +322,42 @@ public static function getUserAreaConfig() { /** * Get a block for this user if they are blocked from requesting accounts * @param User $user - * @return Block|null + * @return Block|false */ - public static function getAccountRequestBlock( User $user ) { + public static function getAccountRequestBlock( User $user ): Block|bool { global $wgAccountRequestWhileBlocked; $block = false; # If a user cannot make accounts, don't let them request them either if ( !$wgAccountRequestWhileBlocked ) { - $block = $user->isBlockedFromCreateAccount(); + if ( method_exists( BlockManager::class, 'getCreateAccountBlock' ) ) { + // MW 1.42+ + $isExempt = $user->isAllowed( 'ipblock-exempt' ); + $block = MediaWikiServices::getInstance()->getBlockManager() + ->getCreateAccountBlock( + $user, + $isExempt ? null : $user->getRequest(), + false + ) ?: false; + } else { + /** @disregard P1013 Tell Intelephense to ignore this non-existant method since it is back-compat for + * older MediaWiki. + */ + $block = $user->isBlockedFromCreateAccount(); + } } return $block; } - /** - * @return UserArray - */ - public static function getAdminsToNotify() { - $groups = User::getGroupsWithPermission( 'confirmaccount-notify' ); + public static function getAdminsToNotify(): ArrayIterator|UserArrayFromResult { + $groups = MediaWikiServices::getInstance()->getGroupPermissionsLookup() + ->getGroupsWithPermission( 'confirmaccount-notify' ); if ( !count( $groups ) ) { return UserArray::newFromResult( new FakeResultWrapper( [] ) ); } - $dbr = wfGetDB( DB_REPLICA ); + $dbr = MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_REPLICA ); return UserArray::newFromResult( $dbr->select( [ 'user' ], @@ -357,16 +383,11 @@ public static function getAdminsToNotify() { public static function getFileRepo( $info ) { $repoName = $info['name']; $directory = $info['directory']; - if ( method_exists( MediaWikiServices::class, 'getLockManagerGroupFactory' ) ) { - // MediaWiki 1.34+ - $lockManagerGroup = MediaWikiServices::getInstance()->getLockManagerGroupFactory() - ->getLockManagerGroup( wfWikiID() ); - } else { - $lockManagerGroup = LockManagerGroup::singleton( wfWikiID() ); - } + $lockManagerGroup = MediaWikiServices::getInstance()->getLockManagerGroupFactory() + ->getLockManagerGroup( WikiMap::getCurrentWikiId() ); $info['backend'] = new FSFileBackend( [ 'name' => $repoName . '-backend', - 'wikiId' => wfWikiID(), + 'wikiId' => WikiMap::getCurrentWikiId(), 'lockManager' => $lockManagerGroup->get( 'fsLockManager' ), 'containerPaths' => [ "{$repoName}-public" => "{$directory}", diff --git a/includes/ConfirmAccount__checkRequestHook.php b/includes/ConfirmAccount__checkRequestHook.php new file mode 100644 index 00000000..da1b0bf4 --- /dev/null +++ b/includes/ConfirmAccount__checkRequestHook.php @@ -0,0 +1,34 @@ +. + * + * @author Mark A. Hershberger + */ + +namespace MediaWiki\Extension\ConfirmAccount; + +use MediaWiki\User\User; + +// phpcs:disable Squiz.Classes.ValidClassName.NotCamelCaps +interface ConfirmAccount__checkRequestHook { + // phpcs:ignore MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName + public function onConfirmAccount__checkRequest( + User $user, + array $params, + string &$message + ): ?bool; +} diff --git a/includes/HookRunner.php b/includes/HookRunner.php new file mode 100644 index 00000000..ffcab850 --- /dev/null +++ b/includes/HookRunner.php @@ -0,0 +1,45 @@ +. + * + * @author Mark A. Hershberger + */ + +namespace MediaWiki\Extension\ConfirmAccount; + +use MediaWiki\HookContainer\HookContainer; +use MediaWiki\User\User; + +class HookRunner implements ConfirmAccount__checkRequestHook { + private HookContainer $container; + + public function __construct( HookContainer $container ) { + $this->container = $container; + } + + // phpcs:ignore MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName + public function onConfirmAccount__checkRequest( + User $user, + array $params, + string &$message + ): ?bool { + return $this->container->run( + 'ConfirmAccount::checkRequest', + [ $user, $params, &$message ] + ); + } +} diff --git a/includes/ConfirmAccountHooks.php b/includes/Hooks/Special.php similarity index 53% rename from includes/ConfirmAccountHooks.php rename to includes/Hooks/Special.php index 3ba5ce7b..b95b3d97 100644 --- a/includes/ConfirmAccountHooks.php +++ b/includes/Hooks/Special.php @@ -1,6 +1,11 @@ getName() === 'CreateAccount' && !$special->getUser()->isAllowed( 'createaccount' ) ) { + $special->getOutput()->redirect( SpecialPage::getTitleFor( 'RequestAccount' )->getFullURL() ); + return false; + } + } } diff --git a/includes/frontend/ConfirmAccountUI.hooks.php b/includes/Hooks/UI.php similarity index 57% rename from includes/frontend/ConfirmAccountUI.hooks.php rename to includes/Hooks/UI.php index 16bdab05..9c5642db 100644 --- a/includes/frontend/ConfirmAccountUI.hooks.php +++ b/includes/Hooks/UI.php @@ -1,59 +1,63 @@ getUser()->isAllowed( 'createaccount' ) ) { - $template->set( 'header', $context->msg( 'requestaccount-loginnotice' )->parseAsBlock() ); - - $context->getOutput()->addModules( 'ext.confirmAccount' ); // CSS - } - return true; - } - - /** - * @param array &$personal_urls - * @param Title $title * @param SkinTemplate $skin - * @return bool + * @param array &$links */ - public static function setRequestLoginLinks( - array &$personal_urls, Title $title, SkinTemplate $skin - ) { + public function onSkinTemplateNavigation__Universal( $skin, &$links ): void { # Add a link to Special:RequestAccount if a link exists for login - if ( isset( $personal_urls['login'] ) ) { - $personal_urls['createaccount'] = [ - 'text' => wfMessage( 'requestaccount-login' )->text(), - 'href' => SpecialPage::getTitleFor( 'RequestAccount' )->getLocalUrl() + if ( isset( $links['user-menu']['login'] ) || isset( $links['user-menu']['login-private'] ) ) { + $links['user-menu']['createaccount'] = [ // overwrite the normal createaccount + 'text' => $skin->msg( 'requestaccount-login' )->text(), + 'href' => SkinComponentUtils::makeSpecialUrl( 'RequestAccount' ), + 'active' => $skin->getTitle()->isSpecial( 'RequestAccount' ), + 'icon' => 'userAdd' ]; } - return true; } /** * Add "x email-confirmed open account requests" notice - * @param OutputPage &$out - * @param Skin &$skin - * @return bool + * @param OutputPage $out + * @param Skin $skin */ - public static function confirmAccountsNotice( OutputPage &$out, Skin &$skin ) { + public function onBeforePageDisplay( $out, $skin ): void { global $wgConfirmAccountNotice; $context = $out->getContext(); if ( !$wgConfirmAccountNotice || !$context->getUser()->isAllowed( 'confirmaccount' ) ) { - return true; + return; } # Only show on some special pages $title = $context->getTitle(); if ( !$title->isSpecial( 'Recentchanges' ) && !$title->isSpecial( 'Watchlist' ) ) { - return true; + return; } $count = ConfirmAccount::getOpenEmailConfirmedCount( '*' ); if ( $count > 0 ) { @@ -65,7 +69,6 @@ public static function confirmAccountsNotice( OutputPage &$out, Skin &$skin ) { $out->addModules( 'ext.confirmAccount' ); // CSS } - return true; } /** @@ -73,7 +76,7 @@ public static function confirmAccountsNotice( OutputPage &$out, Skin &$skin ) { * @param ALTree &$admin_links_tree * @return bool */ - public static function confirmAccountAdminLinks( &$admin_links_tree ) { + public function onAdminLinks( ALTree &$admin_links_tree ) { $users_section = $admin_links_tree->getSection( wfMessage( 'adminlinks_users' )->escaped() ); $extensions_row = $users_section->getRow( 'extensions' ); @@ -96,10 +99,12 @@ public static function confirmAccountAdminLinks( &$admin_links_tree ) { * @return bool * @throws ErrorPageError */ - public static function onAuthChangeFormFields( - $requests, $fieldInfo, array &$formDescriptor, $action + public function onAuthChangeFormFields( + $requests, $fieldInfo, &$formDescriptor, $action ) { - if ( $action !== \MediaWiki\Auth\AuthManager::ACTION_CREATE ) { + global $wgHiddenPrefs; + + if ( $action !== AuthManager::ACTION_CREATE ) { return true; } @@ -120,7 +125,7 @@ public static function onAuthChangeFormFields( $formDescriptor['mailpassword']['default'] = 1; $formDescriptor['mailpassword']['checked'] = true; $formDescriptor['mailpassword']['readonly'] = true; - $formDescriptor['mailpassword']['validation-callback'] = function ( $v ) use ( $accReq ) { + $formDescriptor['mailpassword']['validation-callback'] = static function ( $v ) { return ( $v === true ) ? true : wfMessage( 'confirmaccount-mismatched' ); @@ -131,19 +136,23 @@ public static function onAuthChangeFormFields( $formDescriptor['email']['default'] = $accReq->getEmail(); $formDescriptor['email']['readonly'] = true; - $formDescriptor['email']['validation-callback'] = function ( $v ) use ( $accReq ) { + $formDescriptor['email']['validation-callback'] = static function ( $v ) use ( $accReq ) { return ( $v === $accReq->getEmail() ) ? true : wfMessage( 'confirmaccount-mismatched' ); }; - $formDescriptor['realname']['default'] = $accReq->getRealName(); - $formDescriptor['realname']['readonly'] = true; - $formDescriptor['realname']['validation-callback'] = function ( $v ) use ( $accReq ) { - return ( $v === $accReq->getRealName() ) - ? true - : wfMessage( 'confirmaccount-mismatched' ); - }; + // Only do this if we have the real names feature enabled + // @see https://phabricator.wikimedia.org/T157984 + if ( !in_array( 'realname', $wgHiddenPrefs ?? [], true ) ) { + $formDescriptor['realname']['default'] = $accReq->getRealName(); + $formDescriptor['realname']['readonly'] = true; + $formDescriptor['realname']['validation-callback'] = static function ( $v ) use ( $accReq ) { + return ( $v === $accReq->getRealName() ) + ? true + : wfMessage( 'confirmaccount-mismatched' ); + }; + } $formDescriptor['accountrequestid'] = [ 'name' => 'AccountRequestId', diff --git a/includes/backend/schema/ConfirmAccountUpdater.hooks.php b/includes/Hooks/Updater.php similarity index 83% rename from includes/backend/schema/ConfirmAccountUpdater.hooks.php rename to includes/Hooks/Updater.php index ef8fd630..4e4d3077 100644 --- a/includes/backend/schema/ConfirmAccountUpdater.hooks.php +++ b/includes/Hooks/Updater.php @@ -1,15 +1,21 @@ getDB()->getType(); if ( $type === 'mysql' || $type === 'sqlite' ) { $base = "$base/mysql"; @@ -66,6 +72,12 @@ public static function addSchemaUpdates( DatabaseUpdater $updater ) { $updater->addExtensionUpdate( [ 'addPgField', 'account_requests', 'acr_agent', "$base/patch-acr_agent.sql", true ] ); + $updater->addExtensionUpdate( + [ 'dropFkey', 'account_requests', 'acr_user' ] + ); + $updater->addExtensionUpdate( + [ 'dropFkey', 'account_credentials', 'acd_user' ] + ); } return true; } diff --git a/includes/frontend/specialpages/actions/ConfirmAccount_body.php b/includes/Page/ConfirmAccounts.php similarity index 85% rename from includes/frontend/specialpages/actions/ConfirmAccount_body.php rename to includes/Page/ConfirmAccounts.php index e2a519db..4c7432b0 100644 --- a/includes/frontend/specialpages/actions/ConfirmAccount_body.php +++ b/includes/Page/ConfirmAccounts.php @@ -1,8 +1,19 @@ userFactory = $userFactory; + $this->cache = $cache; } public function doesWrites() { @@ -73,7 +92,7 @@ function execute( $par ) { } elseif ( $this->acrID ) { # Load areas user plans to be active in... $this->reqAreas = []; - foreach ( ConfirmAccount::getUserAreaConfig() as $name => $conf ) { + foreach ( array_keys( ConfirmAccount::getUserAreaConfig() ) as $name ) { $formName = "wpArea-" . htmlspecialchars( str_replace( ' ', '_', $name ) ); $this->reqAreas[$name] = $request->getInt( $formName, -1 ); } @@ -114,7 +133,7 @@ function execute( $par ) { // Show what queue we are in and links to the others $this->addQueueSubtitleLinks(); - $this->getOutput()->addModules( 'ext.confirmAccount' ); // CSS + $this->getOutput()->addModules( [ 'ext.confirmAccount', 'ext.confirmAccountSpam' ] ); } protected function addQueueSubtitleLinks() { @@ -248,7 +267,7 @@ protected function showQueues() { // Give grep a chance to find the usages: confirmaccount-type-0, confirmaccount-type-1 $out->addHTML( "
  • " . $this->msg( "confirmaccount-type-$i" )->escaped() . "" ); - $out->addHTML( $this->msg( 'word-separator' )->plain() ); + $out->addHTML( $this->msg( 'word-separator' )->escaped() ); $params = $this->getLanguage()->pipeList( [ $open, $held, $rejects, $stale ] ); $out->addHTML( $this->msg( 'parentheses' )->rawParams( $params )->escaped() ); $out->addHTML( '
  • ' ); @@ -268,7 +287,7 @@ protected function showAccountConfirmForm( $msg = '' ) { $titleObj = $this->getFullTitle(); $accountReq = $this->accountReq; // convenience - if ( !$accountReq || $accountReq->isDeleted() && !$this->showRejects ) { + if ( !$accountReq || ( $accountReq->isDeleted() && !$this->showRejects ) ) { $out->addHTML( $this->msg( 'confirmaccount-badid' )->escaped() ); $out->returnToMain( true, $titleObj ); return; @@ -276,7 +295,7 @@ protected function showAccountConfirmForm( $msg = '' ) { # Output any failure message if ( $msg != '' ) { - $out->addHTML( '
    ' . $msg . '
    ' ); + $out->addHTML( Html::errorBox( $msg ) ); } $out->addWikiMsg( 'confirmaccount-text' ); @@ -295,7 +314,11 @@ protected function showAccountConfirmForm( $msg = '' ) { # Auto-rejected requests have a user ID of zero if ( $adminId ) { $out->addHTML( '

    ' . $this->msg( 'confirmaccount-reject', - User::whoIs( $adminId ), $datim, $date, $time )->parse() . '

    ' ); + $this->userFactory->newFromId( $adminId )->getName(), + $datim, + $date, + $time + )->parse() . '

    ' ); $out->addHTML( '

    ' . $this->msg( 'confirmaccount-rational' )->escaped() . ' ' . $reason . '

    ' @@ -309,22 +332,22 @@ protected function showAccountConfirmForm( $msg = '' ) { $time = $this->getLanguage()->time( $heldTimestamp, true ); $out->addHTML( '

    ' . $this->msg( 'confirmaccount-held', - User::whoIs( $adminId ), $datim, $date, $time )->parse() . '

    ' ); + $this->userFactory->newFromId( $adminId )->getName(), $datim, $date, $time )->parse() . '

    ' ); $out->addHTML( '

    ' . $this->msg( 'confirmaccount-rational' )->escaped() . ' ' . $reason . '

    ' ); } - $form = Xml::openElement( 'form', [ 'method' => 'post', 'name' => 'accountconfirm', + $form = Html::openElement( 'form', [ 'method' => 'post', 'name' => 'accountconfirm', 'action' => $titleObj->getLocalUrl() ] ); $form .= "
    "; $form .= '' . $this->msg( 'confirmaccount-leg-user' )->escaped() . ''; $form .= ''; - $form .= ""; - $form .= ""; + $form .= "\n"; $econf = ''; if ( $accountReq->getEmailAuthTimestamp() ) { @@ -337,15 +360,14 @@ protected function showAccountConfirmForm( $msg = '' ) { $form .= "\n"; } $form .= '
    " . Xml::label( $this->msg( 'username' )->text(), 'wpNewName' ) . "" . Xml::input( 'wpNewName', 30, $this->reqUsername, [ - 'id' => 'wpNewName' + $form .= "
    " . Html::label( $this->msg( 'username' )->text(), 'wpNewName' ) . "" . Html::input( 'wpNewName', $this->reqUsername, 'text', [ + 'id' => 'wpNewName', 'size' => 30 ] ) . "
    " . $this->msg( 'confirmaccount-reqtype' )->escaped() . ""; - foreach ( $wgAccountRequestTypes as $i => $params ) { - // Give grep a chance to find the usages: confirmaccount-pos-0, confirmaccount-pos-1 - $options[] = Xml::option( $this->msg( - "confirmaccount-pos-$i" - )->text(), $i, ( $i == $this->reqType ) ); + foreach ( array_keys( $wgAccountRequestTypes ) as $i ) { + $options[] = Html::element( 'option', [ + 'value' => $i, 'selected' => ( $i == $this->reqType ) ? 'selected' : null + ], $this->msg( "confirmaccount-pos-$i" )->text() ); } - $form .= Xml::openElement( 'select', [ 'name' => "wpType" ] ); + $form .= Html::openElement( 'select', [ 'name' => "wpType" ] ); $form .= implode( "\n", $options ); - $form .= Xml::closeElement( 'select' ) . "\n"; + $form .= Html::closeElement( 'select' ) . "\n"; $form .= "
    '; @@ -375,9 +397,9 @@ protected function showAccountConfirmForm( $msg = '' ) { } else { $pg = ''; } - $form .= "" . - Xml::checkLabel( $name, $formName, $formName, $this->reqAreas[$name] > 0 ) . - " {$pg}\n"; + $checkbox = Html::check( $formName, $this->reqAreas[$name] > 0, [ 'id' => $formName ] ); + $label = Html::label( $name, $formName ); + $form .= "" . $checkbox . ' ' . $label . " {$pg}\n"; } $form .= ""; $form .= ''; @@ -394,7 +416,7 @@ protected function showAccountConfirmForm( $msg = '' ) { } if ( $this->hasItem( 'Biography' ) ) { $form .= "

    " . $this->msg( 'confirmaccount-bio' )->escaped() . "\n"; - $form .= "

    \n"; @@ -420,7 +442,7 @@ protected function showAccountConfirmForm( $msg = '' ) { } if ( $this->hasItem( 'Notes' ) ) { $form .= "

    " . $this->msg( 'confirmaccount-notes' )->escaped() . "\n"; - $form .= "

    \n"; @@ -467,45 +489,52 @@ protected function showAccountConfirmForm( $msg = '' ) { $form .= '' . $this->msg( 'confirmaccount-legend' )->escaped() . ''; $form .= "" . $this->msg( 'confirmaccount-confirm' )->parse() . "\n"; $form .= ""; - $form .= "\n"; - $form .= "\n"; - $form .= "\n"; - $form .= "\n"; $form .= "
    " . Xml::radio( 'wpSubmitType', 'accept', $this->submitType == 'accept', + $form .= "" . Html::radio( 'wpSubmitType', $this->submitType == 'accept', [ 'id' => 'submitCreate', + 'value' => 'accept', 'onclick' => 'document.getElementById("wpComment").style.display="block"' ] ); - $form .= ' ' . Xml::label( + $form .= ' ' . Html::label( $this->msg( 'confirmaccount-create' )->text(), 'submitCreate' ) . "" . Xml::radio( 'wpSubmitType', 'reject', $this->submitType == 'reject', + $form .= "" . Html::radio( 'wpSubmitType', $this->submitType == 'reject', [ - 'id' => 'submitDeny', 'onclick' => 'document.getElementById("wpComment").style.display="block"' + 'id' => 'submitDeny', + 'value' => 'reject', + 'onclick' => 'document.getElementById("wpComment").style.display="block"' ] ); - $form .= ' ' . Xml::label( + $form .= ' ' . Html::label( $this->msg( 'confirmaccount-deny' )->text(), 'submitDeny' ) . "" . Xml::radio( 'wpSubmitType', 'hold', $this->submitType == 'hold', + $form .= "" . Html::radio( 'wpSubmitType', $this->submitType == 'hold', [ - 'id' => 'submitHold', 'onclick' => 'document.getElementById("wpComment").style.display="block"' + 'id' => 'submitHold', + 'value' => 'hold', + 'onclick' => 'document.getElementById("wpComment").style.display="block"' ] ); - $form .= ' ' . Xml::label( + $form .= ' ' . Html::label( $this->msg( 'confirmaccount-hold' )->text(), 'submitHold' ) . "" . Xml::radio( 'wpSubmitType', 'spam', $this->submitType == 'spam', + $form .= "" . Html::radio( 'wpSubmitType', $this->submitType == 'spam', [ - 'id' => 'submitSpam', 'onclick' => 'document.getElementById("wpComment").style.display="none"' + 'id' => 'submitSpam', + 'value' => 'spam', + 'onclick' => 'document.getElementById("wpComment").style.display="none"' ] ); - $form .= ' ' . Xml::label( + $form .= ' ' . Html::label( $this->msg( 'confirmaccount-spam' )->text(), 'submitSpam' ) . "
    "; $form .= "

    " . $this->msg( 'confirmaccount-reason' )->escaped() . "

    \n"; $form .= "

    \n"; - $form .= "

    " . Xml::submitButton( $this->msg( 'confirmaccount-submit' )->text() ) . "

    \n"; + htmlspecialchars( $this->reason ?? '' ) . "

    \n"; + $form .= "

    " . Html::submitButton( $this->msg( 'confirmaccount-submit' )->text() ) . "

    \n"; $form .= ''; $form .= Html::hidden( 'title', $titleObj->getPrefixedDBKey() ) . "\n"; @@ -513,15 +542,14 @@ protected function showAccountConfirmForm( $msg = '' ) { $form .= Html::hidden( 'acrid', $accountReq->getId() ); $form .= Html::hidden( 'wpShowRejects', $this->showRejects ); $form .= Html::hidden( 'wpEditToken', $reqUser->getEditToken( $accountReq->getId() ) ) . "\n"; - $form .= Xml::closeElement( 'form' ); + $form .= Html::closeElement( 'form' ); $out->addHTML( $form ); # Set a key to who is looking at this request. # Have it expire in 10 minutes... - $cache = MediaWikiServices::getInstance()->getMainWANObjectCache(); - $key = $cache->makeKey( 'acctrequest', 'view', $accountReq->getId() ); - $cache->set( $key, $reqUser->getID(), 60 * 10 ); + $key = $this->cache->makeKey( 'acctrequest', 'view', $accountReq->getId() ); + $this->cache->set( $key, $reqUser->getID(), 60 * 10 ); } protected function hasItem( $name ) { @@ -570,7 +598,7 @@ protected function doAccountConfirmSubmit() { $areaSet[] = $area; } } - $submission = new AccountConfirmSubmission( + $submission = new AccountConfirm( $this->getUser(), $this->accountReq, [ @@ -584,7 +612,7 @@ protected function doAccountConfirmSubmit() { ); # Actually submit! - list( $status, $msg, $url ) = $submission->submit( $this->getContext() ); + [ $status, $msg, $url ] = $submission->submit( $this->getContext() ); # Check for error messages if ( $status !== true ) { @@ -596,7 +624,7 @@ protected function doAccountConfirmSubmit() { if ( $url ) { $this->getOutput()->redirect( $url ); } else { - $this->showSuccess( $this->submitType, $this->reqUsername, (array)$msg ); + $this->showSuccess( $this->reqUsername, (array)$msg ); } } @@ -606,7 +634,7 @@ protected function doAccountConfirmSubmit() { * @param bool $wasPosted */ protected function loadAccountRequest( $id, $wasPosted ) { - $from = $wasPosted ? 'dbmaster' : 'dbslave'; + $from = $wasPosted ? 'dbmaster' : 'dbreplica'; $this->accountReq = UserAccountRequest::newFromId( $id, $from ); # Check if parameters are to be overridden if ( $this->accountReq ) { @@ -674,11 +702,10 @@ public static function parseLinks( $text ) { } /** - * @param string $submitType * @param string|null $name User name * @param array $errors */ - protected function showSuccess( $submitType, $name = null, $errors = [] ) { + protected function showSuccess( $name = null, $errors = [] ) { $out = $this->getOutput(); $out->setPageTitle( $this->msg( 'actioncomplete' )->escaped() ); @@ -702,7 +729,7 @@ protected function showList() { $out = $this->getOutput(); # Output the list - $pager = new ConfirmAccountsPager( $this, [], + $pager = new Pager( $this, [], $this->queueType, $this->showRejects, $this->showHeld, $this->showStale ); if ( $pager->getNumRows() ) { @@ -767,19 +794,19 @@ public function formatRow( $row ) { $date = $this->getLanguage()->date( wfTimestamp( TS_MW, $row->acr_held ), true ); $time = $this->getLanguage()->time( wfTimestamp( TS_MW, $row->acr_held ), true ); $r .= ' ' . $this->msg( - 'confirmaccount-held', User::whoIs( $row->acr_user ), $datim, $date, $time + 'confirmaccount-held', $this->userFactory->newFromId( $row->acr_user )->getName(), $datim, $date, $time )->parse() . ''; } # Check if someone is viewing this request - $cache = MediaWikiServices::getInstance()->getMainWANObjectCache(); - $key = $cache->makeKey( 'acctrequest', 'view', $row->acr_id ); - $value = $cache->get( $key ); + $key = $this->cache->makeKey( 'acctrequest', 'view', $row->acr_id ); + $value = $this->cache->get( $key ); if ( $value ) { - $r .= ' ' . $this->msg( 'confirmaccount-viewing', User::whoIs( $value ) )->parse() . ''; + $r .= ' ' . $this->msg( 'confirmaccount-viewing', $this->userFactory->newFromId( $value )->getName() ) + ->parse() . ''; } - $r .= "
    "; + $r .= "
    "; if ( $this->hasItem( 'UserName' ) ) { $r .= '\n"; + $checkbox = Html::check( $formName, $this->mAreas[$name] > 0, [ 'id' => $formName ] ); + $label = Html::label( $name, $formName ); + $form .= "\n"; } $form .= "
    ' . $this->msg( 'confirmaccount-name' diff --git a/includes/frontend/specialpages/actions/RequestAccount_body.php b/includes/Page/RequestAccount.php similarity index 76% rename from includes/frontend/specialpages/actions/RequestAccount_body.php rename to includes/Page/RequestAccount.php index c8afdaad..9dd7a3dd 100644 --- a/includes/frontend/specialpages/actions/RequestAccount_body.php +++ b/includes/Page/RequestAccount.php @@ -1,6 +1,25 @@ userFactory = $userFactory; } public function doesWrites() { @@ -66,7 +92,7 @@ function execute( $par ) { # Load areas user plans to be active in... $this->mAreas = []; if ( $this->hasItem( 'AreasOfInterest' ) ) { - foreach ( ConfirmAccount::getUserAreaConfig() as $name => $conf ) { + foreach ( array_keys( ConfirmAccount::getUserAreaConfig() ) as $name ) { $formName = "wpArea-" . htmlspecialchars( str_replace( ' ', '_', $name ) ); $this->mAreas[$name] = $request->getInt( $formName, -1 ); } @@ -101,7 +127,7 @@ protected function showForm( $msg = '', $forgotFile = 0 ) { $out->setPageTitle( $this->msg( "requestaccount" )->escaped() ); # Output failure message if any if ( $msg ) { - $out->addHTML( '
    ' . $msg . '
    ' ); + $out->addHTML( Html::errorBox( $msg ) ); } # Give notice to users that are logged in if ( $reqUser->getID() ) { @@ -110,39 +136,40 @@ protected function showForm( $msg = '', $forgotFile = 0 ) { $out->addWikiMsg( 'requestaccount-text' ); - $form = Xml::openElement( 'form', [ 'method' => 'post', 'name' => 'accountrequest', + $form = Html::openElement( 'form', [ 'method' => 'post', 'name' => 'accountrequest', 'action' => $this->getPageTitle()->getLocalUrl(), 'enctype' => 'multipart/form-data' ] ); $form .= '
    ' . $this->msg( 'requestaccount-leg-user' )->escaped() . ''; $form .= $this->msg( 'requestaccount-acc-text' )->parseAsBlock() . "\n"; $form .= ''; if ( $this->hasItem( 'UserName' ) ) { - $form .= ""; - $form .= ""; + $form .= "\n"; } else { $form .= ""; $form .= "\n"; } - $form .= ""; - $form .= "\n"; if ( count( $wgAccountRequestTypes ) > 1 ) { $form .= "'; } $form .= '
    " . Xml::label( $this->msg( 'username' )->text(), 'wpUsername' ) . "" . Xml::input( - 'wpUsername', 30, $this->mUsername, [ 'id' => 'wpUsername' ] + $form .= "
    " . Html::label( $this->msg( 'username' )->text(), 'wpUsername' ) . "" . Html::input( + 'wpUsername', $this->mUsername, 'text', [ 'id' => 'wpUsername', 'size' => 30 ] ) . "
    " . $this->msg( 'username' )->escaped() . "" . $this->msg( 'requestaccount-same' )->escaped() . "
    " . Xml::label( + $form .= "
    " . Html::label( $this->msg( 'requestaccount-email' )->text(), 'wpEmail' ) . "" . Xml::input( - 'wpEmail', 30, $this->mEmail, [ 'id' => 'wpEmail' ] + $form .= "" . Html::input( + 'wpEmail', $this->mEmail, 'text', [ 'id' => 'wpEmail', 'size' => 30 ] ) . "
    " . $this->msg( 'requestaccount-reqtype' )->escaped() . ""; $options = []; - foreach ( $wgAccountRequestTypes as $i => $params ) { - // Give grep a chance to find the usages: requestaccount-level-0, requestaccount-level-1 - $options[] = Xml::option( - $this->msg( "requestaccount-level-$i" )->text(), $i, ( $i == $this->mType ) + foreach ( array_keys( $wgAccountRequestTypes ) as $i ) { + $options[] = Html::element( + 'option', + [ 'value' => $i, 'selected' => ( $i == $this->mType ) ? 'selected' : null ], + $this->msg( "requestaccount-level-$i" )->text() ); } - $form .= Xml::openElement( 'select', [ 'name' => "wpType" ] ); + $form .= Html::openElement( 'select', [ 'name' => "wpType" ] ); $form .= implode( "\n", $options ); - $form .= Xml::closeElement( 'select' ) . "\n"; + $form .= Html::closeElement( 'select' ) . "\n"; $form .= '
    '; @@ -173,9 +200,9 @@ protected function showForm( $msg = '', $forgotFile = 0 ) { } else { $pg = ''; } - $form .= "
    " . - Xml::checkLabel( $name, $formName, $formName, $this->mAreas[$name] > 0 ) . - " {$pg}" . $checkbox . ' ' . $label . " {$pg}
    "; $form .= ''; @@ -185,12 +212,13 @@ protected function showForm( $msg = '', $forgotFile = 0 ) { $form .= '
    '; $form .= '' . $this->msg( 'requestaccount-leg-person' )->escaped() . ''; if ( $this->hasItem( 'RealName' ) ) { + $form .= $this->msg( 'requestaccount-real-i' )->parseAsBlock() . "\n"; $form .= ''; - $form .= ""; - $form .= "\n"; $form .= '
    " . Xml::label( + $form .= "
    " . Html::label( $this->msg( 'requestaccount-real' )->text(), 'wpRealName' ) . "" . Xml::input( - 'wpRealName', 35, $this->mRealName, [ 'id' => 'wpRealName' ] + $form .= "" . Html::input( + 'wpRealName', $this->mRealName, 'text', [ 'id' => 'wpRealName', 'size' => 35 ] ) . "
    '; } @@ -200,7 +228,7 @@ protected function showForm( $msg = '', $forgotFile = 0 ) { } $form .= $this->msg( 'requestaccount-bio-text' )->parseAsBlock() . "\n"; $form .= "

    " . $this->msg( 'requestaccount-bio' )->parse() . "\n"; - $form .= "

    \n"; } @@ -213,19 +241,18 @@ protected function showForm( $msg = '', $forgotFile = 0 ) { $form .= $this->msg( 'requestaccount-ext-text' )->parseAsBlock() . "\n"; if ( $this->hasItem( 'CV' ) ) { $form .= "

    " . $this->msg( 'requestaccount-attach' )->escaped() . " "; - $form .= Xml::input( 'wpUploadFile', 35, '', - [ 'id' => 'wpUploadFile', 'type' => 'file' ] ) . "

    \n"; + $form .= Html::input( 'wpUploadFile', '', 'file', [ 'id' => 'wpUploadFile', 'size' => 35 ] ) . "

    \n"; } if ( $this->hasItem( 'Notes' ) ) { $form .= "

    " . $this->msg( 'requestaccount-notes' )->escaped() . "\n"; - $form .= "

    \n"; } if ( $this->hasItem( 'Links' ) ) { $form .= "

    " . $this->msg( 'requestaccount-urls' )->escaped() . "\n"; - $form .= "

    \n"; @@ -236,35 +263,39 @@ protected function showForm( $msg = '', $forgotFile = 0 ) { if ( $this->hasItem( 'TermsOfService' ) ) { $form .= '
    '; $form .= '' . $this->msg( 'requestaccount-leg-tos' )->escaped() . ''; - $form .= "

    " . Xml::check( 'wpToS', $this->mToS, [ 'id' => 'wpToS' ] ) . + $form .= "

    " . Html::check( 'wpToS', $this->mToS, [ 'id' => 'wpToS' ] ) . '

    \n"; $form .= '
    '; } - # FIXME: do this better... - global $wgConfirmAccountCaptchas, $wgCaptchaClass, $wgCaptchaTriggers; - if ( $wgConfirmAccountCaptchas && isset( $wgCaptchaClass ) - && $wgCaptchaTriggers['createaccount'] && !$reqUser->isAllowed( 'skipcaptcha' ) ) { - /** @var SimpleCaptcha $captcha */ - $captcha = new $wgCaptchaClass; - - $formInformation = $captcha->getFormInformation(); - $formMetainfo = $formInformation; - unset( $formMetainfo['html'] ); - $captcha->addFormInformationToOutput( $out, $formMetainfo ); - - # Hook point to add captchas - $form .= '
    '; - $form .= $this->msg( 'captcha-createaccount' )->parseAsBlock(); - $form .= $formInformation['html']; - $form .= '
    '; + $config = $this->getConfig(); + if ( + $config->get( 'ConfirmAccountCaptchas' ) && + ExtensionRegistry::getInstance()->isLoaded( 'ConfirmEdit' ) + ) { + $captcha = CaptchaHooks::getInstance( CaptchaTriggers::CREATE_ACCOUNT ); + if ( + !$captcha->canSkipCaptcha( $reqUser, $config ) && + $captcha->triggersCaptcha( CaptchaTriggers::CREATE_ACCOUNT ) + ) { + $formInformation = $captcha->getFormInformation(); + $formMetainfo = $formInformation; + unset( $formMetainfo['html'] ); + $captcha->addFormInformationToOutput( $out, $formMetainfo ); + + # Hook point to add captchas + $form .= '
    '; + $form .= $this->msg( 'captcha-createaccount' )->parseAsBlock(); + $form .= $formInformation['html']; + $form .= '
    '; + } } $form .= Html::hidden( 'title', $this->getPageTitle()->getPrefixedDBKey() ) . "\n"; $form .= Html::hidden( 'wpEditToken', $reqUser->getEditToken() ) . "\n"; $form .= Html::hidden( 'attachment', $this->mPrevAttachment ) . "\n"; $form .= Html::hidden( 'forgotAttachment', $this->mForgotAttachment ) . "\n"; - $form .= "

    " . Xml::submitButton( $this->msg( 'requestaccount-submit' )->text() ) . "

    "; - $form .= Xml::closeElement( 'form' ); + $form .= "

    " . Html::submitButton( $this->msg( 'requestaccount-submit' )->text() ) . "

    "; + $form .= Html::closeElement( 'form' ); $out->addHTML( $form ); @@ -280,7 +311,7 @@ protected function hasItem( $name ) { protected function doSubmit() { # Now create a dummy user ($u) and check if it is valid $name = trim( $this->mUsername ); - $u = User::newFromName( $name, 'creatable' ); + $u = $this->userFactory->newFromName( $name, UserRigorOptions::RIGOR_CREATABLE ); if ( !$u ) { $this->showForm( $this->msg( 'noname' )->escaped() ); return; @@ -296,7 +327,7 @@ protected function doSubmit() { $wgCaptchaTriggers['createaccount'] = false; } $abortError = ''; - if ( !Hooks::run( 'AbortNewAccount', [ $u, &$abortError ] ) ) { + if ( !$this->getHookContainer()->run( 'AbortNewAccount', [ $u, &$abortError ] ) ) { // Hook point to add extra creation throttles and blocks wfDebug( "RequestAccount::doSubmit: a hook blocked creation\n" ); $this->showForm( $abortError ); @@ -315,7 +346,7 @@ protected function doSubmit() { } } - $submission = new AccountRequestSubmission( + $submission = new AccountRequest( $this->getUser(), [ 'userName' => $name, @@ -340,7 +371,7 @@ protected function doSubmit() { ); # Actually submit! - list( $status, $msg ) = $submission->submit( $this->getContext() ); + [ $status, $msg ] = $submission->submit( $this->getContext() ); # Account for state changes $this->mForgotAttachment = $submission->getAttachmentDidNotForget(); $this->mPrevAttachment = $submission->getAttachtmentPrevName(); @@ -384,8 +415,8 @@ protected function confirmEmailToken( $code ) { $reqUser = $this->getUser(); $out = $this->getOutput(); # Confirm if this token is in the pending requests - list( $bodyArguments, $name, - $email_authenticated ) = ConfirmAccount::requestInfoFromEmailToken( $code ); + [ $bodyArguments, $name, + $email_authenticated ] = ConfirmAccount::requestInfoFromEmailToken( $code ); if ( $name && $email_authenticated === null ) { # Send confirmation email to prospective user ConfirmAccount::confirmEmail( $name ); @@ -420,15 +451,15 @@ protected function confirmEmailToken( $code ) { $out->returnToMain(); } else { # Maybe the user confirmed after account was created... - $user = User::newFromConfirmationCode( $code, User::READ_LATEST ); + $user = $this->userFactory->newFromConfirmationCode( $code, IDBAccessObject::READ_LATEST ); if ( is_object( $user ) ) { $user->confirmEmail(); $user->saveSettings(); - $message = $reqUser->isLoggedIn() + $message = $reqUser->isRegistered() ? 'confirmemail_loggedin' : 'confirmemail_success'; $out->addWikiMsg( $message ); - if ( !$reqUser->isLoggedIn() ) { + if ( !$reqUser->isRegistered() ) { $title = SpecialPage::getTitleFor( 'Userlogin' ); $out->returnToMain( true, $title ); } diff --git a/includes/frontend/specialpages/actions/UserCredentials_body.php b/includes/Page/UserCredentials.php similarity index 80% rename from includes/frontend/specialpages/actions/UserCredentials_body.php rename to includes/Page/UserCredentials.php index 3a45b16f..3b37c714 100644 --- a/includes/frontend/specialpages/actions/UserCredentials_body.php +++ b/includes/Page/UserCredentials.php @@ -1,10 +1,48 @@ loadBalancer = $loadBalancer; + $this->userGroupManager = $userGroupManager; + $this->userIdentityLookup = $userIdentityLookup; } public function userCanExecute( User $user ) { @@ -82,7 +120,7 @@ function showCredentials() { $user = User::newFromName( $this->target ); $list = []; - foreach ( $user->getGroups() as $group ) { + foreach ( $this->userGroupManager->getUserGroups( $user ) as $group ) { $list[] = UserGroupMembership::getLink( $group, $this->getContext(), 'html', $user->getName() ); } @@ -126,7 +164,6 @@ function showCredentials() { "; $count = 0; - $att = [ 'disabled' => 'disabled' ]; foreach ( $userAreas as $name => $conf ) { $count++; if ( $count > 5 ) { @@ -143,9 +180,17 @@ function showCredentials() { } else { $pg = ''; } - $form .= "" . - Xml::checkLabel( $name, $formName, $formName, in_array( $formName, $areaSet ), $att ) . - " {$pg}\n"; + $isChecked = in_array( $formName, $areaSet ); + $checkbox = Html::check( + $formName, + $isChecked, + [ + 'id' => $formName, + 'disabled' => 'disabled' + ] + ); + $label = Html::label( $name, $formName ); + $form .= "" . $checkbox . ' ' . $label . " {$pg}\n"; } $form .= ""; $form .= '
    '; @@ -158,7 +203,7 @@ function showCredentials() { $form .= "" . htmlspecialchars( $row->acd_real_name ) . "\n"; $form .= ''; $form .= "

    " . $this->msg( 'usercredentials-bio' )->escaped() . "

    "; - $form .= "

    \n"; @@ -180,7 +225,7 @@ function showCredentials() { $form .= $this->msg( 'confirmaccount-none-p' )->escaped(); } $form .= "

    " . $this->msg( 'usercredentials-notes' )->escaped() . "

    \n"; - $form .= "

    \n"; @@ -241,14 +286,14 @@ function showFile( $key ) { } function getAccountData() { - $uid = User::idFromName( $this->target ); - if ( !$uid ) { + $userIdentity = $this->userIdentityLookup->getUserIdentityByName( $this->target ); + if ( !$userIdentity || !$userIdentity->isRegistered() ) { return false; } # For now, just get the first revision... - $dbr = wfGetDB( DB_REPLICA ); + $dbr = $this->loadBalancer->getConnection( DB_REPLICA ); $row = $dbr->selectRow( 'account_credentials', '*', - [ 'acd_user_id' => $uid ], + [ 'acd_user_id' => $userIdentity->getId() ], __METHOD__, [ 'ORDER BY' => 'acd_user_id,acd_id ASC' ] ); return $row; diff --git a/includes/frontend/specialpages/actions/ConfirmAccountsPager.php b/includes/Pager.php similarity index 91% rename from includes/frontend/specialpages/actions/ConfirmAccountsPager.php rename to includes/Pager.php index d9228abb..7e3ebcbe 100644 --- a/includes/frontend/specialpages/actions/ConfirmAccountsPager.php +++ b/includes/Pager.php @@ -1,10 +1,16 @@ getRequest(); $accReqId = $request->getInt( 'AccountRequestId' ); # For normal account creations, just check if the name is free @@ -67,11 +77,15 @@ public function testForAccountCreation( $user, $creator, array $reqs ) { $tmpPassAuthReq = AuthenticationRequest::getRequestByClass( $reqs, TemporaryPasswordAuthenticationRequest::class ); + $realNameMismatch = !in_array( 'realname', $wgHiddenPrefs ?? [], true ) && + $usrDataAuthReq->realname !== $accountReq->getRealName(); + # Make sure certain field were left unchanged from the account request if ( !$tmpPassAuthReq || $usrDataAuthReq->email !== $accountReq->getEmail() || $usrDataAuthReq->realname !== $accountReq->getRealName() || + $realNameMismatch || !$tmpPassAuthReq->mailpassword ) { return StatusValue::newFatal( 'confirmaccount-mismatched-general' ); @@ -85,10 +99,10 @@ public function testForAccountCreation( $user, $creator, array $reqs ) { 'userName' => $request->getVal( 'wpName', $user->getName() ), 'action' => 'complete', 'reason' => $request->getVal( 'wpReason', '' ), - // @TODO: make overridable in GUI + // @TODO: make override-able in GUI 'bio' => $request->getText( 'wpNewBio', $accountReq->getBio() ), 'type' => $request->getInt( 'wpType', $accountReq->getType() ), - // @TODO: make overridable + // @TODO: make override-able 'areas' => $accountReq->getAreas(), 'allowComplete' => true // action not enabled via GUI ] @@ -98,7 +112,7 @@ public function testForAccountCreation( $user, $creator, array $reqs ) { return StatusValue::newGood(); } - public function postAccountCreation( $user, $creator, AuthenticationResponse $response ) { + public function postAccountCreation( $_, $creator, AuthenticationResponse $response ) { if ( $response->status === AuthenticationResponse::FAIL ) { return; // nothing happened } @@ -108,18 +122,15 @@ public function postAccountCreation( $user, $creator, AuthenticationResponse $re return; // wasn't for a pending account request } - $submission = new AccountConfirmSubmission( + $submission = new AccountConfirm( $creator, UserAccountRequest::newFromId( $data['accountRequestId'], 'dbmaster' ), $data['confirmationParams'] ); # Update the queue to reflect approval of this user - list( $status, $msg ) = $submission->submit( RequestContext::getMain() ); + [ $status, $msg ] = $submission->submit( RequestContext::getMain() ); if ( $status !== true ) { - // ErrorPageError does not trigger rollback - $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory(); - $lbFactory->rollbackMasterChanges( __METHOD__ ); throw new ErrorPageError( 'createacct-error', new RawMessage( $msg ) ); } } diff --git a/includes/business/AccountConfirmSubmission.php b/includes/Submission/AccountConfirm.php similarity index 79% rename from includes/business/AccountConfirmSubmission.php rename to includes/Submission/AccountConfirm.php index 8df8d061..59c462d7 100644 --- a/includes/business/AccountConfirmSubmission.php +++ b/includes/Submission/AccountConfirm.php @@ -1,12 +1,27 @@ admin = $admin; $this->accountReq = $accReq; + $this->mws = MediaWikiServices::getInstance(); + $this->lbFactory = $this->mws->getDBLoadBalancerFactory(); + $this->userFactory = $this->mws->getUserFactory(); + $this->ff = $this->mws->getFormatterFactory(); $this->userName = trim( $params['userName'] ); $this->bio = trim( $params['bio'] ); $this->type = $params['type']; @@ -47,7 +66,7 @@ public function submit( IContextSource $context ) { $context->msg( 'badaccess-group0' )->escaped(), null ]; - } elseif ( wfReadOnly() ) { + } elseif ( $this->mws->getReadOnlyMode()->isReadOnly() ) { return [ 'accountconf_readonly', $context->msg( 'badaccess-group0' )->escaped(), @@ -55,13 +74,13 @@ public function submit( IContextSource $context ) { ]; } if ( $this->action === 'spam' ) { - return $this->spamRequest( $context ); + return $this->spamRequest(); } elseif ( $this->action === 'reject' ) { return $this->rejectRequest( $context ); } elseif ( $this->action === 'hold' ) { return $this->holdRequest( $context ); } elseif ( $this->action === 'accept' ) { - return $this->acceptRequest( $context ); + return $this->acceptRequest(); } elseif ( $this->action === 'complete' && $this->allowComplete ) { return $this->completeRequest( $context ); } else { @@ -74,11 +93,10 @@ public function submit( IContextSource $context ) { } /** - * @param IContextSource $context * @return array */ - protected function spamRequest( IContextSource $context ) { - $dbw = wfGetDB( DB_MASTER ); + protected function spamRequest() { + $dbw = $this->mws->getDBLoadBalancer()->getConnection( DB_PRIMARY ); $dbw->startAtomic( __METHOD__ ); $ok = $this->accountReq->markRejected( $this->admin, wfTimestampNow(), '' ); @@ -94,17 +112,15 @@ protected function spamRequest( IContextSource $context ) { /** * @param IContextSource $context * @return array - * @throws MWException */ protected function rejectRequest( IContextSource $context ) { - $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory(); - $dbw = $lbFactory->getMainLB()->getConnection( DB_MASTER ); - $dbw->startAtomic( __METHOD__ ); + $dbw = $this->lbFactory->getMainLB()->getConnection( DB_PRIMARY ); + $dbw->startAtomic( __METHOD__, $dbw::ATOMIC_CANCELABLE ); $ok = $this->accountReq->markRejected( $this->admin, wfTimestampNow(), $this->reason ); if ( $ok ) { # Make proxy user to email a rejection message :( - $u = User::newFromName( $this->accountReq->getName(), false ); + $u = $this->userFactory->newFromName( $this->accountReq->getName(), UserRigorOptions::RIGOR_NONE ); $u->setEmail( $this->accountReq->getEmail() ); # Send out a rejection email... if ( $this->reason != '' ) { @@ -119,12 +135,14 @@ protected function rejectRequest( IContextSource $context ) { $emailBody ); if ( !$result->isOk() ) { - $lbFactory->rollbackMasterChanges( __METHOD__ ); + $dbw->cancelAtomic( __METHOD__ ); return [ 'accountconf_mailerror', $context->msg( 'mailerror' )->rawParams( - $context->getOutput()->parseAsInterface( $result->getWikiText() ) - )->text(), + $context->getOutput()->parseAsInterface( + $this->ff->getStatusFormatter( $context )->getWikiText( $result ) + ) + )->escaped(), null ]; } @@ -139,11 +157,10 @@ protected function rejectRequest( IContextSource $context ) { /** * @param IContextSource $context * @return array - * @throws MWException */ protected function holdRequest( IContextSource $context ) { # Make proxy user to email a message - $u = User::newFromName( $this->accountReq->getName(), false ); + $u = $this->userFactory->newFromName( $this->accountReq->getName(), UserRigorOptions::RIGOR_NONE ); $u->setEmail( $this->accountReq->getEmail() ); # Pointless without a summary... @@ -155,14 +172,13 @@ protected function holdRequest( IContextSource $context ) { ]; } - $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory(); - $dbw = $lbFactory->getMainLB()->getConnection( DB_MASTER ); - $dbw->startAtomic( __METHOD__ ); + $dbw = $this->lbFactory->getMainLB()->getConnection( DB_PRIMARY ); + $dbw->startAtomic( __METHOD__, $dbw::ATOMIC_CANCELABLE ); # If not already held or deleted, mark as held $ok = $this->accountReq->markHeld( $this->admin, wfTimestampNow(), $this->reason ); if ( !$ok ) { // already held or deleted? - $lbFactory->rollbackMasterChanges( __METHOD__ ); + $dbw->cancelAtomic( __METHOD__ ); return [ 'accountconf_canthold', $context->msg( 'confirmaccount-canthold' )->escaped(), @@ -178,12 +194,14 @@ protected function holdRequest( IContextSource $context ) { )->inContentLanguage()->text() ); if ( !$result->isOk() ) { - $lbFactory->rollbackMasterChanges( __METHOD__ ); + $dbw->cancelAtomic( __METHOD__ ); return [ 'accountconf_mailerror', $context->msg( 'mailerror' )->rawParams( - $context->getOutput()->parseAsInterface( $result->getWikiText() ) - )->text(), + $context->getOutput()->parseAsInterface( + $this->ff->getStatusFormatter( $context )->getWikiText( $result ) + ) + )->escaped(), null ]; } @@ -195,13 +213,13 @@ protected function holdRequest( IContextSource $context ) { return [ true, null, null ]; } - protected function acceptRequest( IContextSource $context ) { + protected function acceptRequest() { global $wgAccountRequestTypes; $id = $this->accountReq->getId(); $type = $wgAccountRequestTypes[$this->accountReq->getType()][0]; - $spFactory = MediaWikiServices::getInstance()->getSpecialPageFactory(); + $spFactory = $this->mws->getSpecialPageFactory(); $redirTitle = $spFactory->getTitleForAlias( 'CreateAccount' ); $returnTitle = $spFactory->getTitleForAlias( "ConfirmAccounts/{$type}" ); $params = [ @@ -222,19 +240,17 @@ protected function completeRequest( IContextSource $context ) { $accReq = $this->accountReq; // convenience # Now create user and check if the name is valid - $user = User::newFromName( $this->userName, false ); + $user = $this->userFactory->newFromName( $this->userName, UserRigorOptions::RIGOR_NONE ); - $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory(); - $dbw = $lbFactory->getMainLB()->getConnection( DB_MASTER ); - $dbw->startAtomic( __METHOD__ ); + $dbw = $this->lbFactory->getMainLB()->getConnection( DB_PRIMARY ); + $dbw->startAtomic( __METHOD__, $dbw::ATOMIC_CANCELABLE ); # Grant any necessary rights (exclude blank or dummy groups) $group = self::getGroupFromType( $this->type ); if ( $group != '' && $group != 'user' && $group != '*' ) { - $user->addGroup( $group ); + $this->mws->getUserGroupManager()->addUserToGroup( $user, $group ); } - $acd_id = null; // used for rollback cleanup # Save account request data to credentials system if ( $wgConfirmAccountSaveInfo ) { $key = $accReq->getFileStorageKey(); @@ -249,15 +265,16 @@ protected function completeRequest( IContextSource $context ) { $triplet = [ $oldPath, 'public', $pathRel ]; $status = $repoNew->storeBatch( [ $triplet ] ); // copy! if ( !$status->isOK() ) { - $lbFactory->rollbackMasterChanges( __METHOD__ ); + $dbw->cancelAtomic( __METHOD__ ); return [ 'accountconf_copyfailed', - $context->getOutput()->parseAsInterface( $status->getWikiText() ), + $context->getOutput()->parseAsInterface( + $this->ff->getStatusFormatter( $context )->getWikiText( $status ) + ), null ]; } } - $acd_id = $dbw->nextSequenceValue( 'account_credentials_acd_id_seq' ); # Move request data into a separate table $dbw->insert( 'account_credentials', [ @@ -278,8 +295,7 @@ protected function completeRequest( IContextSource $context ) { 'acd_registration' => $dbw->timestamp( $accReq->getRegistration() ), 'acd_accepted' => $dbw->timestamp(), 'acd_user' => $this->admin->getID(), - 'acd_comment' => $this->reason, - 'acd_id' => $acd_id + 'acd_comment' => $this->reason ], __METHOD__ ); @@ -293,10 +309,9 @@ protected function completeRequest( IContextSource $context ) { # email, which we cannot take back... $dbw->endAtomic( __METHOD__ ); - $that = $this; DeferredUpdates::addCallableUpdate( - function () use ( $that, $user, $context, $group, $accReq ) { - $that->doPostCommitNewUserUpdates( $user, $context, $group, $accReq ); + function () use ( $user, $accReq ) { + $this->doPostCommitNewUserUpdates( $user, $accReq ); } ); @@ -304,7 +319,7 @@ function () use ( $that, $user, $context, $group, $accReq ) { } public function doPostCommitNewUserUpdates( - User $user, IContextSource $context, $group, UserAccountRequest $accReq + User $user, UserAccountRequest $accReq ) { global $wgConfirmAccountRequestFormItems, $wgConfirmAccountFSRepos; @@ -358,7 +373,7 @@ protected static function getAutoTextFromType( $type ) { protected function createUserPage( User $user ) { global $wgMakeUserPageFromBio, $wgAutoUserBioText; - global $wgConfirmAccountSortkey, $wgContLang; + global $wgConfirmAccountSortkey; $body = ''; // page text @@ -403,7 +418,7 @@ protected function createUserPage( User $user ) { ); $body .= "\n{{DEFAULTSORT:{$sortKey}}}"; # Clean up any other categories... - $catNS = $wgContLang->getNSText( NS_CATEGORY ); + $catNS = $this->mws->getContentLanguage()->getNSText( NS_CATEGORY ); $replace = '/\[\[' . preg_quote( $catNS ) . ':([^\]]+)\]\]/i'; // [[Category:x]] $with = "[[{$catNS}:$1|" . str_replace( '$', '\$', $sortKey ) . "]]"; // [[Category:x|sortkey]] $body = preg_replace( $replace, $with, $body ); @@ -411,9 +426,10 @@ protected function createUserPage( User $user ) { # Create userpage! if ( $body !== '' ) { - $article = new WikiPage( $user->getUserPage() ); - $article->doEditContent( + $article = $this->mws->getWikiPageFactory()->newFromTitle( $user->getUserPage() ); + $article->doUserEditContent( ContentHandler::makeContent( $body, $article->getTitle() ), + $this->admin, wfMessage( 'confirmaccount-summary' )->inContentLanguage()->text(), EDIT_MINOR ); @@ -429,13 +445,12 @@ protected function createUserTalkPage( User $user ) { ? wfMessage( 'confirmaccount-welc' )->text() : $msgObj->text(); // custom message # Add user welcome message! - $article = new WikiPage( $user->getTalkPage() ); - $article->doEditContent( + $article = $this->mws->getWikiPageFactory()->newFromTitle( $user->getTalkPage() ); + $article->doUserEditContent( ContentHandler::makeContent( "{$welcome} ~~~~", $article->getTitle() ), + $this->admin, wfMessage( 'confirmaccount-wsum' )->inContentLanguage()->text(), - EDIT_MINOR, - false, - $this->admin + EDIT_MINOR ); } } diff --git a/includes/business/AccountRequestSubmission.php b/includes/Submission/AccountRequest.php similarity index 76% rename from includes/business/AccountRequestSubmission.php rename to includes/Submission/AccountRequest.php index 95c3570b..75409837 100644 --- a/includes/business/AccountRequestSubmission.php +++ b/includes/Submission/AccountRequest.php @@ -1,11 +1,28 @@ mws = MediaWikiServices::getInstance(); $this->requester = $requester; + $this->params = $params; $this->userName = trim( $params['userName'] ); $this->realName = trim( $params['realName'] ); $this->tosAccepted = $params['tosAccepted']; @@ -70,11 +89,11 @@ public function getAttachtmentPrevName() { * @return array [ true or error key string, html error msg or null ] */ public function submit( IContextSource $context ) { - global $wgAccountRequestThrottle, $wgConfirmAccountRequestFormItems; + global $wgAccountRequestThrottle, $wgConfirmAccountRequestFormItems, $wgConfirmAccountCaptchas; ConfirmAccount::runAutoMaintenance(); - $cache = ObjectCache::getLocalClusterInstance(); + $cache = $this->mws->getObjectCacheFactory()->getLocalClusterInstance(); $formConfig = $wgConfirmAccountRequestFormItems; // convience $reqUser = $this->requester; @@ -85,15 +104,32 @@ public function submit( IContextSource $context ) { 'accountreq_permission_denied', $context->msg( 'badaccess-group0' )->escaped() ]; - } elseif ( wfReadOnly() ) { + } elseif ( $this->mws->getReadOnlyMode()->isReadOnly() ) { return [ 'accountreq_readonly', $context->msg( 'badaccess-group0' )->escaped() ]; } + # Check for captcha validity + if ( + $wgConfirmAccountCaptchas && + ExtensionRegistry::getInstance()->isLoaded( 'ConfirmEdit' ) + ) { + $captcha = CaptchaHooks::getInstance( CaptchaTriggers::CREATE_ACCOUNT ); + if ( + !$captcha->canSkipCaptcha( $reqUser, RequestContext::getMain()->getConfig() ) && + $captcha->triggersCaptcha( CaptchaTriggers::CREATE_ACCOUNT ) && + !$captcha->passCaptchaLimitedFromRequest( $context->getRequest(), $reqUser ) + ) { + return [ 'accountreq_bad_captcha', $context->msg( 'captcha-createaccount-fail' )->escaped() ]; + } + } + # Now create a dummy user ($u) and check if it is valid if ( $this->userName === '' ) { return [ 'accountreq_no_name', $context->msg( 'noname' )->escaped() ]; } - $u = User::newFromName( $this->userName, 'creatable' ); + $u = $this->mws->getUserFactory()->newFromName( + $this->userName, UserRigorOptions::RIGOR_CREATABLE + ); if ( !$u ) { return [ 'accountreq_invalid_name', $context->msg( 'noname' )->escaped() ]; } @@ -104,7 +140,7 @@ public function submit( IContextSource $context ) { if ( $value > $wgAccountRequestThrottle ) { return [ 'accountreq_throttled', - $context->msg( 'acct_request_throttle_hit', $wgAccountRequestThrottle )->text() + $context->msg( 'acct_request_throttle_hit', $wgAccountRequestThrottle )->escaped() ]; } } @@ -129,7 +165,7 @@ public function submit( IContextSource $context ) { return [ 'acct_request_short_bio', - $context->msg( 'requestaccount-tooshort' )->numParams( $minWords )->text() + $context->msg( 'requestaccount-tooshort' )->numParams( $minWords )->escaped() ]; } # Per security reasons, file dir cannot be pulled from client, @@ -146,12 +182,8 @@ public function submit( IContextSource $context ) { return [ false, $context->msg( 'requestaccount-resub' )->escaped() ]; } } - if ( method_exists( MediaWikiServices::class, 'getAuthManager' ) ) { - // MediaWiki 1.35+ - $authManager = MediaWikiServices::getInstance()->getAuthManager(); - } else { - $authManager = AuthManager::singleton(); - } + + $authManager = $this->mws->getAuthManager(); # Check if already in use if ( $u->idForName() != 0 || $authManager->userExists( $u->getName() ) ) { return [ @@ -163,9 +195,9 @@ public function submit( IContextSource $context ) { $u->setEmail( $this->email ); $u->setRealName( $this->realName ); - $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory(); - $dbw = $lbFactory->getMainLB()->getConnection( DB_MASTER ); - $dbw->startAtomic( __METHOD__ ); // ready to acquire locks + $lbFactory = $this->mws->getDBLoadBalancerFactory(); + $dbw = $lbFactory->getMainLB()->getConnection( DB_PRIMARY ); + $dbw->startAtomic( __METHOD__, $dbw::ATOMIC_CANCELABLE ); // ready to acquire locks # Check pending accounts for name use if ( !UserAccountRequest::acquireUsername( $u->getName() ) ) { $dbw->endAtomic( __METHOD__ ); @@ -216,18 +248,26 @@ public function submit( IContextSource $context ) { } # Start a transaction, move file from temp to account request directory. $repo = ConfirmAccount::getFileRepo( $wgConfirmAccountFSRepos['accountreqs'] ); - $key = sha1_file( $this->attachmentTempPath ) . '.' . $finalExt; - $pathRel = UserAccountRequest::relPathFromKey( $key ); + $storageKey = sha1_file( $this->attachmentTempPath ) . '.' . $finalExt; + $pathRel = UserAccountRequest::relPathFromKey( $storageKey ); $triplet = [ $this->attachmentTempPath, 'public', $pathRel ]; $status = $repo->storeBatch( [ $triplet ], FileRepo::OVERWRITE_SAME ); // save! if ( !$status->isOk() ) { - $lbFactory->rollbackMasterChanges( __METHOD__ ); + $dbw->cancelAtomic( __METHOD__ ); return [ 'acct_request_file_store_error', $context->msg( 'filecopyerror', $this->attachmentTempPath, $pathRel )->escaped() ]; } } + + $hookRunner = new HookRunner( $this->mws->getHookContainer() ); + $message = ""; + if ( $hookRunner->onConfirmAccount__checkRequest( $u, $this->params, $message ) === false ) { + $dbw->cancelAtomic( __METHOD__ ); + return [ 'acct_request_check_request_error', $message ]; + } + $expires = null; // passed by reference - $token = ConfirmAccount::getConfirmationToken( $u, $expires ); + $token = ConfirmAccount::getConfirmationToken( $expires ); # Insert into pending requests... $req = UserAccountRequest::newFromArray( [ @@ -243,7 +283,7 @@ public function submit( IContextSource $context ) { : null, 'type' => $this->type, 'areas' => $this->areas, - 'storage_key' => isset( $key ) ? $key : null, + 'storage_key' => isset( $storageKey ) ? $storageKey : null, 'comment' => '', 'email_token' => md5( $token ), 'email_token_expires' => $expires, @@ -255,12 +295,14 @@ public function submit( IContextSource $context ) { # Send confirmation, required! $result = ConfirmAccount::sendConfirmationMail( $u, $this->ip, $token, $expires ); if ( !$result->isOK() ) { - $lbFactory->rollbackMasterChanges( __METHOD__ ); // nevermind + $dbw->cancelAtomic( __METHOD__ ); if ( isset( $repo ) && isset( $pathRel ) ) { // remove attachment $repo->cleanupBatch( [ [ 'public', $pathRel ] ] ); } - $param = $context->getOutput()->parseAsInterface( $result->getWikiText() ); + $param = $context->getOutput()->parseAsInterface( + $this->mws->getFormatterFactory()->getStatusFormatter( $context )->getWikiText( $result ) + ); return [ 'acct_request_mail_failed', @@ -269,7 +311,7 @@ public function submit( IContextSource $context ) { $dbw->endAtomic( __METHOD__ ); - DeferredUpdates::addCallableUpdate( function () use ( $context, $reqUser, $cache ) { + DeferredUpdates::addCallableUpdate( static function () use ( $context, $reqUser, $cache ) { global $wgAccountRequestThrottle; # Clear cache for notice of how many account requests there are ConfirmAccount::clearAccountRequestCountCache(); diff --git a/includes/backend/UserAccountRequest.php b/includes/UserAccountRequest.php similarity index 73% rename from includes/backend/UserAccountRequest.php rename to includes/UserAccountRequest.php index 6b74e307..45363887 100644 --- a/includes/backend/UserAccountRequest.php +++ b/includes/UserAccountRequest.php @@ -1,5 +1,11 @@ notes = $row->acr_notes; $req->urls = $row->acr_urls; $req->type = (int)$row->acr_type; - $req->areas = self::expandAreas( $row->acr_areas ); - $req->fileName = strlen( $row->acr_filename ) + $req->areas = self::expandAreas( $row->acr_areas ?? '' ); + $req->fileName = strlen( $row->acr_filename ?? '' ) ? $row->acr_filename : null; $req->fileStorageKey = $row->acr_storage_key; @@ -85,50 +91,38 @@ public static function newFromArray( array $fields ) { $req->notes = $fields['notes']; $req->urls = $fields['urls']; $req->type = (int)$fields['type']; - $req->areas = is_string( $fields['areas'] ) - ? self::expandAreas( $fields['areas'] ) // DB format + $req->areas = is_string( $fields['areas'] ?? '' ) + ? self::expandAreas( $fields['areas'] ?? '' ) // DB format : $fields['areas']; // already expanded - $req->fileName = strlen( $fields['filename'] ) + $req->fileName = strlen( $fields['filename'] ?? '' ) ? $fields['filename'] : null; - $req->fileStorageKey = $fields['storage_key']; - $req->ip = $fields['ip']; - $req->xff = $fields['xff']; - $req->agent = $fields['agent']; - $req->emailToken = $fields['email_token']; // MD5 of token - $req->emailTokenExpires = wfTimestampOrNull( TS_MW, $fields['email_token_expires'] ); + $req->fileStorageKey = $fields['storage_key'] ?? ''; + $req->ip = $fields['ip'] ?? ''; + $req->xff = $fields['xff'] ?? ''; + $req->agent = $fields['agent'] ?? ''; + $req->emailToken = $fields['email_token'] ?? ''; // MD5 of token + $req->emailTokenExpires = wfTimestampOrNull( TS_MW, $fields['email_token_expires'] ?? '' ); // These fields are typically left to default on insertion... - $req->emailAuthTimestamp = isset( $fields['email_authenticated'] ) - ? wfTimestampOrNull( TS_MW, $fields['email_authenticated'] ) - : null; - $req->deleted = isset( $fields['deleted'] ) - ? $fields['deleted'] - : false; - $req->rejectedTimestamp = isset( $fields['rejected'] ) - ? wfTimestampOrNull( TS_MW, $fields['rejected'] ) - : null; - $req->heldTimestamp = isset( $fields['held'] ) - ? wfTimestampOrNull( TS_MW, $fields['held'] ) - : null; - $req->user = isset( $fields['user'] ) - ? (int)$fields['user'] - : 0; - $req->comment = isset( $fields['comment'] ) - ? $fields['comment'] - : ''; + $req->emailAuthTimestamp = wfTimestampOrNull( TS_MW, $fields['email_authenticated'] ?? null ); + $req->deleted = $fields['deleted'] ?? false; + $req->rejectedTimestamp = wfTimestampOrNull( TS_MW, $fields['rejected'] ?? null ); + $req->heldTimestamp = wfTimestampOrNull( TS_MW, $fields['held'] ?? null ); + $req->user = (int)( $fields['user'] ?? 0 ); + $req->comment = $fields['comment'] ?? ''; return $req; } /** * @param int $id - * @param string|null $from 'dbmaster' to use DB master + * @param string|null $from 'dbmaster' to use primary DB * @return UserAccountRequest|null */ public static function newFromId( $id, $from = null ) { $db = ( $from == 'dbmaster' ) - ? wfGetDB( DB_MASTER ) - : wfGetDB( DB_REPLICA ); + ? MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_PRIMARY ) + : MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_REPLICA ); $row = $db->selectRow( 'account_requests', '*', [ 'acr_id' => $id ], __METHOD__ ); if ( !$row ) { return null; @@ -138,13 +132,13 @@ public static function newFromId( $id, $from = null ) { /** * @param string $name - * @param string|null $from 'dbmaster' to use DB master + * @param string|null $from 'dbmaster' to use primary DB * @return UserAccountRequest|null */ public static function newFromName( $name, $from = null ) { $db = ( $from == 'dbmaster' ) - ? wfGetDB( DB_MASTER ) - : wfGetDB( DB_REPLICA ); + ? MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_PRIMARY ) + : MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_REPLICA ); $row = $db->selectRow( 'account_requests', '*', [ 'acr_name' => $name ], __METHOD__ ); if ( !$row ) { return null; @@ -211,6 +205,7 @@ public function getUrls() { /** * @param string $flat Use 'flat' to get a raw blob back * @return array|string Flat blob or array from expanded blob + * @throws MWException */ public function getAreas( $flat = 'expanded' ) { if ( $flat == 'expanded' ) { @@ -324,41 +319,38 @@ public function getHandlingComment() { * @return int */ public function insertOn() { - $dbw = wfGetDB( DB_MASTER ); + $dbw = MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_PRIMARY ); + $row = [ + 'acr_name' => strval( $this->name ), + 'acr_email' => strval( $this->email ), + 'acr_real_name' => strval( $this->realName ), + 'acr_registration' => $dbw->timestamp( $this->registration ), + 'acr_bio' => strval( $this->bio ), + 'acr_notes' => strval( $this->notes ), + 'acr_urls' => strval( $this->urls ), + 'acr_type' => strval( $this->type ), + 'acr_areas' => self::flattenAreas( $this->areas ), + 'acr_filename' => isset( $this->fileName ) + ? $this->fileName + : null, + 'acr_storage_key' => isset( $this->fileStorageKey ) + ? $this->fileStorageKey + : null, + 'acr_comment' => strval( $this->comment ), + 'acr_ip' => strval( $this->ip ), // for spam blocking + 'acr_xff' => strval( $this->xff ), // for spam blocking + 'acr_agent' => strval( $this->agent ), // for spam blocking + 'acr_deleted' => (int)$this->deleted, + 'acr_email_token' => strval( $this->emailToken ), // MD5 of token + 'acr_email_token_expires' => $dbw->timestamp( $this->emailTokenExpires ) + ]; # Allow for some fields to be handled automatically... - $acr_id = $this->id !== null - ? $this->id - : $dbw->nextSequenceValue( 'account_requests_acr_id_seq' ); + if ( $this->id ) { + $row['acr_id'] = $this->id; + } # Insert into pending requests... - $dbw->insert( 'account_requests', - [ - 'acr_id' => $acr_id, - 'acr_name' => strval( $this->name ), - 'acr_email' => strval( $this->email ), - 'acr_real_name' => strval( $this->realName ), - 'acr_registration' => $dbw->timestamp( $this->registration ), - 'acr_bio' => strval( $this->bio ), - 'acr_notes' => strval( $this->notes ), - 'acr_urls' => strval( $this->urls ), - 'acr_type' => strval( $this->type ), - 'acr_areas' => self::flattenAreas( $this->areas ), - 'acr_filename' => isset( $this->fileName ) - ? $this->fileName - : null, - 'acr_storage_key' => isset( $this->fileStorageKey ) - ? $this->fileStorageKey - : null, - 'acr_comment' => strval( $this->comment ), - 'acr_ip' => strval( $this->ip ), // for spam blocking - 'acr_xff' => strval( $this->xff ), // for spam blocking - 'acr_agent' => strval( $this->agent ), // for spam blocking - 'acr_deleted' => (int)$this->deleted, - 'acr_email_token' => strval( $this->emailToken ), // MD5 of token - 'acr_email_token_expires' => $dbw->timestamp( $this->emailTokenExpires ), - ], - __METHOD__ - ); - $this->id = $acr_id; // set for accessors + $dbw->insert( 'account_requests', $row, __METHOD__ ); + $this->id = $this->id ?: $dbw->insertId(); // set for accessors return $this->id; } @@ -371,7 +363,7 @@ public function insertOn() { * @return bool Success */ public function markRejected( User $admin, $timestamp, $reason = '' ) { - $dbw = wfGetDB( DB_MASTER ); + $dbw = MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_PRIMARY ); $dbw->update( 'account_requests', [ 'acr_rejected' => $dbw->timestamp( $timestamp ), @@ -392,7 +384,7 @@ public function markRejected( User $admin, $timestamp, $reason = '' ) { * @return bool Success */ public function markHeld( User $admin, $timestamp, $reason = '' ) { - $dbw = wfGetDB( DB_MASTER ); + $dbw = MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_PRIMARY ); $dbw->update( 'account_requests', [ 'acr_held' => $dbw->timestamp( $timestamp ), @@ -412,7 +404,7 @@ public function remove() { if ( !$this->id ) { throw new MWException( "Account request ID is not set." ); } - $dbw = wfGetDB( DB_MASTER ); + $dbw = MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_PRIMARY ); $dbw->delete( 'account_requests', [ 'acr_id' => $this->id ], __METHOD__ ); return ( $dbw->affectedRows() > 0 ); @@ -424,7 +416,7 @@ public function remove() { * @return bool */ public static function acquireUsername( $name ) { - $dbw = wfGetDB( DB_MASTER ); + $dbw = MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_PRIMARY ); $conds = [ 'acr_name' => $name ]; if ( $dbw->selectField( 'account_requests', '1', $conds, __METHOD__ ) ) { return false; // already in use @@ -439,7 +431,7 @@ public static function acquireUsername( $name ) { * @return bool */ public static function acquireEmail( $email ) { - $dbw = wfGetDB( DB_MASTER ); + $dbw = MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_PRIMARY ); $conds = [ 'acr_email' => $email ]; if ( $dbw->selectField( 'account_requests', '1', $conds, __METHOD__ ) ) { return false; // already in use diff --git a/package-lock.json b/package-lock.json index e4ab2d3a..460bd876 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,919 +1,4466 @@ { + "name": "ConfirmAccount", + "lockfileVersion": 2, "requires": true, - "lockfileVersion": 1, - "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==", - "requires": { - "@babel/highlight": "^7.10.4" + "packages": { + "": { + "name": "ConfirmAccount", + "devDependencies": { + "eslint-config-wikimedia": "0.32.3", + "grunt": "1.6.1", + "grunt-banana-checker": "0.13.0", + "grunt-eslint": "24.3.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "@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==" + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } }, - "@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==", - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" } }, - "@eslint/eslintrc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", - "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "lodash": "^4.17.20", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.76.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.76.0.tgz", + "integrity": "sha512-g+RihtzFgGTx2WYCuTHbdOXJeAlGnROws0TeALx9ow/ZmOROOZkVg5wp/B44n0WJgI4SQFP1eWM2iRPlU2Y14w==", + "dev": true, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - } + "@types/estree": "^1.0.8", + "@typescript-eslint/types": "^8.46.0", + "comment-parser": "1.4.1", + "esquery": "^1.6.0", + "jsdoc-type-pratt-parser": "~6.10.0" + }, + "engines": { + "node": ">=20.11.0" } }, - "@mdn/browser-compat-data": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-2.0.7.tgz", - "integrity": "sha512-GeeM827DlzFFidn1eKkMBiqXFD2oLsnZbaiGhByPl0vcapsRzUL+t9hDoov1swc9rB2jw64R+ihtzC8qOE9wXw==", + "node_modules/@es-joy/resolve.exports": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@es-joy/resolve.exports/-/resolve.exports-1.2.0.tgz", + "integrity": "sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g==", "dev": true, - "requires": { - "extend": "3.0.2" + "engines": { + "node": ">=10" } }, - "@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/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } }, - "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/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.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" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, - "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==", + "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 }, - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "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": "*" + } }, - "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==", - "requires": { - "color-convert": "^1.9.0" + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, "dependencies": { - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - } + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, - "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 + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, - "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==", + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "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=", + "node_modules/@mdn/browser-compat-data": { + "version": "5.7.6", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.7.6.tgz", + "integrity": "sha512-7xdrMX0Wk7grrTZQwAoy1GkvPMFoizStUoL+VmtUkAxegbCCec+3FKwOM6yc/uGU5+BEczQHXAlWiqvM8JeENg==", "dev": true }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } }, - "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 + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } }, - "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 + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } }, - "assign-symbols": { + "node_modules/@sindresorhus/base62": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "resolved": "https://registry.npmjs.org/@sindresorhus/base62/-/base62-1.0.0.tgz", + "integrity": "sha512-TeheYy0ILzBEI/CO55CP6zJCSdSWeRtGnHy8U8dWSUH4I68iqTsy7HkMktR4xakThc9jotkPQUXT4ITdbV7cHA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "ast-metadata-inferer": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.4.0.tgz", - "integrity": "sha512-tKHdBe8N/Vq2nLAm4YPBVREVZjMux6KrqyPfNQgIbDl0t7HaNSmy8w4OyVHYg/cvyn5BW7o7pVwpjPte89Zhcg==", - "dev": true + "node_modules/@stylistic/eslint-plugin": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-3.1.0.tgz", + "integrity": "sha512-pA6VOrOqk0+S8toJYhQGv2MWpQQR0QpeUo9AhNkC49Y26nxBQ/nH1rta9bUU1rPw2fJ1zZEMV5oCX5AazT7J2g==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^8.13.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "estraverse": "^5.3.0", + "picomatch": "^4.0.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": ">=8.40.0" + } }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" + "node_modules/@stylistic/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "node_modules/@stylistic/eslint-plugin/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "node_modules/@stylistic/eslint-plugin/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.0.tgz", + "integrity": "sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==", "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" - } - } + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.46.0", + "@typescript-eslint/type-utils": "8.46.0", + "@typescript-eslint/utils": "8.46.0", + "@typescript-eslint/visitor-keys": "8.46.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.46.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "engines": { + "node": ">= 4" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "node_modules/@typescript-eslint/parser": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.0.tgz", + "integrity": "sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==", "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" - } - } + "@typescript-eslint/scope-manager": "8.46.0", + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/typescript-estree": "8.46.0", + "@typescript-eslint/visitor-keys": "8.46.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "browserslist": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", - "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", + "node_modules/@typescript-eslint/project-service": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.0.tgz", + "integrity": "sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==", "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001173", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.634", - "escalade": "^3.1.1", - "node-releases": "^1.1.69" + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.46.0", + "@typescript-eslint/types": "^8.46.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.0.tgz", + "integrity": "sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==", "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" + "dependencies": { + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/visitor-keys": "8.46.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "caniuse-lite": { - "version": "1.0.30001180", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001180.tgz", - "integrity": "sha512-n8JVqXuZMVSPKiPiypjFtDTXc4jWIdjxull0f92WLo7e1MSi3uJ3NvveakSh/aCl1QKFAvIz3vIj0v+0K+FrXw==", - "dev": true + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.0.tgz", + "integrity": "sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "node_modules/@typescript-eslint/type-utils": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.0.tgz", + "integrity": "sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/typescript-estree": "8.46.0", + "@typescript-eslint/utils": "8.46.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "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==", + "node_modules/@typescript-eslint/types": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.0.tgz", + "integrity": "sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==", "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.0.tgz", + "integrity": "sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==", + "dev": true, "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" - } - } + "@typescript-eslint/project-service": "8.46.0", + "@typescript-eslint/tsconfig-utils": "8.46.0", + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/visitor-keys": "8.46.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "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==", - "requires": { - "color-name": "1.1.3" + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "node_modules/@typescript-eslint/utils": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.0.tgz", + "integrity": "sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.46.0", + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/typescript-estree": "8.46.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.0.tgz", + "integrity": "sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.46.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "comment-parser": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.6.tgz", - "integrity": "sha512-GKNxVA7/iuTnAqGADlTWX4tkhzxZKXp5fLJqKTlQLHkE65XDUKutZ3BHaJC5IGcper2tT3QRD1xr4o3jNpgXXg==", + "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 }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "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/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "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/argparse/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 }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "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.8.1", + "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.1.tgz", + "integrity": "sha512-ht3Dm6Zr7SXv6t1Ra6gFo0+kLDglHGrEbYihTkcycrbHw7WCcuhBzPlJYHEsIpycaUwzsJHje+vUcxXUX4ztTA==", + "dev": true, + "dependencies": { + "@mdn/browser-compat-data": "^5.6.19" + } + }, + "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 }, - "core-js": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", - "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==", + "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 }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "node_modules/baseline-browser-mapping": { + "version": "2.8.28", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.28.tgz", + "integrity": "sha512-gYjt7OIqdM0PcttNYP2aVrr2G0bMALkBaoehD4BuRGjAOtipg0b6wHg1yNL+s5zSnLZZrGHOw4IrND8CD+3oIQ==", + "dev": true, + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", + "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } + "baseline-browser-mapping": "^2.8.25", + "caniuse-lite": "^1.0.30001754", + "electron-to-chromium": "^1.5.249", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.1.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/browserslist-config-wikimedia": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.7.0.tgz", + "integrity": "sha512-CTa0lv78dXKEgrYsOLCkqO+9UUS3CV9MWEOYHcymgEvx4mYxB80sCoKRCR7wW2SOMNxjaP9hohrZripjnKuRTA==", + "dev": true + }, + "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/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.30001754", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz", + "integrity": "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ] + }, + "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" } }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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 }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" + "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" } }, - "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=", + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ci-info": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "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/comment-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", + "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 }, - "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=" + "node_modules/core-js-compat": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz", + "integrity": "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==", + "dev": true, + "dependencies": { + "browserslist": "^4.26.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } }, - "define-property": { + "node_modules/cross-spawn/node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" }, + "engines": { + "node": ">= 8" + } + }, + "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/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, "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" - } + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "detect-file": { + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "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 + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "doctrine": { + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "requires": { + "dev": true, + "dependencies": { "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "electron-to-chromium": { - "version": "1.3.648", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.648.tgz", - "integrity": "sha512-4POzwyQ80tkDiBwkxn7IpfzioimrjRSFX1sCQ3pLZsYJ5ERYmwzdq0hZZ3nFP7Z6GtmnSn3xwWDm8FPlMeOoEQ==", + "node_modules/electron-to-chromium": { + "version": "1.5.252", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.252.tgz", + "integrity": "sha512-53uTpjtRgS7gjIxZ4qCgFdNO2q+wJt/Z8+xAvxbCqXPJrY6h7ighUkadQmNMXH96crtpa6gPFNP7BF4UBGDuaA==", "dev": true }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "requires": { - "ansi-colors": "^4.1.1" + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "dependencies": { + "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 + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "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=" + "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" + } }, - "eslint": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", - "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.3.0", - "ajv": "^6.10.0", + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "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.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.2.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", - "file-entry-cache": "^6.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.20", - "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", - "strip-json-comments": "^3.1.0", - "table": "^6.0.4", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, + "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-compat-utils": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.5.tgz", + "integrity": "sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "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==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - } - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-wikimedia": { + "version": "0.32.3", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.32.3.tgz", + "integrity": "sha512-Ekz2/ozpCCjQl3VbC6dW7ChqoW7FRilLDxmJ+FJOZhIxxzZSZR5QqQOAGWSZAlG1ONkZbYV/TPwGLWZcrNxyaA==", + "dev": true, + "dependencies": { + "@stylistic/eslint-plugin": "^3.1.0", + "@typescript-eslint/eslint-plugin": "8.46.0", + "@typescript-eslint/parser": "8.46.0", + "browserslist-config-wikimedia": "^0.7.0", + "eslint": "^8.57.0", + "eslint-plugin-compat": "^6.0.2", + "eslint-plugin-es-x": "^8.7.0", + "eslint-plugin-jest": "^29.0.1", + "eslint-plugin-jsdoc": "61.3.0", + "eslint-plugin-json-es": "^1.6.0", + "eslint-plugin-mediawiki": "^0.8.2", + "eslint-plugin-mocha": "^10.5.0", + "eslint-plugin-n": "^17.23.1", + "eslint-plugin-no-jquery": "^3.1.1", + "eslint-plugin-qunit": "^8.2.5", + "eslint-plugin-security": "^3.0.1", + "eslint-plugin-unicorn": "^56.0.1", + "eslint-plugin-vue": "^9.33.0", + "eslint-plugin-wdio": "^9.16.2", + "eslint-plugin-yml": "^1.19.0" + }, + "engines": { + "node": ">=20 <25" + } + }, + "node_modules/eslint-plugin-compat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-6.0.2.tgz", + "integrity": "sha512-1ME+YfJjmOz1blH0nPZpHgjMGK4kjgEeoYqGCqoBPQ/mGu/dJzdoP0f1C8H2jcWZjzhZjAMccbM/VdXhPORIfA==", + "dev": true, + "dependencies": { + "@mdn/browser-compat-data": "^5.5.35", + "ast-metadata-inferer": "^0.8.1", + "browserslist": "^4.24.2", + "caniuse-lite": "^1.0.30001687", + "find-up": "^5.0.0", + "globals": "^15.7.0", + "lodash.memoize": "^4.1.2", + "semver": "^7.6.2" + }, + "engines": { + "node": ">=18.x" + }, + "peerDependencies": { + "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-compat/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-8.7.0.tgz", + "integrity": "sha512-Du5Sb067sjqzmglaPhsfcEQgE1EYfL8sko+4jOMcAB/XKGoCxntSrOmTYuVzswA1rzM9+MZwH6+GOp0G3/wVCg==", + "dev": true, + "funding": [ + "https://github.com/sponsors/ota-meshi", + "https://opencollective.com/eslint" + ], + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.12.1", + "eslint-compat-utils": "^0.6.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "29.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.1.0.tgz", + "integrity": "sha512-LabxXbASXVjguqL+kBHTPMf3gUeSqwH4fsrEyHTY/MCs42I/p9+ctg09SJpYiD8eGaIsP6GwYr5xW6xWS9XgZg==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^8.0.0" + }, + "engines": { + "node": "^20.12.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } + "jest": { + "optional": true } } }, - "eslint-config-wikimedia": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.18.1.tgz", - "integrity": "sha512-93nHVH4CGxYwelbTjJQLr0xqn4XIe9WwWeGL4wMnELZW/Aceg52aT7AgIdV0659ReLzrCgxLPDvbeqB47LjBTQ==", - "dev": true, - "requires": { - "eslint": "^7.17.0", - "eslint-plugin-compat": "^3.9.0", - "eslint-plugin-es": "^4.1.0", - "eslint-plugin-jsdoc": "^30.7.13", - "eslint-plugin-json-es": "^1.5.1", - "eslint-plugin-mediawiki": "^0.2.6", - "eslint-plugin-mocha": "^8.0.0", - "eslint-plugin-no-jquery": "^2.5.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-qunit": "^5.2.0", - "eslint-plugin-vue": "^7.4.1", - "eslint-plugin-wdio": "^6.0.12" - }, - "dependencies": { - "@eslint/eslintrc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", - "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "lodash": "^4.17.20", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ajv": { - "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", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - } - } - }, - "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "node_modules/eslint-plugin-jsdoc": { + "version": "61.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-61.3.0.tgz", + "integrity": "sha512-E4m/5J5lrasd63Z74q4CCZ4PFnywnnrcvA7zZ98802NPhrZKKTp5NH+XAT+afcjXp2ps2/OQF5gPSWCT2XFCJg==", + "dev": true, + "dependencies": { + "@es-joy/jsdoccomment": "~0.76.0", + "@es-joy/resolve.exports": "1.2.0", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.1", + "debug": "^4.4.3", + "escape-string-regexp": "^4.0.0", + "espree": "^10.4.0", + "esquery": "^1.6.0", + "html-entities": "^2.6.0", + "object-deep-merge": "^2.0.0", + "parse-imports-exports": "^0.2.4", + "semver": "^7.7.3", + "spdx-expression-parse": "^4.0.0", + "to-valid-identifier": "^1.0.0" + }, + "engines": { + "node": ">=20.11.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-json-es": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-json-es/-/eslint-plugin-json-es-1.6.0.tgz", + "integrity": "sha512-xVn6hufGQH1Aa+yqOhQ43Cq28GuitTcMpQh+uaUh27U2qnVLBrvkN+2xQSnv6zpdLEPS35JCNhq4kvhR+PQCgw==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1" + }, + "peerDependencies": { + "eslint": ">= 7" + } + }, + "node_modules/eslint-plugin-mediawiki": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.8.2.tgz", + "integrity": "sha512-ydYrpkzm8IVVDQA96QPF3HnFd2xjkIEh7gixD2gvOqUbUZF0p36LtpWXOFAlPWAvHLePWbNNTD5ovd3d4hEtog==", + "dev": true, + "dependencies": { + "upath": "^2.0.1" + }, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-mocha": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz", + "integrity": "sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "globals": "^13.24.0", + "rambda": "^7.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "17.23.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.23.1.tgz", + "integrity": "sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.5.0", + "enhanced-resolve": "^5.17.1", + "eslint-plugin-es-x": "^7.8.0", + "get-tsconfig": "^4.8.1", + "globals": "^15.11.0", + "globrex": "^0.1.2", + "ignore": "^5.3.2", + "semver": "^7.6.3", + "ts-declaration-location": "^1.0.6" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": ">=8.23.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/eslint-plugin-es-x": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", + "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/ota-meshi", + "https://opencollective.com/eslint" + ], + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.11.0", + "eslint-compat-utils": "^0.5.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-n/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-no-jquery": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.1.1.tgz", + "integrity": "sha512-LTLO3jH/Tjr1pmxCEqtV6qmt+OChv8La4fwgG470JRpgxyFF4NOzoC9CRy92GIWD3Yjl0qLEgPmD2FLQWcNEjg==", + "dev": true, + "peerDependencies": { + "eslint": ">=8.0.0" + } + }, + "node_modules/eslint-plugin-qunit": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.2.5.tgz", + "integrity": "sha512-qr7RJCYImKQjB+39q4q46i1l7p1V3joHzBE5CAYfxn5tfVFjrnjn/tw7q/kDyweU9kAIcLul0Dx/KWVUCb3BgA==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "requireindex": "^1.2.0" + }, + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/eslint-plugin-security": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-3.0.1.tgz", + "integrity": "sha512-XjVGBhtDZJfyuhIxnQ/WMm385RbX3DBu7H1J7HNNhmB2tnGxMeqVSnYv79oAj992ayvIBZghsymwkYFS6cGH4Q==", + "dev": true, + "dependencies": { + "safe-regex": "^2.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-unicorn": { + "version": "56.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-56.0.1.tgz", + "integrity": "sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "@eslint-community/eslint-utils": "^4.4.0", + "ci-info": "^4.0.0", + "clean-regexp": "^1.0.0", + "core-js-compat": "^3.38.1", + "esquery": "^1.6.0", + "globals": "^15.9.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.2.1", + "jsesc": "^3.0.2", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.27", + "regjsparser": "^0.10.0", + "semver": "^7.6.3", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=18.18" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=8.56.0" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz", + "integrity": "sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-wdio": { + "version": "9.16.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-9.16.2.tgz", + "integrity": "sha512-qkqsPgxN70OnUPWMjmzJbSbvm2+Q087JIGss53/OFI4Y46xKlV5VLhLiYealaAibAiXmnfWKd0tERjZAzVL87A==", + "dev": true, + "engines": { + "node": ">=18.20.0" + } + }, + "node_modules/eslint-plugin-yml": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.19.0.tgz", + "integrity": "sha512-S+4GbcCWksFKAvFJtf0vpdiCkZZvDJCV4Zsi9ahmYkYOYcf+LRqqzvzkb/ST7vTYV6sFwXOvawzYyL/jFT2nQA==", + "dev": true, + "dependencies": { + "debug": "^4.3.2", + "diff-sequences": "^27.5.1", + "escape-string-regexp": "4.0.0", + "eslint-compat-utils": "^0.6.0", + "natural-compare": "^1.4.0", + "yaml-eslint-parser": "^1.2.1" + }, + "engines": { + "node": "^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.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/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-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-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/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/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "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.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "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-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "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": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/getobject": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.0.tgz", + "integrity": "sha512-tbUz6AKKKr2YiMB+fLWIgq5ZeBOobop9YMMAU9dC54/ot2ksMXt3DOFyBuhZw6ptcVszEykgByK20j7W9jHFag==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "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/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/grunt": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz", + "integrity": "sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==", + "dev": true, + "dependencies": { + "dateformat": "~4.6.2", + "eventemitter2": "~0.4.13", + "exit": "~0.1.2", + "findup-sync": "~5.0.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.6.3", + "js-yaml": "~3.14.0", + "minimatch": "~3.0.4", + "nopt": "~3.0.6" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/grunt-banana-checker": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.13.0.tgz", + "integrity": "sha512-uAUKILcP69Q4OJHHV2wzxqVaoXB8G3Uh/XuSJLn0Bk/9+WiUY/Q4+OX7dUhrPPeDZPtoGh37qqJLVvZlDTUecg==", + "dev": true, + "dependencies": { + "chalk": "4.1.2" + }, + "bin": { + "banana-checker": "src/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "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-eslint": { + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.3.0.tgz", + "integrity": "sha512-dUPiRgX8fhmh4uwTAn9xrzg7HV5j5DhGmZZGJdHfjy/AN9G4jD+5IjfbcAJ209JcIG8m4B7xz3crIhuDSm3siQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "eslint": "^8.44.0" + }, + "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-legacy-util/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/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.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/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "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": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "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": "6.10.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-6.10.0.tgz", + "integrity": "sha512-+LexoTRyYui5iOhJGn13N9ZazL23nAHGkXsa1p/C8yeq79WRfLBag6ZZ0FQG2aRoc9yfo59JT9EYCQonOkHKkQ==", + "dev": true, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "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/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": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "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/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/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "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/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "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.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "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.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-deep-merge": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-2.0.0.tgz", + "integrity": "sha512-3DC3UMpeffLTHiuXSy/UG4NOIYTLlY9u3V82+djSCLYClWobZiS4ivYzpIUWrRY/nfsJ8cWsKyG3QfyLePmhvg==", + "dev": true + }, + "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.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "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-imports-exports": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/parse-imports-exports/-/parse-imports-exports-0.2.4.tgz", + "integrity": "sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==", + "dev": true, + "dependencies": { + "parse-statements": "1.0.11" + } + }, + "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/parse-statements": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/parse-statements/-/parse-statements-1.0.11.tgz", + "integrity": "sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==", + "dev": true + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "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.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "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.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/rambda": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", + "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", + "dev": true + }, + "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.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "dev": true, + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regjsparser": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", + "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "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/reserved-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/reserved-identifiers/-/reserved-identifiers-1.2.0.tgz", + "integrity": "sha512-yE7KUfFvaBFzGPs5H3Ops1RevfUEsDc5Iz65rOwWg4lE8HJSYtle77uul3+573457oHvBKuHYDl/xqUkKpEEdw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "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/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "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" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "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.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "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/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-correct/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-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "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-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/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "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/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/to-valid-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-valid-identifier/-/to-valid-identifier-1.0.0.tgz", + "integrity": "sha512-41wJyvKep3yT2tyPqX/4blcfybknGB4D+oETKLs7Q76UiPqRpUJK3hr1nxelyYO0PHKVzJwlu0aCeEAsGI6rpw==", + "dev": true, + "dependencies": { + "@sindresorhus/base62": "^1.0.0", + "reserved-identifiers": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-declaration-location": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz", + "integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==", + "dev": true, + "funding": [ + { + "type": "ko-fi", + "url": "https://ko-fi.com/rebeccastevens" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/ts-declaration-location" + } + ], + "dependencies": { + "picomatch": "^4.0.2" + }, + "peerDependencies": { + "typescript": ">=4.0.0" + } + }, + "node_modules/ts-declaration-location/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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/typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "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/update-browserslist-db": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "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/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/validate-npm-package-license/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/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yaml": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.3.0.tgz", + "integrity": "sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.0.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "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": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, + "@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true + }, + "@es-joy/jsdoccomment": { + "version": "0.76.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.76.0.tgz", + "integrity": "sha512-g+RihtzFgGTx2WYCuTHbdOXJeAlGnROws0TeALx9ow/ZmOROOZkVg5wp/B44n0WJgI4SQFP1eWM2iRPlU2Y14w==", + "dev": true, + "requires": { + "@types/estree": "^1.0.8", + "@typescript-eslint/types": "^8.46.0", + "comment-parser": "1.4.1", + "esquery": "^1.6.0", + "jsdoc-type-pratt-parser": "~6.10.0" + } + }, + "@es-joy/resolve.exports": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@es-joy/resolve.exports/-/resolve.exports-1.2.0.tgz", + "integrity": "sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g==", + "dev": true + }, + "@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.4.3" + } + }, + "@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.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 }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "requires": { - "color-convert": "^2.0.1" + "argparse": "^2.0.1" } }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "brace-expansion": "^1.1.7" } + } + } + }, + "@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "@mdn/browser-compat-data": { + "version": "5.7.6", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.7.6.tgz", + "integrity": "sha512-7xdrMX0Wk7grrTZQwAoy1GkvPMFoizStUoL+VmtUkAxegbCCec+3FKwOM6yc/uGU5+BEczQHXAlWiqvM8JeENg==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sindresorhus/base62": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/base62/-/base62-1.0.0.tgz", + "integrity": "sha512-TeheYy0ILzBEI/CO55CP6zJCSdSWeRtGnHy8U8dWSUH4I68iqTsy7HkMktR4xakThc9jotkPQUXT4ITdbV7cHA==", + "dev": true + }, + "@stylistic/eslint-plugin": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-3.1.0.tgz", + "integrity": "sha512-pA6VOrOqk0+S8toJYhQGv2MWpQQR0QpeUo9AhNkC49Y26nxBQ/nH1rta9bUU1rPw2fJ1zZEMV5oCX5AazT7J2g==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "^8.13.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "estraverse": "^5.3.0", + "picomatch": "^4.0.2" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true }, - "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==", + "espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "requires": { - "color-name": "~1.1.4" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" } }, - "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==", + "picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + } + } + }, + "@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.0.tgz", + "integrity": "sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.46.0", + "@typescript-eslint/type-utils": "8.46.0", + "@typescript-eslint/utils": "8.46.0", + "@typescript-eslint/visitor-keys": "8.46.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "dependencies": { + "ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true - }, - "eslint": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", - "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", + } + } + }, + "@typescript-eslint/parser": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.0.tgz", + "integrity": "sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "8.46.0", + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/typescript-estree": "8.46.0", + "@typescript-eslint/visitor-keys": "8.46.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/project-service": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.0.tgz", + "integrity": "sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==", + "dev": true, + "requires": { + "@typescript-eslint/tsconfig-utils": "^8.46.0", + "@typescript-eslint/types": "^8.46.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.0.tgz", + "integrity": "sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/visitor-keys": "8.46.0" + } + }, + "@typescript-eslint/tsconfig-utils": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.0.tgz", + "integrity": "sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==", + "dev": true, + "requires": {} + }, + "@typescript-eslint/type-utils": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.0.tgz", + "integrity": "sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/typescript-estree": "8.46.0", + "@typescript-eslint/utils": "8.46.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + } + }, + "@typescript-eslint/types": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.0.tgz", + "integrity": "sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.0.tgz", + "integrity": "sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==", + "dev": true, + "requires": { + "@typescript-eslint/project-service": "8.46.0", + "@typescript-eslint/tsconfig-utils": "8.46.0", + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/visitor-keys": "8.46.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.3.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^6.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.20", - "minimatch": "^3.0.4", - "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", - "strip-json-comments": "^3.1.0", - "table": "^6.0.4", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "balanced-match": "^1.0.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==", + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "brace-expansion": "^2.0.1" } - }, + } + } + }, + "@typescript-eslint/utils": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.0.tgz", + "integrity": "sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.46.0", + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/typescript-estree": "8.46.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.0.tgz", + "integrity": "sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.46.0", + "eslint-visitor-keys": "^4.2.1" + }, + "dependencies": { "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "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 - } - } - }, - "esrecurse": { + } + } + }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true + }, + "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, + "requires": {} + }, + "ajv": { + "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", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + } + } + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "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 + }, + "ast-metadata-inferer": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.1.tgz", + "integrity": "sha512-ht3Dm6Zr7SXv6t1Ra6gFo0+kLDglHGrEbYihTkcycrbHw7WCcuhBzPlJYHEsIpycaUwzsJHje+vUcxXUX4ztTA==", + "dev": true, + "requires": { + "@mdn/browser-compat-data": "^5.6.19" + } + }, + "async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "baseline-browser-mapping": { + "version": "2.8.28", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.28.tgz", + "integrity": "sha512-gYjt7OIqdM0PcttNYP2aVrr2G0bMALkBaoehD4BuRGjAOtipg0b6wHg1yNL+s5zSnLZZrGHOw4IrND8CD+3oIQ==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "browserslist": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", + "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", + "dev": true, + "requires": { + "baseline-browser-mapping": "^2.8.25", + "caniuse-lite": "^1.0.30001754", + "electron-to-chromium": "^1.5.249", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.1.4" + } + }, + "browserslist-config-wikimedia": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.7.0.tgz", + "integrity": "sha512-CTa0lv78dXKEgrYsOLCkqO+9UUS3CV9MWEOYHcymgEvx4mYxB80sCoKRCR7wW2SOMNxjaP9hohrZripjnKuRTA==", + "dev": true + }, + "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 + }, + "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.30001754", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz", + "integrity": "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==", + "dev": true + }, + "chalk": { + "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", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { "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": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "file-entry-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", - "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "flat-cache": "^3.0.4" + "color-convert": "^2.0.1" } }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "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, "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "color-name": "~1.1.4" } }, - "flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "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 }, "has-flag": { @@ -922,49 +4469,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "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" - } - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -973,286 +4477,571 @@ "requires": { "has-flag": "^4.0.0" } - }, - "table": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", - "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + } + } + }, + "ci-info": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", + "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": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + } + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "comment-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", + "dev": true + }, + "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 + }, + "core-js-compat": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz", + "integrity": "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==", + "dev": true, + "requires": { + "browserslist": "^4.26.3" + } + }, + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "ajv": "^7.0.2", - "lodash": "^4.17.20", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0" - }, - "dependencies": { - "ajv": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", - "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } + "isexe": "^2.0.0" } } } }, - "eslint-plugin-compat": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-3.9.0.tgz", - "integrity": "sha512-lt3l5PHFHVEYSZ5zijcoYvtQJPsBifRiH5N0Et57KwVu7l/yxmHhSG6VJiLMa/lXrg93Qu8049RNQOMn0+yJBg==", + "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 + }, + "dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "dev": true + }, + "debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "requires": { - "@mdn/browser-compat-data": "^2.0.7", - "ast-metadata-inferer": "^0.4.0", - "browserslist": "^4.12.2", - "caniuse-lite": "^1.0.30001166", - "core-js": "^3.6.5", - "find-up": "^4.1.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.2" + "ms": "^2.1.3" } }, - "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==", + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "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 + }, + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" + "esutils": "^2.0.2" } }, - "eslint-plugin-jsdoc": { - "version": "30.7.13", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.7.13.tgz", - "integrity": "sha512-YM4WIsmurrp0rHX6XiXQppqKB8Ne5ATiZLJe2+/fkp9l9ExXFr43BbAbjZaVrpCT+tuPYOZ8k1MICARHnURUNQ==", + "electron-to-chromium": { + "version": "1.5.252", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.252.tgz", + "integrity": "sha512-53uTpjtRgS7gjIxZ4qCgFdNO2q+wJt/Z8+xAvxbCqXPJrY6h7ighUkadQmNMXH96crtpa6gPFNP7BF4UBGDuaA==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", "dev": true, "requires": { - "comment-parser": "^0.7.6", - "debug": "^4.3.1", - "jsdoctypeparser": "^9.0.0", - "lodash": "^4.17.20", - "regextras": "^0.7.1", - "semver": "^7.3.4", - "spdx-expression-parse": "^3.0.1" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true + }, + "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 + }, + "eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "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.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "requires": { - "ms": "2.1.2" + "argparse": "^2.0.1" } }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "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": { - "lru-cache": "^6.0.0" + "brace-expansion": "^1.1.7" } } } }, - "eslint-plugin-json-es": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-json-es/-/eslint-plugin-json-es-1.5.1.tgz", - "integrity": "sha512-YMzAWMcmKOYWiH0MsN3JOr0AdtZ2Rvmk3YmscsX1rHYJZRsL4KRo+yj9ktRk7S7mgy+G5TORWJ5D3/vH/u7R5A==", + "eslint-compat-utils": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.5.tgz", + "integrity": "sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==", + "dev": true, + "requires": { + "semver": "^7.5.4" + } + }, + "eslint-config-wikimedia": { + "version": "0.32.3", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.32.3.tgz", + "integrity": "sha512-Ekz2/ozpCCjQl3VbC6dW7ChqoW7FRilLDxmJ+FJOZhIxxzZSZR5QqQOAGWSZAlG1ONkZbYV/TPwGLWZcrNxyaA==", + "dev": true, + "requires": { + "@stylistic/eslint-plugin": "^3.1.0", + "@typescript-eslint/eslint-plugin": "8.46.0", + "@typescript-eslint/parser": "8.46.0", + "browserslist-config-wikimedia": "^0.7.0", + "eslint": "^8.57.0", + "eslint-plugin-compat": "^6.0.2", + "eslint-plugin-es-x": "^8.7.0", + "eslint-plugin-jest": "^29.0.1", + "eslint-plugin-jsdoc": "61.3.0", + "eslint-plugin-json-es": "^1.6.0", + "eslint-plugin-mediawiki": "^0.8.2", + "eslint-plugin-mocha": "^10.5.0", + "eslint-plugin-n": "^17.23.1", + "eslint-plugin-no-jquery": "^3.1.1", + "eslint-plugin-qunit": "^8.2.5", + "eslint-plugin-security": "^3.0.1", + "eslint-plugin-unicorn": "^56.0.1", + "eslint-plugin-vue": "^9.33.0", + "eslint-plugin-wdio": "^9.16.2", + "eslint-plugin-yml": "^1.19.0" + } + }, + "eslint-plugin-compat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-6.0.2.tgz", + "integrity": "sha512-1ME+YfJjmOz1blH0nPZpHgjMGK4kjgEeoYqGCqoBPQ/mGu/dJzdoP0f1C8H2jcWZjzhZjAMccbM/VdXhPORIfA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.3.0", - "espree": "^7.3.1" + "@mdn/browser-compat-data": "^5.5.35", + "ast-metadata-inferer": "^0.8.1", + "browserslist": "^4.24.2", + "caniuse-lite": "^1.0.30001687", + "find-up": "^5.0.0", + "globals": "^15.7.0", + "lodash.memoize": "^4.1.2", + "semver": "^7.6.2" }, "dependencies": { - "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - } } } }, - "eslint-plugin-mediawiki": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.2.6.tgz", - "integrity": "sha512-e7gx15H39ceam9AnSr6DDyfhMM9L43PVagHzclH3CF33DvWKi/OA+j2dqzJTuJcl5P/EmVIQHG5qoTaepkADsw==", + "eslint-plugin-es-x": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-8.7.0.tgz", + "integrity": "sha512-Du5Sb067sjqzmglaPhsfcEQgE1EYfL8sko+4jOMcAB/XKGoCxntSrOmTYuVzswA1rzM9+MZwH6+GOp0G3/wVCg==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.12.1", + "eslint-compat-utils": "^0.6.3" + } + }, + "eslint-plugin-jest": { + "version": "29.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.1.0.tgz", + "integrity": "sha512-LabxXbASXVjguqL+kBHTPMf3gUeSqwH4fsrEyHTY/MCs42I/p9+ctg09SJpYiD8eGaIsP6GwYr5xW6xWS9XgZg==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "^8.0.0" + } + }, + "eslint-plugin-jsdoc": { + "version": "61.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-61.3.0.tgz", + "integrity": "sha512-E4m/5J5lrasd63Z74q4CCZ4PFnywnnrcvA7zZ98802NPhrZKKTp5NH+XAT+afcjXp2ps2/OQF5gPSWCT2XFCJg==", "dev": true, "requires": { - "eslint-plugin-vue": "^6.2.2", - "upath": "^1.2.0" + "@es-joy/jsdoccomment": "~0.76.0", + "@es-joy/resolve.exports": "1.2.0", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.1", + "debug": "^4.4.3", + "escape-string-regexp": "^4.0.0", + "espree": "^10.4.0", + "esquery": "^1.6.0", + "html-entities": "^2.6.0", + "object-deep-merge": "^2.0.0", + "parse-imports-exports": "^0.2.4", + "semver": "^7.7.3", + "spdx-expression-parse": "^4.0.0", + "to-valid-identifier": "^1.0.0" }, "dependencies": { - "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==", + "eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true + }, + "espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "requires": { - "natural-compare": "^1.4.0", - "semver": "^5.6.0", - "vue-eslint-parser": "^7.0.0" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true } } }, - "eslint-plugin-mocha": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-8.0.0.tgz", - "integrity": "sha512-n67etbWDz6NQM+HnTwZHyBwz/bLlYPOxUbw7bPuCyFujv7ZpaT/Vn6KTAbT02gf7nRljtYIjWcTxK/n8a57rQQ==", + "eslint-plugin-json-es": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-json-es/-/eslint-plugin-json-es-1.6.0.tgz", + "integrity": "sha512-xVn6hufGQH1Aa+yqOhQ43Cq28GuitTcMpQh+uaUh27U2qnVLBrvkN+2xQSnv6zpdLEPS35JCNhq4kvhR+PQCgw==", "dev": true, "requires": { - "eslint-utils": "^2.1.0", - "ramda": "^0.27.1" + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1" } }, - "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==", - "dev": true + "eslint-plugin-mediawiki": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.8.2.tgz", + "integrity": "sha512-ydYrpkzm8IVVDQA96QPF3HnFd2xjkIEh7gixD2gvOqUbUZF0p36LtpWXOFAlPWAvHLePWbNNTD5ovd3d4hEtog==", + "dev": true, + "requires": { + "upath": "^2.0.1" + } }, - "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==", + "eslint-plugin-mocha": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz", + "integrity": "sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==", "dev": true, "requires": { - "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" + "eslint-utils": "^3.0.0", + "globals": "^13.24.0", + "rambda": "^7.4.0" + } + }, + "eslint-plugin-n": { + "version": "17.23.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.23.1.tgz", + "integrity": "sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.5.0", + "enhanced-resolve": "^5.17.1", + "eslint-plugin-es-x": "^7.8.0", + "get-tsconfig": "^4.8.1", + "globals": "^15.11.0", + "globrex": "^0.1.2", + "ignore": "^5.3.2", + "semver": "^7.6.3", + "ts-declaration-location": "^1.0.6" }, "dependencies": { - "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==", + "eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", "dev": true, "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" + "semver": "^7.5.4" } }, - "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-x": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", + "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.11.0", + "eslint-compat-utils": "^0.5.1" + } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", "dev": true } } }, + "eslint-plugin-no-jquery": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.1.1.tgz", + "integrity": "sha512-LTLO3jH/Tjr1pmxCEqtV6qmt+OChv8La4fwgG470JRpgxyFF4NOzoC9CRy92GIWD3Yjl0qLEgPmD2FLQWcNEjg==", + "dev": true, + "requires": {} + }, "eslint-plugin-qunit": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-5.3.0.tgz", - "integrity": "sha512-SeN55paT/BkFvNmi+CSnoCymisEJbmDYvPoBbVlRGsL3ara0P6fnGYRxjIhF6cK37CTZf/8vD5lrVxS3mb0LzA==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.2.5.tgz", + "integrity": "sha512-qr7RJCYImKQjB+39q4q46i1l7p1V3joHzBE5CAYfxn5tfVFjrnjn/tw7q/kDyweU9kAIcLul0Dx/KWVUCb3BgA==", "dev": true, "requires": { - "eslint-utils": "^2.1.0", + "eslint-utils": "^3.0.0", "requireindex": "^1.2.0" } }, + "eslint-plugin-security": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-3.0.1.tgz", + "integrity": "sha512-XjVGBhtDZJfyuhIxnQ/WMm385RbX3DBu7H1J7HNNhmB2tnGxMeqVSnYv79oAj992ayvIBZghsymwkYFS6cGH4Q==", + "dev": true, + "requires": { + "safe-regex": "^2.1.1" + } + }, + "eslint-plugin-unicorn": { + "version": "56.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-56.0.1.tgz", + "integrity": "sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.24.7", + "@eslint-community/eslint-utils": "^4.4.0", + "ci-info": "^4.0.0", + "clean-regexp": "^1.0.0", + "core-js-compat": "^3.38.1", + "esquery": "^1.6.0", + "globals": "^15.9.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.2.1", + "jsesc": "^3.0.2", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.27", + "regjsparser": "^0.10.0", + "semver": "^7.6.3", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true + } + } + }, "eslint-plugin-vue": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.5.0.tgz", - "integrity": "sha512-QnMMTcyV8PLxBz7QQNAwISSEs6LYk2LJvGlxalXvpCtfKnqo7qcY0aZTIxPe8QOnHd7WCwiMZLOJzg6A03T0Gw==", + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz", + "integrity": "sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==", "dev": true, "requires": { - "eslint-utils": "^2.1.0", + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", "natural-compare": "^1.4.0", - "semver": "^7.3.2", - "vue-eslint-parser": "^7.4.1" + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" } }, "eslint-plugin-wdio": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-6.6.0.tgz", - "integrity": "sha512-6nhKL5pt1/btKrqJWZ4qqaRtrPspXJYJNIkuYLyXGOvla2Ey55iuegbnP29Gb7XTq5B9MXOPTg9CQhk2qqMJ6Q==", + "version": "9.16.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-9.16.2.tgz", + "integrity": "sha512-qkqsPgxN70OnUPWMjmzJbSbvm2+Q087JIGss53/OFI4Y46xKlV5VLhLiYealaAibAiXmnfWKd0tERjZAzVL87A==", "dev": true }, + "eslint-plugin-yml": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.19.0.tgz", + "integrity": "sha512-S+4GbcCWksFKAvFJtf0vpdiCkZZvDJCV4Zsi9ahmYkYOYcf+LRqqzvzkb/ST7vTYV6sFwXOvawzYyL/jFT2nQA==", + "dev": true, + "requires": { + "debug": "^4.3.2", + "diff-sequences": "^27.5.1", + "escape-string-regexp": "4.0.0", + "eslint-compat-utils": "^0.6.0", + "natural-compare": "^1.4.0", + "yaml-eslint-parser": "^1.2.1" + } + }, "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.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "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": "^1.1.0" + "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": "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==" + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true }, "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==" - } + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" } }, "esprima": { @@ -1262,38 +5051,34 @@ "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==", - "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==" - } + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" } }, "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": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true }, "eventemitter2": { "version": "0.4.14", @@ -1307,56 +5092,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", @@ -1372,170 +5107,95 @@ "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" - } - } - } + "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 }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "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" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" }, "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==", + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-glob": "^4.0.1" } } } }, - "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==" - }, "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==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } }, "file-entry-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", - "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", + "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": "^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.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "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": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "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": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "findup-sync": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "dev": true, "requires": { - "glob": "~5.0.0" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" } }, "fined": { @@ -1561,6 +5221,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -1569,7 +5230,8 @@ "flatted": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==" + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "dev": true }, "for-in": { "version": "1.0.2", @@ -1586,41 +5248,38 @@ "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=" - }, - "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=" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true }, + "get-tsconfig": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, "getobject": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", - "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.0.tgz", + "integrity": "sha512-tbUz6AKKKr2YiMB+fLWIgq5ZeBOobop9YMMAU9dC54/ot2ksMXt3DOFyBuhZw6ptcVszEykgByK20j7W9jHFag==", "dev": true }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1631,11 +5290,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": { @@ -1663,160 +5323,101 @@ } }, "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" } }, + "globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "grunt": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.3.0.tgz", - "integrity": "sha512-6ILlMXv11/4cxuhSMfSU+SfvbxrPuqZrAtLN64+tZpQ3DAKfSQPQHRbTjSbdtxfyQhGZPtN0bDZJ/LdCM5WXXA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz", + "integrity": "sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==", "dev": true, "requires": { - "dateformat": "~3.0.3", + "dateformat": "~4.6.2", "eventemitter2": "~0.4.13", "exit": "~0.1.2", - "findup-sync": "~0.3.0", + "findup-sync": "~5.0.0", "glob": "~7.1.6", - "grunt-cli": "~1.3.2", - "grunt-known-options": "~1.1.0", + "grunt-cli": "~1.4.3", + "grunt-known-options": "~2.0.0", "grunt-legacy-log": "~3.0.0", - "grunt-legacy-util": "~2.0.0", - "iconv-lite": "~0.4.13", + "grunt-legacy-util": "~2.0.1", + "iconv-lite": "~0.6.3", "js-yaml": "~3.14.0", "minimatch": "~3.0.4", - "mkdirp": "~1.0.4", - "nopt": "~3.0.6", - "rimraf": "~3.0.2" - }, - "dependencies": { - "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" - } - } - } - }, - "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, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "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" - } - } + "nopt": "~3.0.6" } }, "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==", - "dev": true + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.13.0.tgz", + "integrity": "sha512-uAUKILcP69Q4OJHHV2wzxqVaoXB8G3Uh/XuSJLn0Bk/9+WiUY/Q4+OX7dUhrPPeDZPtoGh37qqJLVvZlDTUecg==", + "dev": true, + "requires": { + "chalk": "4.1.2" + } }, - "grunt-eslint": { - "version": "23.0.0", - "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-23.0.0.tgz", - "integrity": "sha512-QqHSAiGF08EVD7YlD4OSRWuLRaDvpsRdTptwy9WaxUXE+03mCLVA/lEaR6SHWehF7oUwIqCEjaNONeeeWlB4LQ==", + "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": { - "chalk": "^4.0.0", - "eslint": "^7.0.0" + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~4.0.1", + "v8flags": "~3.2.0" }, "dependencies": { - "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, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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, - "requires": { - "color-name": "~1.1.4" - } - }, - "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 - }, - "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 - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "abbrev": "1", + "osenv": "^0.1.4" } } } }, + "grunt-eslint": { + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.3.0.tgz", + "integrity": "sha512-dUPiRgX8fhmh4uwTAn9xrzg7HV5j5DhGmZZGJdHfjy/AN9G4jD+5IjfbcAJ209JcIG8m4B7xz3crIhuDSm3siQ==", + "dev": true, + "requires": { + "chalk": "^4.1.2", + "eslint": "^8.44.0" + } + }, "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": { @@ -1825,134 +5426,57 @@ "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", "dev": true, "requires": { - "colors": "~1.1.2", - "grunt-legacy-log-utils": "~2.1.0", - "hooker": "~0.2.3", - "lodash": "~4.17.19" - } - }, - "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, - "requires": { - "chalk": "~4.1.0", - "lodash": "~4.17.19" - }, - "dependencies": { - "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, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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, - "requires": { - "color-name": "~1.1.4" - } - }, - "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 - }, - "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 - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "grunt-legacy-util": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.0.tgz", - "integrity": "sha512-ZEmYFB44bblwPE2oz3q3ygfF6hseQja9tx8I3UZIwbUik32FMWewA+d1qSFicMFB+8dNXDkh35HcDCWlpRsGlA==", - "dev": true, - "requires": { - "async": "~1.5.2", - "exit": "~0.1.1", - "getobject": "~0.1.0", + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.1.0", "hooker": "~0.2.3", - "lodash": "~4.17.20", - "underscore.string": "~3.3.5", - "which": "~1.3.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } + "lodash": "~4.17.19" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "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, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "chalk": "~4.1.0", + "lodash": "~4.17.19" } }, - "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=", + "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, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "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" }, "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "isexe": "^2.0.0" } } } }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, "homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -1968,24 +5492,38 @@ "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 + }, + "html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "dev": true + }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "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.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "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", "resolve-from": "^4.0.0" @@ -1994,12 +5532,20 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "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", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -2008,7 +5554,8 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true }, "ini": { "version": "1.3.8", @@ -2032,114 +5579,56 @@ "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": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "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.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "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.3.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.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "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 - } + "hasown": "^2.0.0" } }, - "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=" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true }, "is-plain-object": { "version": "2.0.4", @@ -2174,16 +5663,11 @@ "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", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, "isobject": { "version": "3.0.1", @@ -2194,39 +5678,48 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - } } }, - "jsdoctypeparser": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz", - "integrity": "sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==", + "jsdoc-type-pratt-parser": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-6.10.0.tgz", + "integrity": "sha512-+LexoTRyYui5iOhJGn13N9ZazL23nAHGkXsa1p/C8yeq79WRfLBag6ZZ0FQG2aRoc9yfo59JT9EYCQonOkHKkQ==", + "dev": true + }, + "jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "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": { "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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "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=" + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true }, "kind-of": { "version": "6.0.3", @@ -2238,79 +5731,74 @@ "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, "requires": { "prelude-ls": "^1.2.1", "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 + }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "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": "^4.1.0" + "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=", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "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" - } + "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 }, "make-iterator": { "version": "1.0.1", @@ -2327,98 +5815,53 @@ "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=", + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "requires": { - "object-visit": "^1.0.0" + "braces": "^3.0.3", + "picomatch": "^2.3.1" } }, - "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" - } + "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 }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "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" } }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "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" - } + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true }, "node-releases": { - "version": "1.1.70", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", - "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "dev": true }, "nopt": { @@ -2430,46 +5873,41 @@ "abbrev": "1" } }, - "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.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "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.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "requires": { - "isobject": "^3.0.0" + "boolbase": "^1.0.0" } }, + "object-deep-merge": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-2.0.0.tgz", + "integrity": "sha512-3DC3UMpeffLTHiuXSy/UG4NOIYTLlY9u3V82+djSCLYClWobZiS4ivYzpIUWrRY/nfsJ8cWsKyG3QfyLePmhvg==", + "dev": true + }, "object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", @@ -2505,21 +5943,23 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "requires": { "wrappy": "1" } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" } }, "os-homedir": { @@ -2545,21 +5985,21 @@ } }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "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": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.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==", + "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": "^2.2.0" + "p-limit": "^3.0.2" } }, "p-try": { @@ -2572,6 +6012,7 @@ "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, "requires": { "callsites": "^3.0.0" } @@ -2587,16 +6028,37 @@ "path-root": "^0.1.1" } }, + "parse-imports-exports": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/parse-imports-exports/-/parse-imports-exports-0.2.4.tgz", + "integrity": "sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==", + "dev": true, + "requires": { + "parse-statements": "1.0.11" + } + }, + "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=", + "parse-statements": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/parse-statements/-/parse-statements-1.0.11.tgz", + "integrity": "sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==", "dev": true }, "path-exists": { @@ -2608,17 +6070,19 @@ "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=" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "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": { @@ -2636,93 +6100,187 @@ "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.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "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.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "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==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true }, - "ramda": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", + "rambda": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", + "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", "dev": true }, + "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": { + "@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 + } + } + }, + "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.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", "dev": true, "requires": { - "resolve": "^1.1.6" + "resolve": "^1.9.0" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "dev": true + }, + "regjsparser": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", + "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } } }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==" - }, - "regextras": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz", - "integrity": "sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==", - "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==", - "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=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, "requireindex": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", "dev": true }, + "reserved-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/reserved-identifiers/-/reserved-identifiers-1.2.0.tgz", + "integrity": "sha512-yE7KUfFvaBFzGPs5H3Ops1RevfUEsDc5Iz65rOwWg4lE8HJSYtle77uul3+573457oHvBKuHYDl/xqUkKpEEdw==", + "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.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-dir": { @@ -2738,35 +6296,46 @@ "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==" + "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=", + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "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==", + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "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" } }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "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": { @@ -2776,37 +6345,16 @@ "dev": true }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" - }, - "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==", - "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" - } - } - } + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true }, "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, "requires": { "shebang-regex": "^3.0.0" } @@ -2814,198 +6362,41 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "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==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - } - } - }, - "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" - } - } - } + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "requires": { - "kind-of": "^3.2.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "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, "requires": { - "is-buffer": "^1.1.5" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } } } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "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==", - "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" - } - }, - "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", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -3013,171 +6404,123 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", "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.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", "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=", + "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": { - "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" - } - } - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "ansi-regex": "^5.0.1" } }, - "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.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } + "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 }, - "table": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", - "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", - "requires": { - "ajv": "^7.0.2", - "lodash": "^4.17.20", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0" - }, - "dependencies": { - "ajv": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", - "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - } - } + "tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true }, - "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=", + "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, "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-number": "^7.0.0" } }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "to-valid-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-valid-identifier/-/to-valid-identifier-1.0.0.tgz", + "integrity": "sha512-41wJyvKep3yT2tyPqX/4blcfybknGB4D+oETKLs7Q76UiPqRpUJK3hr1nxelyYO0PHKVzJwlu0aCeEAsGI6rpw==", "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "@sindresorhus/base62": "^1.0.0", + "reserved-identifiers": "^1.0.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=", + "ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "requires": {} + }, + "ts-declaration-location": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz", + "integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "picomatch": "^4.0.2" + }, + "dependencies": { + "picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true + } } }, "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, "requires": { "prelude-ls": "^1.2.1" } }, "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 + }, + "typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "dev": true, + "peer": true }, "unc-path-regex": { "version": "0.1.2", @@ -3195,131 +6538,83 @@ "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" - } + "upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "dev": true }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "update-browserslist-db": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", "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 - } + "escalade": "^3.2.0", + "picocolors": "^1.1.1" } }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "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", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "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==" - }, "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" } }, - "vue-eslint-parser": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.4.1.tgz", - "integrity": "sha512-AFvhdxpFvliYq1xt/biNBslTHE/zbEvSnr1qfHA/KxRIpErmEDrQZlQnvEexednRHmLfDNOMuDYwZL5xkLzIXQ==", + "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": { - "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" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" }, "dependencies": { - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "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, "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } } } }, + "vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -3329,20 +6624,38 @@ "isexe": "^2.0.0" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true }, - "yallist": { + "xml-name-validator": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true + }, + "yaml": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "dev": true + }, + "yaml-eslint-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.3.0.tgz", + "integrity": "sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.0.0", + "yaml": "^2.0.0" + } + }, + "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/package.json b/package.json index 7f7b61c5..dfd3a0e4 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,14 @@ { + "name": "ConfirmAccount", "private": true, "scripts": { - "test": "grunt test" + "test": "grunt test", + "fix": "grunt eslint:fix --fix" }, "devDependencies": { - "eslint-config-wikimedia": "0.18.1", - "grunt": "1.3.0", - "grunt-banana-checker": "0.9.0", - "grunt-eslint": "23.0.0" + "eslint-config-wikimedia": "0.32.3", + "grunt": "1.6.1", + "grunt-banana-checker": "0.13.0", + "grunt-eslint": "24.3.0" } } diff --git a/includes/frontend/modules/confirmaccount.css b/resources/confirmaccount.css similarity index 100% rename from includes/frontend/modules/confirmaccount.css rename to resources/confirmaccount.css diff --git a/resources/spam.css b/resources/spam.css new file mode 100644 index 00000000..00c9e6c2 --- /dev/null +++ b/resources/spam.css @@ -0,0 +1,13 @@ +@keyframes fadeOut { + to { + opacity: 0; + } +} + +.fade-out { + animation: fadeOut 0.4s forwards; +} + +#confirmaccount-spam-link { + margin-left: 0.5em; +} diff --git a/resources/spam.js b/resources/spam.js new file mode 100644 index 00000000..d0953893 --- /dev/null +++ b/resources/spam.js @@ -0,0 +1,91 @@ +// Contributed by Mark W. Datysgeld https://icannwiki.org/Mark_W._Datysgeld +function handleSpamForm( html, $li, reviewUrl ) { + // Parse the HTML and find the confirm form. + const $doc = $( '
    ' ).append( $.parseHTML( html ) ); + const $form = $doc.find( 'form[name="accountconfirm"]' ); + if ( !$form.length ) { + mw.notify( mw.msg( 'confirmaccount-cannot-find-form' ), { type: 'error' } ); + return; + } + + // Collect all form fields (inputs, textareas, selects). + const data = {}; + $form.find( 'input, textarea, select' ).each( function () { + const $fld = $( this ); + const name = $fld.attr( 'name' ); + if ( !name ) { + return; + } + const type = $fld.attr( 'type' ); + if ( type === 'radio' ) { + // Skip all radio buttons; we’ll set wpSubmitType manually. + return; + } else if ( type === 'checkbox' ) { + data[ name ] = $fld.prop( 'checked' ) ? $fld.val() : ''; + } else { + data[ name ] = $fld.val(); + } + } ); + + // Override fields for the spam action. + data.wpSubmitType = 'spam'; + data.wpReason = ''; + + // Post the form to its action URL. + const actionUrl = $form.attr( 'action' ) || reviewUrl; + $.post( actionUrl, data ) + .then( + () => { + // On success, remove the entry from the queue. + $li.addClass( 'fade-out' ); + }, + ( _, status, error ) => { + mw.notify( mw.msg( 'confirmaccount-failed-to-mark', error ), { type: 'error' } ); + } ); +} + +// Adds spam links on page load +function addSpamLinks() { + $( 'li.mw-confirmaccount-type-0', document.getElementById( 'mw-content-text' ) ).each( function () { + const $li = $( this ); + const $reviewLink = $li.find( 'a[href*="acrid="]' ).first(); + if ( !$reviewLink.length ) { + return; + } + const match = $reviewLink.attr( 'href' ).match( /[?&]acrid=(\d+)/ ); + if ( !match ) { + return; + } + const acrid = match[ 1 ]; + const queueTitle = mw.config.get( 'wgPageName' ); + + const $spamLink = $( '' ) + .attr( 'href', '#' ) + .attr( 'id', 'confirmaccount-spam-link' ) + .text( mw.msg( 'confirmaccount-spam-link' ) ) + .on( 'click', ( ev ) => { + ev.preventDefault(); + OO.ui.confirm( mw.msg( 'confirmaccount-mark-request-spam', acrid ) ).then( + ( confirmed ) => { + if ( confirmed ) { + // Build the URL of the review page to fetch the form. + const reviewUrl = mw.util.wikiScript() + '?title=' + + encodeURIComponent( queueTitle ) + '&acrid=' + encodeURIComponent( acrid ); + + // Retrieve the review form via AJAX. + $.get( reviewUrl ).then( + ( html ) => { + handleSpamForm( html, $li, reviewUrl ); + }, + () => { + mw.notify( mw.msg( 'confirmaccount-cannot-load-review' ), { type: 'error' } ); + } ); + return; + } + } ); + } ); + + $reviewLink.after( ' · ', $spamLink ); + } ); +} +$( addSpamLinks ); diff --git a/includes/backend/schema/mysql/ConfirmAccount.sql b/sql/mysql/ConfirmAccount.sql similarity index 100% rename from includes/backend/schema/mysql/ConfirmAccount.sql rename to sql/mysql/ConfirmAccount.sql diff --git a/includes/backend/schema/mysql/patch-account_credentials.sql b/sql/mysql/patch-account_credentials.sql similarity index 100% rename from includes/backend/schema/mysql/patch-account_credentials.sql rename to sql/mysql/patch-account_credentials.sql diff --git a/includes/backend/schema/mysql/patch-acr_agent.sql b/sql/mysql/patch-acr_agent.sql similarity index 100% rename from includes/backend/schema/mysql/patch-acr_agent.sql rename to sql/mysql/patch-acr_agent.sql diff --git a/includes/backend/schema/mysql/patch-acr_areas.sql b/sql/mysql/patch-acr_areas.sql similarity index 100% rename from includes/backend/schema/mysql/patch-acr_areas.sql rename to sql/mysql/patch-acr_areas.sql diff --git a/includes/backend/schema/mysql/patch-acr_email-varchar.sql b/sql/mysql/patch-acr_email-varchar.sql similarity index 100% rename from includes/backend/schema/mysql/patch-acr_email-varchar.sql rename to sql/mysql/patch-acr_email-varchar.sql diff --git a/includes/backend/schema/mysql/patch-acr_filename.sql b/sql/mysql/patch-acr_filename.sql similarity index 100% rename from includes/backend/schema/mysql/patch-acr_filename.sql rename to sql/mysql/patch-acr_filename.sql diff --git a/includes/backend/schema/mysql/patch-drop-acr_deleted_reg-index.sql b/sql/mysql/patch-drop-acr_deleted_reg-index.sql similarity index 100% rename from includes/backend/schema/mysql/patch-drop-acr_deleted_reg-index.sql rename to sql/mysql/patch-drop-acr_deleted_reg-index.sql diff --git a/includes/backend/schema/mysql/patch-email-index.sql b/sql/mysql/patch-email-index.sql similarity index 100% rename from includes/backend/schema/mysql/patch-email-index.sql rename to sql/mysql/patch-email-index.sql diff --git a/includes/backend/schema/postgres/ConfirmAccount.pg.sql b/sql/postgres/ConfirmAccount.pg.sql similarity index 92% rename from includes/backend/schema/postgres/ConfirmAccount.pg.sql rename to sql/postgres/ConfirmAccount.pg.sql index 61c8370c..e2348cad 100644 --- a/includes/backend/schema/postgres/ConfirmAccount.pg.sql +++ b/sql/postgres/ConfirmAccount.pg.sql @@ -27,7 +27,7 @@ CREATE TABLE account_requests ( acr_deleted INTEGER NOT NULL DEFAULT 0, acr_rejected TIMESTAMPTZ, acr_held TIMESTAMPTZ, - acr_user INTEGER REFERENCES mwuser(user_id) ON DELETE SET NULL, + acr_user INTEGER, acr_comment TEXT NOT NULL DEFAULT '' ); @@ -53,7 +53,7 @@ CREATE TABLE account_credentials ( acd_storage_key TEXT, acd_areas TEXT, acd_accepted TIMESTAMPTZ, - acd_user INTEGER REFERENCES mwuser(user_id) ON DELETE SET NULL, + acd_user INTEGER, acd_comment TEXT NOT NULL DEFAULT '', PRIMARY KEY (acd_id, acd_user_id) ); diff --git a/includes/backend/schema/postgres/patch-account_credentials.sql b/sql/postgres/patch-account_credentials.sql similarity index 90% rename from includes/backend/schema/postgres/patch-account_credentials.sql rename to sql/postgres/patch-account_credentials.sql index 5d48c0bd..857c410a 100644 --- a/includes/backend/schema/postgres/patch-account_credentials.sql +++ b/sql/postgres/patch-account_credentials.sql @@ -18,7 +18,7 @@ CREATE TABLE account_credentials ( acd_storage_key TEXT, acd_areas TEXT, acd_accepted TIMESTAMPTZ, - acd_user INTEGER REFERENCES mwuser(user_id) ON DELETE SET NULL, + acd_user INTEGER, acd_comment TEXT NOT NULL DEFAULT '', PRIMARY KEY (acd_id, acd_user_id) ); diff --git a/includes/backend/schema/postgres/patch-acr_agent.sql b/sql/postgres/patch-acr_agent.sql similarity index 100% rename from includes/backend/schema/postgres/patch-acr_agent.sql rename to sql/postgres/patch-acr_agent.sql diff --git a/includes/backend/schema/postgres/patch-email-index.sql b/sql/postgres/patch-email-index.sql similarity index 100% rename from includes/backend/schema/postgres/patch-email-index.sql rename to sql/postgres/patch-email-index.sql