Commit efd75557 authored by Valentine Zavgorodnev's avatar Valentine Zavgorodnev Committed by GitHub
Browse files

Fix all i18n and linting warnings (#1779)

* clean up all i18n warnings

* eleminate linting warings; upgrade eslint pkgs

* eslint rules to support our 'import' convention
parent 235344dc
......@@ -12,11 +12,6 @@ find node_modules/eslint-config-airbnb -name '*.js'|xargs sed -i "s/': 2/': 1/"
"node": true,
"es6": true
},
"ecmaFeatures": {
"blockBindings": true,
"forOf": true,
"jsx": true
},
"rules": {
"max-len": 0, /*[1, 160, 4],*/
"comma-dangle": 0,
......@@ -32,7 +27,9 @@ find node_modules/eslint-config-airbnb -name '*.js'|xargs sed -i "s/': 2/': 1/"
"no-undef": 2,
"camelcase": [0],
"no-console": [0],
"padded-blocks": 0,
"object-curly-spacing": [0],
"react/jsx-indent": [1,4],
"react/jsx-indent-props": [1,4],
"react/jsx-closing-bracket-location": [0],
"no-use-before-define": [0, {"functions": false, "classes": false}],
......@@ -56,9 +53,15 @@ find node_modules/eslint-config-airbnb -name '*.js'|xargs sed -i "s/': 2/': 1/"
"no-confusing-arrow": 0,
"space-in-parens": 0,
"no-throw-literal": 0,
"react/sort-comp": [1, { "order": [ 'lifecycle' ] }],
"react/sort-comp": [1, { "order": [ "lifecycle" ] }],
"react/prefer-stateless-function": 0,
"react/prop-types": 0,
"radix": 0,
"jsx-a11y/href-no-hash": "off",
"jsx-a11y/anchor-is-valid": ["warn", { "aspects": ["invalidHref"] }],
"import/no-extraneous-dependencies": 0,
"import/no-unresolved": 0,
"import/extensions": 0
}
}
/* eslint guard-for-in: 0 */
/* eslint no-restricted-syntax: 0 */
const fs = require('fs');
......@@ -31,11 +32,13 @@ function loadTranslationFiles(path) {
const translations = {};
const files = fs.readdirSync(path);
for (const filename of files) {
if (args.length > 0 && filename !== args[0]) continue;
const m = filename.match(/([\w\-]+)\.json$/);
if (!m) continue;
const lang = m[1];
translations[lang] = readTranslationKeys(path + '/' + filename);
if (args.length <= 0 || filename === args[0]) {
const m = filename.match(/([\w-]+)\.json$/);
if (m) {
const lang = m[1];
translations[lang] = readTranslationKeys(path + '/' + filename);
}
}
}
return translations;
}
......@@ -43,16 +46,17 @@ function loadTranslationFiles(path) {
function processFile(used_keys, path) {
const lines = fs.readFileSync(path, 'utf8').split(/\r?\n/);
for (const l of lines) {
const tts = l.match(/(tt\([\"\'\.\-\_\w]+)/g) || l.match(/(FormattedHTMLMessage.+id\=[\"\'\.\-\_\w]+)/g);
const tts = l.match(/(tt\(["'.\-_\w]+)/g) || l.match(/(FormattedHTMLMessage.+id=["'.\-_\w]+)/g);
if (tts) {
// if(tts.length > 1) console.log('-- tt -->', path, l, tts.length, JSON.stringify(tts, null, 4));
for (const t of tts) {
if (t === 'tt(id') continue; // this is exception
const m = t.match(/tt\([\'\"]([\.\-\_\w]+)/) || t.match(/id\=[\'\"]([\.\-\_\w]+)[\'\"]/);
if (!m) throw new Error('Wrong format: "' + t + '" in "' + l + '"');
const key = m[1];
if (used_keys[key]) used_keys[key] += 1;
else used_keys[key] = 1;
if (t !== 'tt(id') {
const m = t.match(/tt\(['"]([.\-_\w]+)/) || t.match(/id=['"]([.\-_\w]+)['"]/);
if (!m) throw new Error('Wrong format: "' + t + '" in "' + l + '"');
const key = m[1];
if (used_keys[key]) used_keys[key] += 1;
else used_keys[key] = 1;
}
}
}
}
......@@ -76,12 +80,16 @@ function checkKeys(translations, used_keys) {
for (const lang in translations) {
const lang_keys = translations[lang];
for (const key in used_keys) {
if (!lang_keys[key]) console.warn('Translation key not found: ', lang, key);
errors_counter += 1;
if (!lang_keys[key]) {
console.warn('Translation key not found: ', lang, key);
errors_counter += 1;
}
}
for (const key in lang_keys) {
if (!used_keys[key]) console.warn('Unused translation: ', lang, key);
errors_counter += 1;
if (!used_keys[key]) {
console.warn('Unused translation: ', lang, key);
errors_counter += 1;
}
}
}
return errors_counter;
......
......@@ -625,7 +625,7 @@
"power_down": "Power Down",
"amount": "Amount",
"already_power_down": "You are already powering down %(AMOUNT)s %(LIQUID_TICKER)s (%(WITHDRAWN)s %(LIQUID_TICKER)s paid out so far). Note that if you change the power down amount the payout schedule will reset.",
"delegating": "You are delegating %(AMOUNT)s %(LIQUID_TICKER)s. That amount is locked up and not available to power down until the delgation is removed and a full reward period has passed.",
"delegating": "You are delegating %(AMOUNT)s %(LIQUID_TICKER)s. That amount is locked up and not available to power down until the delegation is removed and a full reward period has passed.",
"per_week": "That's ~%(AMOUNT)s %(LIQUID_TICKER)s per week.",
"warning": "Leaving less than %(AMOUNT)s %(VESTING_TOKEN)s in your account is not recommended and can leave your account in a unusable state.",
"error": "Unable to power down (ERROR: %(MESSAGE)s)"
......
......@@ -616,6 +616,15 @@
"redeem_rewards": "Redeem Rewards (Transfer to Balance)",
"buy_steem_or_steem_power": "Buy STEEM or STEEM POWER"
},
"powerdown_jsx": {
"power_down": "Power Down",
"amount": "Amount",
"already_power_down": "You are already powering down %(AMOUNT)s %(LIQUID_TICKER)s (%(WITHDRAWN)s %(LIQUID_TICKER)s paid out so far). Note that if you change the power down amount the payout schedule will reset.",
"delegating": "You are delegating %(AMOUNT)s %(LIQUID_TICKER)s. That amount is locked up and not available to power down until the delegation is removed and a full reward period has passed.",
"per_week": "That's ~%(AMOUNT)s %(LIQUID_TICKER)s per week.",
"warning": "Leaving less than %(AMOUNT)s %(LIQUID_TICKER)s in your account is not recommended and can leave your account in a unusable state.",
"error": "Unable to power down (ERROR: %(MESSAGE)s)"
},
"checkloginowner_jsx": {
"your_password_permissions_were_reduced": "Your password permissions were reduced",
"if_you_did_not_make_this_change": "If you did not make this change please",
......
......@@ -189,9 +189,9 @@
"show_less": "Показать меньше",
"value_posts": "меньше сообщений низкой стоимости"
},
"account_creation_succes": "Ваш аккаунт был успешно создан!",
"requires_auth_key": "Эта операция требует вашего %(authType)s ключа (или используйте главный пароль)",
"keep_me_logged_in": "Оставить меня залогиненным",
"read_only_mode": "По техническим причинам вебсайт доступен только для чтения, приносим свои извинения.",
"tags_and_topics": "Теги и темы",
"show_more_topics": "Показать больше тем",
"basic": "Базовый",
"advanced": "Подробнее",
"views": {
......@@ -211,23 +211,23 @@
"APP_NAME_whitepaper": "Белая книга %(APP_NAME)s",
"buy_LIQUID_TOKEN": "Купить %(LIQUID_TOKEN)s",
"sell_LIQUID_TOKEN": "Продать %(LIQUID_TOKEN)s",
"market": "Биржа",
"currency_market": "Валютный рынок",
"stolen_account_recovery": "Возврат украденного аккаунта",
"currency_market": "Биржа",
"stolen_account_recovery": "Восстановление украденного аккаунта",
"change_account_password": "Изменить пароль аккаунта",
"APP_NAME_api_docs": "%(APP_NAME)s API-документация",
"APP_NAME_chat": "%(APP_NAME)s чат",
"witnesses": "Делегаты",
"vote_for_witnesses": "Проголосовать за делегатов",
"privacy_policy": "Политика Конфиденциальности",
"terms_of_service": "Условия пользования",
"sign_up": "Регистрация",
"sign_up": "Присоединиться",
"learn_more": "Документация",
"welcome": "Добро пожаловать",
"faq": "ЧаВО",
"faq": "Часто задаваемые вопросы",
"chat": "Чат Steemit",
"app_center": "Центр приложений Steemit",
"api_docs": "API-документация Steemit",
"whitepaper": "Белая книга Steem"
"whitepaper": "Белая книга Steem",
"intro_tagline": "Здесь говорят деньги.",
"intro_paragraph": "Ваше мнение имеет цену. Присоединяйтесь к сообществу, которое платит за контент и за работу по отбору самого лучшего контента."
},
"main_menu": {
"hot": "актуальное",
......@@ -329,8 +329,8 @@
"user_hasnt_started_bloggin_yet": "Похоже. что %(name)s еще не завёл блог!",
"user_hasnt_followed_anything_yet": "Похоже, что %(name)s еще ни на кого не подписан! Если, %(name)s недавно подписался на новых пользователей, их персонализированный канал будет заполняться сразу после появления нового контента.",
"user_hasnt_had_any_replies_yet": "%(name)s еще не получил ответов",
"users_curation_rewards": "Кураторские вознаграждения %(name)s",
"users_permissions": "Разрешения %(name)s",
"followers": "Подписчики",
"this_is_users_reputations_score_it_is_based_on_history_of_votes": "Это репутация %(name)s.\n\nРепутация рассчитывается на основе истории полученных голосов и используется для сокрытия низкокачественного контента.",
"follower_count": {
"zero": "Нет подписчиков",
"one": "1 подписчик",
......@@ -361,23 +361,23 @@
"comments_were_hidden_due_to_low_ratings": "Комментарии были скрыты из-за низкого рейтинга"
},
"voting_jsx": {
"stop_seeing_content_from_this_user": "Перестать видеть контент от этого пользователя",
"flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following": "Голосование против уменьшает вознаграждение и снижает позицию в рейтинге.",
"disagreement_on_rewards": "Несогласие с вознаграждением",
"fraud_or_plagiarism": "Мошенничество или плагиат",
"hate_speech_or_internet_trolling": "Разжигание ненависти или Интернет троллинг",
"intentional_miss_categorized_content_or_spam": "Преднамеренная неправильная категоризация контента или спам",
"pending_payout": "Ожидаемая выплата",
"confirm_flag": "Подтвердить голос против",
"begin_recovery": "Начать восстановление",
"APP_NAME_app_center": "Центр приложений %(APP_NAME)s",
"your_existing_DEBT_TOKEN_are_liquid_and_transferable": "Ваши существующие %(DEBT_TOKEN)s ликвидны и перемещаемы. Возможно, вы хотите торговать %(DEBT_TOKEN)s напрямую на этом сайте в разделе %(link)s или перевести на внешний рынок.",
"trending_30_day": "популярное (30 дней)",
"this_password_is_bound_to_your_accounts_private_key": "Этот пароль привязан к активному ключу вашего аккаунта и не может быть использован для входа на эту страницу. Вы можете использовать его для входа на другие более защищенные страницы как Кошелек или Маркет.",
"potential_payout": "Потенциальная выплата",
"authors": "Авторы",
"paste_a_youtube_or_vimeo_and_press_enter": "Вставьте YouTube или Vimeo ссылку и нажмите Enter",
"there_was_an_error_uploading_your_image": "Произошла ошибка во время загрузки изображения",
"please_remove_following_html_elements": "Пожалуйста удалите эти HTML элементы из вашего поста: ",
"payout_declined": "Автор отказался от вознаграждения",
"max_accepted_payout": "Максимально допустимое вознаграждение: $%(value)s",
"promotion_cost": "Цена продвижения: $%(value)s",
"past_payouts": "Предыдущие выплаты $%(value)s",
"past_payouts_author": " - Авторские $%(value)s",
"past_payouts_curators": " - Кураторские $%(value)s",
"we_will_reset_curation_rewards_for_this_post": "это сбросит выплаты за курирование",
"removing_your_vote": "Удаление голоса",
"changing_to_an_upvote": "Изменить на голосование 'за'",
"changing_to_a_downvote": "Изменить на голосование 'против'",
"confirm_flag": "Подтвердить голос 'против'",
"and_more": "и %(count)s больше",
"votes_plural": {
"one": "%(count)s голоса",
......@@ -434,23 +434,23 @@
"after_printing_write_down_your_user_name": "После печати запишите ваше имя пользователя"
},
"converttosteem_jsx": {
"DEBT_TOKEN_will_be_unavailable": "Эта операция будет проходить 3-5 дней от настоящего момента и ее нельзя отменить. Эти %(DEBT_TOKEN)s мгновенно станут недоступны",
"about_APP_NAME": "О %(APP_NAME)s",
"APP_NAME_is_a_social_media_platform_where_everyone_gets_paid": "%(APP_NAME)s - это социальная медиа платформа в которой каждый зарабатывает за создание и курирование контента. Он использует надежную систему цифровых очков под названием %(LIQUID_TOKEN)s, который поддерживает реальную ценность для цифровых наград через выявление рыночной цены и ликвидности.",
"learn_more_at_LANDING_PAGE_URL": "Узнать больше в %(LANDING_PAGE_URL)s"
"your_existing_DEBT_TOKEN_are_liquid_and_transferable": "Ваши %(DEBT_TOKEN)s токены ликвидны. Вы можете конвертировать %(DEBT_TOKEN)s на этом сайте (%(link)s) или вывести на биржу/обменник.",
"this_is_a_price_feed_conversion": "Конвертация на сайте выполняется три с половиной дня - это требуется, чтобы исключить манипуляции с ценами.",
"convert_to_LIQUID_TOKEN": "Ковертировать в %(LIQUID_TOKEN)s",
"DEBT_TOKEN_will_be_unavailable": "Эта операция будет проходить 3-5 дней от настоящего момента и ее нельзя отменить. Эти %(DEBT_TOKEN)s мгновенно станут недоступны"
},
"tips_js": {
"liquid_token": "Перемещаемые цифровые токены, которые могут переданы куда угодно в любой момент.<br/>%(LIQUID_TOKEN)s может быть конвертирован в %(VESTING_TOKEN)s, этот процесс называется \"увеличение Силы Голоса\".",
"tokens_worth_about_AMOUNT_of_LIQUID_TOKEN": "Перемещаемые цифровые токены, цена которых всегда равна %(amount)s в %(LIQUID_TOKEN)s.",
"liquid_token": "Ликвидные цифровые токены, которые могут переданы куда угодно в любой момент.<br/>%(LIQUID_TOKEN)s может быть конвертирован в %(VESTING_TOKEN)s, этот процесс называется \"увеличение Силы Голоса\".",
"influence_token": "Токены дают вам возможность влиять на вознаграждения за контент, а также возможность зарабатывать на курации контента.",
"estimated_value": "Сметная стоимость основана на среднем значении %(LIQUID_TOKEN)s в долларах США.",
"VESTING_TOKEN_is_non_transferable_and_requires_convert_back_to_LIQUID_TOKEN": "%(VESTING_TOKEN)s нельзя передавать, и нужно 3 месяца (13 выплат) чтобы перевести обратно в %(LIQUID_TOKEN)s.",
"converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again": "Конвертированная %(VESTING_TOKEN)s может быть отправлена себе или кому-то еще, но не может быть передана вновь без конвертирования назад в %(LIQUID_TOKEN)s.",
"non_transferable": "%(VESTING_TOKEN)s - не ликвидные токены, требуется три месяца (13 еженедальных выплат) чтобы сконвертировать их в ликвидные токены %(LIQUID_TOKEN)s.",
"converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again": "Конвертированные %(VESTING_TOKEN)s токены могут быть отправлены себе или кому-либо еще, но не могут быть переданы вновь без конвертации в %(LIQUID_TOKEN)s.",
"part_of_your_steem_power_is_currently_delegated": "Часть STEEM POWER вам делегирована, это увеличивает ваше влияние на платформе. Количество делегированных токенов со временем может изменяться."
},
"promote_post_jsx": {
"promote_post": "Продвинуть пост",
"spend_your_DEBT_TOKEN_to_advertise_this_post": "Используйте ваши %(DEBT_TOKEN)s чтобы прорекламировать этот пост в секции продвигаемого контента",
"requires_5_or_more_reddit_comment_karma": "необходимо 5 или больше Reddit кармы комментирования",
"you_successfully_promoted_this_post": "Операция продвижения успешно завершена",
"this_post_was_hidden_due_to_low_ratings": "Этот пост был скрыт из-за низкого рейтинга"
},
"about_jsx": {
......@@ -520,9 +520,9 @@
"the_latest_versions_of": "Последние версии ",
"are_well_tested_and_known_to_work_with": "хорошо протестированы и работают с %(APP_URL)s.",
"due_to_server_maintenance": "Из-за технического обслуживания сервера мы работаем в режиме чтения. Извините за неудобства.",
"login_to_vote": "Войти, чтобы проголосовать",
"login_to_post": "Войти, чтобы написать пост",
"login_to_comment": "Войти, чтобы оставить комментарий",
"login_to_your_steem_account": "Войти в свой Steem аккаунт",
"posting": "Постинг",
"active_or_owner": "Активный или Владельца",
"this_password_is_bound_to_your_account_owner_key": "Этот пароль привязан к главному ключу аккаунта и не может быть использован для входа на этот сайт.",
......@@ -608,19 +608,28 @@
"withdraw_LIQUID_TOKEN": "Снять %(LIQUID_TOKEN)s",
"withdraw_DEBT_TOKENS": "Снять %(DEBT_TOKENS)s",
"tokens_worth_about_1_of_LIQUID_TICKER": "Стоимость токенов $1.00 в %(LIQUID_TICKER)s, начисляемые годовые %(sbdInterest)s%%.",
"balances": "БАЛАНСЫ",
"buy_LIQUID_TOKEN_or_VESTING_TOKEN": "Купить %(LIQUID_TOKEN)s или %(VESTING_TOKEN)s",
"savings": "Сберегательный счет",
"estimated_account_value": "Приблизительная стоимость аккаунта",
"next_power_down_is_scheduled_to_happen": "Следующее понижение силы голоса будет",
"transfers_are_temporary_disabled": "Transfers are temporary disabled.",
"transfers_are_temporary_disabled": "Переводы временно преостановлены.",
"history": "ИСТОРИЯ",
"redeem_rewards": "Получить вознаграждение",
"savings": "Сейф"
"buy_steem_or_steem_power": "Купить STEEM или STEEM POWER"
},
"powerdown_jsx": {
"power_down": "Уменьшить силу голоса (power down)",
"amount": "Количество",
"already_power_down": "Вы уже запустили понижение силы голоса на %(AMOUNT)s %(LIQUID_TICKER)s (%(WITHDRAWN)s %(LIQUID_TICKER)s уже выплачено). Если вы измените количество, отсчет времени сбросится и составит 13 недель от сегодняшего дня.",
"delegating": "Вы делегируете %(AMOUNT)s %(LIQUID_TICKER)s. Это количество заблокировано и не может быть выведено пока делегирование не будет отменено и не пройдет один полный цикл выплат вознаграждений.",
"per_week": "Это ~%(AMOUNT)s %(LIQUID_TICKER)s в неделю.",
"warning": "Оставлять меньше чем %(AMOUNT)s %(LIQUID_TICKER)s не рекомендуется, т.к. это может остановить все транзакции с использованием это аккаунта.",
"error": "Неполучается уменьшить силу голоса (ERROR: %(MESSAGE)s)"
},
"checkloginowner_jsx": {
"estimated_account_value": "Оценка стоимости аккаунта",
"next_power_down_is_scheduled_to_happen": "Следующее понижение Силы запланировано на",
"transfers_are_temporary_disabled": "Переводы временно отключены.",
"history": "ИСТОРИЯ",
"your_password_permissions_were_reduced": "Your password permissions were reduced",
"if_you_did_not_make_this_change": "If you did not make this change please",
"ownership_changed_on": "Владелец аккаунта или пароль были изменены ",
"deadline_for_recovery_is": "Вы можете восстановить доступ до ",
"i_understand_dont_show_again": "Понятно, больше не показывать"
}
}
......@@ -168,6 +168,12 @@ argparse@~0.1.15:
underscore "~1.7.0"
underscore.string "~2.4.0"
aria-query@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.0.tgz#4af10a1e61573ddea0cf3b99b51c52c05b424d24"
dependencies:
ast-types-flow "0.0.7"
arr-diff@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
......@@ -190,6 +196,13 @@ array-find-index@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
array-includes@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
dependencies:
define-properties "^1.1.2"
es-abstract "^1.7.0"
array-union@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
......@@ -250,6 +263,10 @@ assertion-error@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
ast-types-flow@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
......@@ -378,6 +395,12 @@ aws4@^1.2.1:
version "1.6.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
axobject-query@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0"
dependencies:
ast-types-flow "0.0.7"
babel-cli@^6.22.2:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.24.1.tgz#207cd705bba61489b2ea41b5312341cf6aca2283"
......@@ -1306,7 +1329,7 @@ buffer@^5.0.6:
base64-js "^1.0.2"
ieee754 "^1.1.4"
builtin-modules@^1.0.0:
builtin-modules@^1.0.0, builtin-modules@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
......@@ -1712,6 +1735,10 @@ constants-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
contains-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
content-disposition@~0.5.0:
version "0.5.2"
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
......@@ -1983,6 +2010,10 @@ d@1:
dependencies:
es5-ext "^0.10.9"
damerau-levenshtein@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514"
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
......@@ -2152,6 +2183,13 @@ dns-prefetch-control@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz#60ddb457774e178f1f9415f0cabb0e85b0b300b2"
doctrine@1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
dependencies:
esutils "^2.0.2"
isarray "^1.0.0"
doctrine@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63"
......@@ -2303,6 +2341,10 @@ electron-to-chromium@^1.2.7:
version "1.3.13"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.13.tgz#1b3a5eace6e087bb5e257a100b0cbfe81b2891fc"
emoji-regex@^6.1.0:
version "6.5.1"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2"
emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
......@@ -2375,6 +2417,16 @@ es-abstract@^1.6.1:
is-callable "^1.1.3"
is-regex "^1.0.3"
es-abstract@^1.7.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.9.0.tgz#690829a07cae36b222e7fd9b75c0d0573eb25227"
dependencies:
es-to-primitive "^1.1.1"
function-bind "^1.1.1"
has "^1.0.1"
is-callable "^1.1.3"
is-regex "^1.0.4"
es-to-primitive@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
......@@ -2467,17 +2519,75 @@ escope@^3.6.0:
esrecurse "^4.1.0"
estraverse "^4.1.1"
eslint-config-airbnb@^6.1.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-6.2.0.tgz#4a28196aa4617de01b8c914e992a82e5d0886a6e"
eslint-config-airbnb-base@^11.3.0:
version "11.3.2"
resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz#8703b11abe3c88ac7ec2b745b7fdf52e00ae680a"
dependencies:
eslint-restricted-globals "^0.1.1"
eslint-plugin-babel@^3.1.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-3.3.0.tgz#2f494aedcf6f4aa4e75b9155980837bc1fbde193"
eslint-config-airbnb@^15.1.0:
version "15.1.0"
resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-15.1.0.tgz#fd432965a906e30139001ba830f58f73aeddae8e"
dependencies:
eslint-config-airbnb-base "^11.3.0"
eslint-import-resolver-node@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc"
dependencies:
debug "^2.6.8"
resolve "^1.2.0"
eslint-plugin-react@^4.2.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-4.3.0.tgz#c79aac8069d62de27887c13b8298d592088de378"
eslint-module-utils@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449"
dependencies:
debug "^2.6.8"
pkg-dir "^1.0.0"
eslint-plugin-babel@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-4.1.2.tgz#79202a0e35757dd92780919b2336f1fa2fe53c1e"
eslint-plugin-import@^2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz#21de33380b9efb55f5ef6d2e210ec0e07e7fa69f"
dependencies:
builtin-modules "^1.1.1"
contains-path "^0.1.0"
debug "^2.6.8"
doctrine "1.5.0"
eslint-import-resolver-node "^0.3.1"
eslint-module-utils "^2.1.1"
has "^1.0.1"
lodash.cond "^4.3.0"
minimatch "^3.0.3"
read-pkg-up "^2.0.0"
eslint-plugin-jsx-a11y@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.2.tgz#659277a758b036c305a7e4a13057c301cd3be73f"
dependencies:
aria-query "^0.7.0"
array-includes "^3.0.3"
ast-types-flow "0.0.7"
axobject-query "^0.1.0"
damerau-levenshtein "^1.0.0"
emoji-regex "^6.1.0"
jsx-ast-utils "^1.4.0"
eslint-plugin-react@^7.4.0:
version "7.4.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz#300a95861b9729c087d362dd64abcc351a74364a"
dependencies:
doctrine "^2.0.0"
has "^1.0.1"
jsx-ast-utils "^2.0.0"
prop-types "^15.5.10"
eslint-restricted-globals@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7"
eslint-scope@^3.7.1:
version "3.7.1"
......@@ -2708,6 +2818,18 @@ fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.9, fbjs@~0:
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
fbjs@^0.8.16:
version "0.8.16"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db"
dependencies:
core-js "^1.0.0"
isomorphic-fetch "^2.1.1"
loose-envify "^1.0.0"
object-assign "^4.1.0"
promise "^7.1.1"
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
fetch-ponyfill@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893"
......@@ -2778,6 +2900,12 @@ find-up@^1.0.0:
path-exists "^2.0.0"
pinkie-promise "^2.0.0"
find-up@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
dependencies:
locate-path "^2.0.0"
findup-sync@^0.4.0, findup-sync@^0.4.2:
version "0.4.3"
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12"
......@@ -2950,6 +3078,10 @@ function-bind@^1.0.2, function-bind@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
function.prototype.name@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.0.0.tgz#5f523ca64e491a5f95aba80cc1e391080a14482e"
......@@ -3363,7 +3495,7 @@ hide-powered-by@1.0.0:
resolved "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.0.0.tgz#4a85ad65881f62857fc70af7174a1184dccce32b"
highcharts@^4.2.3, highcharts@^4.2.5:
version v4.2.7
version "4.2.7"
resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-4.2.7.tgz#45cbed8e99c9c042e95f9c51076726496f686862"
history@^3.0.0:
......@@ -3796,7 +3928,7 @@ is-property@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
is-regex@^1.0.3:
is-regex@^1.0.3, is-regex@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
dependencies:
......@@ -4045,6 +4177,16 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.3.6"
jsx-ast-utils@^1.4.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1"
jsx-ast-utils@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f"
dependencies:
array-includes "^3.0.3"
jwa@^1.1.4:
version "1.1.5"
resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.5.tgz#a0552ce0220742cd52e153774a32905c30e756e5"
......@@ -4290,6 +4432,15 @@ load-json-file@^1.0.0:
pinkie-promise "^2.0.0"
strip-bom "^2.0.0"
load-json-file@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
dependencies:
graceful-fs "^4.1.2"
parse-json "^2.2.0"
pify "^2.0.0"
strip-bom "^3.0.0"
loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.3, loader-utils@^0.2.5, loader-utils@~0.2.2, loader-utils@~0.2.5:
version "0.2.17"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
......@@ -4307,6 +4458,13 @@ loader-utils@^1.0.2, loader-utils@^1.0.3:
emojis-list "^2.0.0"
json5 "^0.5.0"
locate-path@^2.0.0: