From 31363b701650a5939383383a9cd4efc7f8864d74 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 10 May 2021 20:06:48 +0200 Subject: [PATCH 01/32] add ipv6 for localhost check --- community_server/config/routes.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/community_server/config/routes.php b/community_server/config/routes.php index 322825c87..da9118f65 100644 --- a/community_server/config/routes.php +++ b/community_server/config/routes.php @@ -65,8 +65,9 @@ Router::scope('/', function (RouteBuilder $routes) { if($entry == 'ElopageWebhook' || $entry == 'AppRequests') { return true; } - if($request->clientIp() == '127.0.0.1' || $request->clientIp() == 'localhost' || $request->clientIp() == '') { - return true; + $allowedIpLocalhost = ['127.0.0.1', 'localhost', '', '::1']; + if(true == in_array($clientIp, $allowedIpLocalhost)) { + return true; } $allowedCaller = Configure::read('API.allowedCaller'); $ipPerHost = []; From 1c08e50c39e23c48cf7b2d7d932d66f420eda1fd Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 17 May 2021 11:31:14 +0200 Subject: [PATCH 02/32] add try catch for function which make often problems to prevent server crash, intead sending email to admin --- .../SingletonManager/PendingTasksManager.cpp | 46 ++++++++++++------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp b/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp index 619c6382b..c5200b766 100644 --- a/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp +++ b/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp @@ -180,31 +180,43 @@ std::vector> PendingTasksManager::getTran void PendingTasksManager::checkForFinishedTasks(Poco::Timer& timer) { + static const char* function_name = "PendingTasksManager::checkForFinishedTasks"; Poco::ScopedLock _lock(mWorkMutex); + try { - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) - { - auto list = map_it->second; - for (auto list_it = list->begin(); list_it != list->end(); list_it++) + for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) { - if ((*list_it)->getModel()->isGradidoTransaction()) { - auto transaction = dynamic_cast(list_it->get()); - auto json = transaction->getModel()->getResultJson(); - bool removeIt = false; - if (!json.isNull()) { - auto state = json->get("state"); - if (!state.isEmpty() && state.toString() == "success") { - removeIt = true; + auto list = map_it->second; + for (auto list_it = list->begin(); list_it != list->end(); list_it++) + { + if ((*list_it)->getModel()->isGradidoTransaction()) { + auto transaction = dynamic_cast(list_it->get()); + auto json = transaction->getModel()->getResultJson(); + bool removeIt = false; + if (!json.isNull()) { + auto state = json->get("state"); + if (!state.isEmpty() && state.toString() == "success") { + removeIt = true; + } + } + if (removeIt) { + transaction->deleteFromDB(); + list_it = list->erase(list_it); + if (!list->size() || list_it == list->end()) break; } - } - if (removeIt) { - transaction->deleteFromDB(); - list_it = list->erase(list_it); - if (!list->size()) break; } } } } + catch (Poco::Exception& ex) { + NotificationList errors; + errors.addError(new ParamError(function_name, "poco exception", ex.displayText())); + errors.sendErrorsAsEmail(); + } catch(std::exception& ex) { + NotificationList errors; + errors.addError(new ParamError(function_name, "std::exception", ex.what())); + errors.sendErrorsAsEmail(); + } } Poco::AutoPtr PendingTasksManager::getPendingTask(int pendingTaskId) From d8697a98ad8364d343bc61b7a225e20d9b594395 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Tue, 18 May 2021 09:15:24 +0000 Subject: [PATCH 03/32] require memo between 5 and 150 character by send transaction --- community_server/src/Controller/AppRequestsController.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index 12ea77d0b..41552f6dc 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -156,6 +156,9 @@ class AppRequestsController extends AppController if($required_fields !== true) { return $this->returnJson($required_fields); } + if(!isset($params['memo']) || count($params['memo']) < 5 || count($params['memo']) > 150) { + return $this->returnJson(['state' => 'error', 'msg' => 'memo is not set or not in expected range [5;150]']); + } $params['transaction_type'] = 'transfer'; $requestAnswear = $this->JsonRequestClient->sendRequest(json_encode($params), '/createTransaction'); From 5a79d993305fac78dd0468d3fcc2327fc873fd96 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Tue, 18 May 2021 09:32:25 +0000 Subject: [PATCH 04/32] add to old frontend --- .../src/Controller/TransactionSendCoinsController.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/community_server/src/Controller/TransactionSendCoinsController.php b/community_server/src/Controller/TransactionSendCoinsController.php index 033e2343f..1018309cc 100644 --- a/community_server/src/Controller/TransactionSendCoinsController.php +++ b/community_server/src/Controller/TransactionSendCoinsController.php @@ -237,6 +237,11 @@ class TransactionSendCoinsController extends AppController $this->set('timeUsed', microtime(true) - $startTime); return; } + if($answear_data['msg'] === 'memo is not set or not in expected range [5;150]') { + $this->Flash->error(__('Ein Verwendungszweck zwischen 5 und 150 Zeichen wird benötig!')); + $this->set('timeUsed', microtime(true) - $startTime); + return; + } } else if($answear_data['state'] === 'not found' && $answear_data['msg'] === 'receiver not found') { $this->Flash->error(__('Der Empfänger wurde nicht auf dem Login-Server gefunden, hat er sein Konto schon angelegt?')); $this->set('timeUsed', microtime(true) - $startTime); From 4ecbea80b59f0707dd7389abeede725d6cca340d Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 18 May 2021 11:32:54 +0200 Subject: [PATCH 05/32] add check for memo also in login-server --- login_server/src/cpp/JSONInterface/JsonCreateTransaction.cpp | 3 +++ login_server/src/cpp/model/gradido/TransactionBase.h | 3 ++- login_server/src/cpp/model/gradido/TransactionTransfer.cpp | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/login_server/src/cpp/JSONInterface/JsonCreateTransaction.cpp b/login_server/src/cpp/JSONInterface/JsonCreateTransaction.cpp index 786af9d71..7fb40913e 100644 --- a/login_server/src/cpp/JSONInterface/JsonCreateTransaction.cpp +++ b/login_server/src/cpp/JSONInterface/JsonCreateTransaction.cpp @@ -108,6 +108,9 @@ Poco::JSON::Object* JsonCreateTransaction::transfer(Poco::Dynamic::Var params) else { result = stateError("parameter format unknown"); } + if (mMemo.size() < 5 || mMemo.size() > 150) { + result = stateError("memo is not set or not in expected range [5;150]"); + } if (result) { mm->releaseMemory(target_pubkey); return result; diff --git a/login_server/src/cpp/model/gradido/TransactionBase.h b/login_server/src/cpp/model/gradido/TransactionBase.h index 6a82b2a28..9f5a87d85 100644 --- a/login_server/src/cpp/model/gradido/TransactionBase.h +++ b/login_server/src/cpp/model/gradido/TransactionBase.h @@ -31,7 +31,8 @@ namespace model { TRANSACTION_VALID_INVALID_AMOUNT, TRANSACTION_VALID_INVALID_PUBKEY, TRANSACTION_VALID_INVALID_GROUP_ALIAS, - TRANSACTION_VALID_INVALID_SIGN + TRANSACTION_VALID_INVALID_SIGN, + TRANSACTION_VALID_INVALID_MEMO }; const char* TransactionValidationToString(TransactionValidation result); diff --git a/login_server/src/cpp/model/gradido/TransactionTransfer.cpp b/login_server/src/cpp/model/gradido/TransactionTransfer.cpp index 759d79690..ef0d3a3f6 100644 --- a/login_server/src/cpp/model/gradido/TransactionTransfer.cpp +++ b/login_server/src/cpp/model/gradido/TransactionTransfer.cpp @@ -186,6 +186,10 @@ namespace model { addError(new Error(function_name, "sender and receiver are the same")); return TRANSACTION_VALID_INVALID_PUBKEY; } + if (mMemo.size() < 5 || mMemo.size() > 150) { + addError(new Error(function_name, "memo is not set or not in expected range [5;150]")); + return TRANSACTION_VALID_INVALID_MEMO; + } return TRANSACTION_VALID_OK; } From 8b29556ba56a0fb34642918b83426f635a8c132c Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 18 May 2021 22:53:01 +0200 Subject: [PATCH 06/32] add memo valiadation to frontend --- .../AccountOverview/GddSend/TransactionForm.vue | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.vue b/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.vue index 3967bbec0..777ba2394 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.vue @@ -87,7 +87,22 @@ style="font-size: xx-large; padding-left: 20px" > - {{ $t('form.memo') }} + + + + {{ $t('form.memo') }} + + {{ error }} + + From 76c77088295eddeca31b5af84e8ff0c2602c2d8c Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 19 May 2021 01:40:29 +0200 Subject: [PATCH 07/32] Thx page shows content dependent of route from --- frontend/src/locales/de.json | 4 +- frontend/src/locales/en.json | 4 +- frontend/src/routes/routes.js | 8 ++++ frontend/src/views/Pages/ResetPassword.vue | 4 ++ frontend/src/views/Pages/thx.vue | 46 +++++++++++++++++++++- 5 files changed, 62 insertions(+), 4 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index be4574e6d..558de7813 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -85,7 +85,9 @@ }, "thx": { "title": "Danke!", - "subtitle": "Wir haben dir eine eMail gesendet." + "email": "Wir haben dir eine eMail gesendet.", + "reset": "Dein Passwort wurde geändert", + "register": "Du bist jetzt regisriert" }, "overview":{ "account_overview":"Kontoübersicht", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index d9a3d278b..2daa1696f 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -85,7 +85,9 @@ }, "thx": { "title": "Thank you!", - "subtitle": "We have sent you an email." + "email": "We have sent you an email.", + "reset": "Your password has been changed", + "register": "You are registred now" }, "overview":{ "account_overview":"Account overview", diff --git a/frontend/src/routes/routes.js b/frontend/src/routes/routes.js index e9bcf38c8..0021aa1ed 100755 --- a/frontend/src/routes/routes.js +++ b/frontend/src/routes/routes.js @@ -49,6 +49,14 @@ const routes = [ { path: '/thx', component: () => import('../views/Pages/thx.vue'), + beforeEnter: (to, from, next) => { + const validFrom = ['/password', '/reset', '/register'] + if (!validFrom.includes(from.path)) { + next({ path: '/login' }) + } else { + next() + } + }, }, { path: '/password', diff --git a/frontend/src/views/Pages/ResetPassword.vue b/frontend/src/views/Pages/ResetPassword.vue index de5f256d6..c24a33257 100644 --- a/frontend/src/views/Pages/ResetPassword.vue +++ b/frontend/src/views/Pages/ResetPassword.vue @@ -107,6 +107,10 @@ export default { const result = await loginAPI.changePassword(this.sessionId, this.email, this.password) if (result.success) { this.password = '' + this.$store.dispatch('login', { + sessionId: result.result.data.session_id, + email: result.result.data.user.email, + }) this.$router.push('/thx') } else { alert(result.result.message) diff --git a/frontend/src/views/Pages/thx.vue b/frontend/src/views/Pages/thx.vue index db0b967d6..53db302a9 100644 --- a/frontend/src/views/Pages/thx.vue +++ b/frontend/src/views/Pages/thx.vue @@ -5,12 +5,54 @@

{{ $t('site.thx.title') }}

-

{{ $t('site.thx.subtitle') }}

+

{{ $t(displaySetup.subtitle) }}


- {{ $t('login') }} + {{ $t(displaySetup.button) }}
+ From 6b48f580051977d75a306efd1a45d9ff0ab98058 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 19 May 2021 10:35:37 +0000 Subject: [PATCH 08/32] change to strlen in php strings cannot be counted --- community_server/src/Controller/AppRequestsController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index 41552f6dc..4d70a68b1 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -156,7 +156,7 @@ class AppRequestsController extends AppController if($required_fields !== true) { return $this->returnJson($required_fields); } - if(!isset($params['memo']) || count($params['memo']) < 5 || count($params['memo']) > 150) { + if(!isset($params['memo']) || strlen($params['memo']) < 5 || strlen($params['memo']) > 150) { return $this->returnJson(['state' => 'error', 'msg' => 'memo is not set or not in expected range [5;150]']); } $params['transaction_type'] = 'transfer'; From e9eb3331fe91b3f9c568c445e0a86a038fe19989 Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 19 May 2021 14:33:23 +0200 Subject: [PATCH 09/32] Transactions list clearer + date visible --- .../src/views/Pages/AccountOverview.spec.js | 2 +- frontend/src/views/Pages/AccountOverview.vue | 14 ++-- .../{GddTable.vue => GddTransactionList.vue} | 71 +++++++++---------- ...ooter.vue => GddTransactionListFooter.vue} | 2 +- .../Pages/UserProfileTransactionList.vue | 25 +++---- 5 files changed, 54 insertions(+), 60 deletions(-) rename frontend/src/views/Pages/AccountOverview/{GddTable.vue => GddTransactionList.vue} (72%) rename frontend/src/views/Pages/AccountOverview/{GddTableFooter.vue => GddTransactionListFooter.vue} (91%) diff --git a/frontend/src/views/Pages/AccountOverview.spec.js b/frontend/src/views/Pages/AccountOverview.spec.js index 68d91ee98..d28b295d8 100644 --- a/frontend/src/views/Pages/AccountOverview.spec.js +++ b/frontend/src/views/Pages/AccountOverview.spec.js @@ -32,7 +32,7 @@ describe('AccountOverview', () => { }) it('has a transactions table', () => { - expect(wrapper.find('gdd-table-stub').exists()).toBeTruthy() + expect(wrapper.find('gdd-transaction-list-stub').exists()).toBeTruthy() }) }) }) diff --git a/frontend/src/views/Pages/AccountOverview.vue b/frontend/src/views/Pages/AccountOverview.vue index 5c7b9fb76..cf05b846a 100644 --- a/frontend/src/views/Pages/AccountOverview.vue +++ b/frontend/src/views/Pages/AccountOverview.vue @@ -1,7 +1,7 @@ diff --git a/frontend/src/routes/routes.js b/frontend/src/routes/routes.js index 0021aa1ed..d96f4fb62 100755 --- a/frontend/src/routes/routes.js +++ b/frontend/src/routes/routes.js @@ -16,7 +16,7 @@ const routes = [ }, { path: '/profile', - component: () => import('../views/Pages/UserProfileCard.vue'), + component: () => import('../views/Pages/UserProfile.vue'), meta: { requiresAuth: true, }, @@ -53,8 +53,6 @@ const routes = [ const validFrom = ['/password', '/reset', '/register'] if (!validFrom.includes(from.path)) { next({ path: '/login' }) - } else { - next() } }, }, diff --git a/frontend/src/views/Pages/AccountOverview/GddTransactionList.vue b/frontend/src/views/Pages/AccountOverview/GddTransactionList.vue index 7a7c5cb7f..cd12c4e5a 100644 --- a/frontend/src/views/Pages/AccountOverview/GddTransactionList.vue +++ b/frontend/src/views/Pages/AccountOverview/GddTransactionList.vue @@ -8,36 +8,20 @@ >
- - - - +
-
+
{{ $n(item.balance) }} - + - -
-
+
{{ item.name }} -
{{ $moment(item.date).format('DD.MM.YYYY - HH:mm:ss') }}
- - i - +
+ + i + +
@@ -81,7 +65,7 @@ -
+
{{ $t('transaction.nullTransactions') }}
@@ -89,6 +73,13 @@ diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index a6960c636..c75b2a8fa 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -20,7 +20,6 @@ import Collapse from './Collapse/Collapse.vue' import CollapseItem from './Collapse/CollapseItem.vue' import Modal from './Modal.vue' import BaseSlider from './BaseSlider.vue' -import LoadingPanel from './LoadingPanel.vue' import BasePagination from './BasePagination.vue' @@ -48,5 +47,4 @@ export { BaseButton, Collapse, CollapseItem, - LoadingPanel, } diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index 6bafb569e..b7c0ea06c 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -11,10 +11,6 @@ import GlobalDirectives from './globalDirectives' // Sidebar on the right. Used as a local plugin in DashboardLayout.vue import SideBar from '@/components/SidebarPlugin' -// element ui language configuration -import lang from 'element-ui/lib/locale/lang/en' -import locale from 'element-ui/lib/locale' - // vue-bootstrap import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' @@ -38,7 +34,6 @@ import VueMoment from 'vue-moment' import Loading from 'vue-loading-overlay' // import the styles import 'vue-loading-overlay/dist/vue-loading.css' -locale.use(lang) Object.keys(rules).forEach((rule) => { extend(rule, { diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index 7428dec6b..312f19296 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -13,7 +13,6 @@ import BaseAlert from '@/components/BaseAlert' import BaseNav from '@/components/Navbar/BaseNav' import BaseHeader from '@/components/BaseHeader' import { ValidationProvider, ValidationObserver } from 'vee-validate' -import { Input, Tooltip, Popover } from 'element-ui' /** * You can register global components here and use them as a plugin in your main Vue instance */ @@ -34,11 +33,8 @@ const GlobalComponents = { Vue.component(Card.name, Card) Vue.component(Modal.name, Modal) Vue.component(StatsCard.name, StatsCard) - Vue.component(Input.name, Input) Vue.component('validation-provider', ValidationProvider) Vue.component('validation-observer', ValidationObserver) - Vue.use(Tooltip) - Vue.use(Popover) }, } diff --git a/frontend/test/testSetup.js b/frontend/test/testSetup.js index 1fb5cd195..f9c49880e 100644 --- a/frontend/test/testSetup.js +++ b/frontend/test/testSetup.js @@ -1,5 +1,4 @@ import { createLocalVue } from '@vue/test-utils' -import ElementUI from 'element-ui' import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' import Vuex from 'vuex' import { ValidationProvider, ValidationObserver, extend } from 'vee-validate' @@ -30,7 +29,6 @@ Object.keys(rules).forEach((rule) => { }) }) -global.localVue.use(ElementUI) global.localVue.use(BootstrapVue) global.localVue.use(Vuex) global.localVue.use(IconsPlugin) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 1f293d882..333df7d04 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2749,13 +2749,6 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async-validator@~1.8.1: - version "1.8.5" - resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0" - integrity sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA== - dependencies: - babel-runtime "6.x" - async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -2829,7 +2822,7 @@ babel-eslint@^10.0.1, babel-eslint@^10.1.0: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-helper-vue-jsx-merge-props@^2.0.0, babel-helper-vue-jsx-merge-props@^2.0.2: +babel-helper-vue-jsx-merge-props@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== @@ -3059,7 +3052,7 @@ babel-preset-vue@^2.0.2: babel-plugin-syntax-jsx "^6.18.0" babel-plugin-transform-vue-jsx "^3.5.0" -babel-runtime@6.x, babel-runtime@^6.22.0, babel-runtime@^6.26.0: +babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= @@ -4916,7 +4909,7 @@ deep-is@^0.1.3, deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@^1.2.0, deepmerge@^1.5.2: +deepmerge@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== @@ -5296,18 +5289,6 @@ electron-to-chromium@^1.3.649: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.673.tgz#b4f81c930b388f962b7eba20d0483299aaa40913" integrity sha512-ms+QR2ckfrrpEAjXweLx6kNCbpAl66DcW//3BZD4BV5KhUgr0RZRce1ON/9J3QyA3JO28nzgb5Xv8DnPr05ILg== -element-ui@2.4.11: - version "2.4.11" - resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.4.11.tgz#db6a2d37001b8fe5fff9f176fb58bb3908cfa9c9" - integrity sha512-RtgK0t840NAFTajGMWvylzZRSX1EkZ7V4YgAoBxhv4TtkeMscLuk/IdYOzPdlQq6IN0byx1YVBxCX+u4yYkGvw== - dependencies: - async-validator "~1.8.1" - babel-helper-vue-jsx-merge-props "^2.0.0" - deepmerge "^1.2.0" - normalize-wheel "^1.0.1" - resize-observer-polyfill "^1.5.0" - throttle-debounce "^1.0.1" - elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -9795,11 +9776,6 @@ normalize-url@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== -normalize-wheel@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45" - integrity sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU= - nouislider@^12.1.0: version "12.1.0" resolved "https://registry.yarnpkg.com/nouislider/-/nouislider-12.1.0.tgz#a4416b4b3357e77e52217f8ecf060eb14a855f59" @@ -12704,11 +12680,6 @@ throat@^5.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -throttle-debounce@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd" - integrity sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg== - through2@^2.0.0, through2@~2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"